关于StarterWare(AM3359) HSI2C总线的系统编程

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()将会执行在错误的情况下,处理函数常常是禁止通道,清楚错误未和停止传送。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值