本章继上节iic通信协议,在理论学习之后,找到一块iic接口的片子——PCF8591,它是一款AD-DA集成芯片。所以本节对iic通信协议不做过多的介绍,重心放在iic的rtl建模,本次通过iic控制PCF8591实现DAC输出功能。
PART1:建模前的准备
包括两部分,一是芯片手册阅读,二是建模思路;
一、阅读PCF8591芯片手册,获得以下信息:
>PCF8591的指令控制顺序:主机先向其发送地址指令(包括sda方向选择指令);然后是控制字指令;最后是数据指令(dac对应8bit的dac二进制数据,adc对应为sda方向操作控制指令)
>PCF8591具有adc和dac两种功能,选择哪一种功能需要通过指令(2、3指令功能决定)进行确定。
>模块硬件地址应确定,为000(A2A1A0)。
>具体的寄存器配置(指令)就不详细介绍,总结如下:
adc功能配置,先后发送0x90、0x40+channel(取值0、1、2、3,总共有四个通道)、0x91即可;
dac功能配置,先后发送0x90、0x40、user_data(8bit)即可;
>要注意iic通信速率及相关时间的限制,总结如下:
DAC模式输出频率Fmax=11.1KHz;
Fsclk_max=100kHz;(这就对sclk的高低电平持续时间有要求);
开始、结束、数据的建立保持时间(如下表);
【相关参数表格】
【iic时序示意图】