您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> TI专栏 >> TI Sitara ARM >> Cortex-A8 >> 正文
  关于StarterWare(AM3359) HSI2C总线的系统编程           ★★★ 【字体:
关于StarterWare(AM3359) HSI2C总线的系统编程
作者:Huang_X_…    文章来源:Huang_X_X    点击数:    更新时间:2014-9-11    

HSI2C

简介:

AM3359 I2C器件是符合飞利浦半导体的I2C总线类型2.1。这种I2C模式只支持快速(超过400k)的操作。AM335X I2C可以被配置成多种主站发送者和从站接受者模式或者多种从站发送者和主站接受者模式。I2C可以被配置来产生DMA时间给DMA控制器进行数据传送。

 

编程流程:

配置I2C到主站发送/接受者模式

引脚多功能寄存器需要被配置成使能I2C_SDA和使能I2C_SCL引脚。

I2必须被设置在重启状态通过用I2CMasterDisable()函数。

需要的运行时钟必须被设置通过用I2CMasterInitExpClk()函数。

从站的地址被编址通过用I2CMasterIntEnableEx()函数。

操作模式被设置通过用I2CMasterControl()函数。

如果是主站发送者模式的话,设置函数时I2C_CFG_MST_TX().可选的STOP模式也可以被配置,只有在需要的设置模式发出重启。

如果是主站接受者模式,设置函数是I2C_CFG_MST_RX().可选的STOP模式也可以被配置,只有在需要的设置模式发出重启。

在设置I2C配置之前,I2C配置和数据计数寄存器确保I2C寄存器准备好进入通过巡回IRQ RAW状态寄存器ACCESS ready这一位。

最后,数据传输启动通过总线上的启动命令用I2CMasterStart()函数。

 

停止条件的产生

停止可以被配置为自动产生在ICCNT的字节数据,这种情况,I2C_CFG_STOP需要被传通过I2CMasterControl()函数,和ICCNT应该更新到需要的字节数据通过I2CSetDataCount()函数。

停止信号可以被手动得产生,这种情况I2C_CFG_STOP不需要被提供,但是I2CMasterControl()需要设置STOP人为地。

各种寄存器联合决定STOP的产生。请查阅I2C Peripheral 用户手册获得更多详细资料。

 

通过DMA模式传输I2C数据

在DMA模式的操作中,数据传输通过EDMA发生。

使能EDMA时钟。

EDMA通过EDMA3Init()被初始化,DMA的通道必须被映射和使能通过EDMA3RequestChannel()函数。

EDMA 的PaRAM设置成HSI2C发送和接受 通过EDMA3SetPaRAM()函数设置。

EDMA发送被使能通过EDMA3EnableTransfer()函数。

I2C DMA事件产生,在HSI2C发送和接受通过I2CDMATxEventEnable()函数使能。

配置I2C在主站发送/接受模式 好像是前面中断模式里解释的。

发送寄存器空/接受数据产生 Tx/Rx EDMA事件。

当在PaRAM设置数据字节数耗尽之后,EDMA完成中断产生。

I2C EDMA事件产生可以被禁止通过I2CDMATxEventDisable().

两个中断初期被注册来给EDMA

完成的中断处理函数EDMA3ComplHandlerIsr()将会产生在发送完成后,处理函数常常是禁止通道在传输完成以后。

错误的中断处理函数EDMA3CCEccHandler()将会执行在错误的情况下,处理函数常常是禁止通道,清楚错误未和停止传送。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2