S3C2440 I2C总线控制

发布者:温柔的心情最新更新时间:2024-07-23 来源: cnblogs关键字:S3C2440  I2C  总线控制 手机看文章 扫描二维码
随时随地手机看文章

多主机IIC总线控制(IICCON):

IIC控制总线状态(IICSTAT):

IIC总线地址(IICADD):

 

 

IIC发送,接收总线寄存器(IICDS)

IIC总线控制寄存器:

 

源码如下:

void Rd24C080(U32 slvAddr,U32 addr,U8 *data)
{
 _iicMode      = SETRDADDR;
 _iicPt        = 0;
 _iicData[0]   = (U8)addr;
 _iicDataCount = 1;

 rIICDS   = slvAddr;
 rIICSTAT = 0xf0;                    //MasTx,Start 
 //Clearing the pending bit isn't needed because the pending bit has been cleared.
 while(_iicDataCount!=-1);

 _iicMode      = RDDATA;
 _iicPt        = 0;
 _iicDataCount = 1;
   
 rIICDS        = slvAddr;
 rIICSTAT      = 0xb0;               //MasRx,Start
 rIICCON       = 0xaf;               //Resumes IIC operation.  
 while(_iicDataCount!=-1);

 *data = _iicData[1];

void Wr24C080(U32 slvAddr,U32 addr,U8 data)
{
 _iicMode      = WRDATA;
 _iicPt        = 0;
 _iicData[0]   = (U8)addr;
 _iicData[1]   = data;
 _iicDataCount = 2;
   
 rIICDS   = slvAddr;                 //0xa0
 rIICSTAT = 0xf0;                    //MasTx,Start
 //Clearing the pending bit isn't needed because the pending bit has been cleared.
   
 while(_iicDataCount!=-1);

 _iicMode = POLLACK;

 while(1)
 {
  rIICDS     = slvAddr;
  _iicStatus = 0x100;
  rIICSTAT   = 0xf0;              //MasTx,Start
  rIICCON    = 0xaf;              //Resumes IIC operation.
          
  while(_iicStatus==0x100);
          
  if(!(_iicStatus&0x1))
   break;                      //When ACK is received
 }
 rIICSTAT = 0xd0;                    //Stop MasTx condition
 rIICCON  = 0xaf;                    //Resumes IIC operation.
 Delay(1);                           //Wait until stop condtion is in effect.
 //Write is completed.
}
       

void Test_Iic(void)
{
 unsigned int i,j,save_E,save_PE;
 static U8 data[256];

 Uart_Printf('nIIC Test(Interrupt) using AT24C02n');

 save_E   = rGPECON;
 save_PE  = rGPEUP;
 rGPEUP  |= 0xc000;                  //Pull-up disable
 rGPECON |= 0xa00000;                //GPE15:IICSDA , GPE14:IICSCL

 pISR_IIC = (unsigned)IicInt;
 rINTMSK &= ~(BIT_IIC);

 //Enable ACK, Prescaler IICCLK=PCLK/16, Enable interrupt, Transmit clock value Tx clock=IICCLK/16
 // If PCLK 50.7MHz, IICCLK = 3.17MHz, Tx Clock = 0.198MHz
 rIICCON = (1<<7) | (0<<6) | (1<<5) | (0xf);

 rIICADD  = 0x10;                    //2440 slave address = [7:1]
 rIICSTAT = 0x10;                    //IIC bus data output enable(Rx/Tx)
 rIICLC = (1<<2)|(1);      // Filter enable, 15 clocks SDA output delay       added by junon
   
 Uart_Printf('Write test data into AT24C02n');

 for(i=0;i<256;i++)
  Wr24C080(0xa0,(U8)i,i);
          
 for(i=0;i<256;i++)
  data[i] = 0;

 Uart_Printf('Read test data from AT24C02n');
   
 for(i=0;i<256;i++)
  Rd24C080(0xa0,(U8)i,&(data[i]));

        //Line changed 0 ~ f
 for(i=0;i<16;i++)
 {
  for(j=0;j<16;j++)
   Uart_Printf('%2x ',data[i*16+j]);
  Uart_Printf('n');
 }
 rINTMSK |= BIT_IIC;   
 rGPEUP  = save_PE;
 rGPECON = save_E;
}

void main()

{

Test_Iic();

}

 


关键字:S3C2440  I2C  总线控制 引用地址:S3C2440 I2C总线控制

上一篇:ARM中的---汇编指令
下一篇:S3C2440时钟体系

推荐阅读最新更新时间:2024-11-09 23:08

s3c2440 地址分配讲解
(一)s3c2440 地址分配讲解 (很难很纠结) mini2440的地址怎么分配。mini2440处理器的地址怎么分配。 S3C2440处理器可以使用的物理地址空间可以达到4GB,其中前1GB的地址(也就是0x0000 0000--0x4000 0000)为外设地址空间,外设地址究竟怎么确定的呢??好烦?? 还有一部分为CPU内部使用的特殊功能寄存器地址空间(地址范围为0x4800 0000--0x5FFF FFFF),其余的地址空间没有使用。 下面用两个表格说明外设地址空间好特殊功能寄存器地址空间 3FF FFFF 共 26根地址线,也就是 2^6=64 2^20=1M 那么就是 64M 内存概念: 内存是代码的
[单片机]
<font color='red'>s3c2440</font> 地址分配讲解
s3c2440串口基本使用
如何编写UART程序呢? 1、串口初始化 step1:设置引脚 ① 设置引脚用于串口.GPH2,3用于TX0,RX0 清位,然后设置 ② 设置TX0,RX0内部上拉,即配置GPHUP寄存器 step2:设置波特率(UBRDIV0)— 115200 ==PCLK=50MHz= UBRDIV0 = 26 ① 设置UCON0 — 选择时钟为PCLK,中断/查询模式 ② 设置波特率分频寄存器UBRDIV0 UBRDIVn = (int)(UART时钟/(波特率 × 16))–1 UART时钟:PCLK,FCLK/n 或UEXTCLK step3:设置数据格式,8n1:数据位8位,无奇偶校验,停止位1位 设置ULCON0寄存器 串口初始化函
[单片机]
RS232总线控制系统开发
引言     在飞机飞控系统地面模拟试验中,常常需要函数信号发生器、动态分析仪等传统仪器给被测系统注入正弦、阶跃和扫频等信号。这些仪器往往存在着操作比较繁琐,容易误操作引起系统损坏等现象,这不仅影响试验的效率,还大大降低了试验的安全性。因此,如果能用相应的软件控制这些传统仪器的话,不仅可以提高工作效率,还可通过软件提示对误操作发出告警信息,使试验的安全性得到保障。RS-232(RecommendedStandard-232,推荐标准)可把这些可编程的传统仪器与计算机紧密地联系起来,通过接口函数,对其进行二次开发,最终实现软件控制仪器的目的。 1 测控系统的硬件平台     1.1 RS一232总线简介     RS
[嵌入式]
s3c2440裸机-电阻触摸屏-2-触摸屏TS控制
触摸屏接口模式 Normal Conversion Mode: 正常转换模式,一般情况下可以配置ADCCON和ADCDAT0来读取数据。 2. Separate X/Y position conversion Mode: x,y坐标分离转换格式,x坐标会写入ADCDAT0, y坐标会写入ADCDAT1,所以会产生2次中断开分开完成x,y的坐标转换。 Auto(Sequential) X/Y Position Conversion Mode 自动转换模式,当触摸屏按下后,会一次性对x,y方向的坐标进行转换,x坐标会写入ADCDAT0, x坐标会写入ADCDAT1。会产生一次中断进行x,y坐标的自动转换。 Wai
[单片机]
S3C2440 GPIO例子在ISRAM内仿真分析
在mini2440(S3C2440)的板子上运行LED 的程序,使GPB5输出低电平,点亮LED. 将代码在ISRAM 内仿真 1.Led_on.s的完整程序如下 程序代码: -----------------------------led_on.S---------------------------------------------------- PRESERVE8 ;保持堆栈8字节对齐,符合新的ARM ABI标准 AREA LED,CODE, READONLY ENTRY START1 LDR R0,=0x56000010 ;@ R0设为GPBCON寄存
[单片机]
05-S3C2440学习之内核(移植)linux3.4.2移植(2)之yffs2文件系统移植+内核裁剪+内核制作补丁
一、移植YFFS2文件系统 yffs文件系统更加支持nand设备 上节移植了jffs2文件系统(点击查看)到移植的内核中,这节我们将yffs2文件系统移植到刚移植好的内核中。 (1)获取源码并解压 git clone git://www.aleph1.co.uk/yaffs2 tar xjf yaffs2.tar.bz2 (2)给内核打上yffs2补丁 ./patch-ker.sh c m /home/book/linux-3.4.2 ++ (3) 配置内核支持YAFFS 1. ls fs/yaffs2 (4)编译、生成uImage 出错,制作yffs2 source工程.
[单片机]
05-S3C2440学习之内核(移植)linux3.4.2移植(2)之yffs2文件系统移植+内核裁剪+内核制作补丁
S3C2440嵌入式处理器为核心的远程图像无线监控系统设计
对图像监控系统,用户常常提出这样的功能需求:希望能够监控距离较远的对象。这些对象有可能分布在郊区、深山,荒原或者其他无人值守的场合;另外,希望能够获取比较清晰的监控图像,但对图像传输的实时性要求并不高,很明显,用传统的PC机加图像采集卡的方式很难满足这样的需求。 在嵌入式领域,ARM9系列微处理器在高性能和低功耗方面提供了最佳的性能,因此选用ARM9嵌入式处理器S3C2440设计实现了一个远程图像光线监控系统通过这个系统,可以远在千里之外控制一个摄像机进行图像采集并回传。如果这个摄像机有一个485接口的云台,还可以通过互联网远程控制摄像机的取景角度、镜头拉伸、聚焦等功能。 除了获取图像数据.系统还提供了多路开关控制和数据采
[单片机]
以<font color='red'>S3C2440</font>嵌入式处理器为核心的远程图像无线监控系统设计
PROFIBUS—DP现场总线在熄焦车控制系统中的应用
1 引言   现场总线技术是20世纪8O年代中期在国际上发展起来的一种新技术,是当今自动化领域技术发展的热点之一。在各种现场总线技术中,PROFIBUS是一种非常有代表性的国际性开放式现场总线技术,应用它可以将可编程控制器、交直流驱动器、监控计算机、远程I/O及智能传感器等连接起来,实现分布式I/O控制,可提高检测和控制精度,改善系统的动态响应速度,提高系统的安全性。   PROFIBUS有三种实现形式, 即PROFIBUS—FMS、PROFIBUS—PA 、PROFIBUS—DP,分别应用于不同的控制场合,其中PROFmUS—DP主要用于现场级的高速数据传输,完成自动控制系统(如PLC、PC等)通过高速串行总线与分散的现场设备(
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved