图9 底层丝印图
PCB layout完成后就联系板厂加工,期间准备物料,感谢ADI支持,很多样品都申请到样品了。
硬件部分设计完成就开始考虑软件设计了,ADI网站上提供参考代码,在网站上下载了源代码,看了一遍,感觉还不错,值得借鉴,不过不是在ADUCM360上开发的程序,需要将其移植到ADUMC360上
移植部分很简单,只需要完成3个填空题
int8_t SPI_Init(ADI_SPI_TypeDef*pSPI,uint32_t u32Baud);
int8_t SPI_Read(ADI_SPI_TypeDef *pSPI,uint8_t*pBuffer,int32_t i32Len);
int8_t SPI_Write(ADI_SPI_TypeDef*pSPI,uint8_t *pBuffer,int32_t s32Len);
其中SPI_Init完成SPI的初始化,包括SPI号,以及波特率
SPI_Read实现SPI读数据i32Len数据到pBuffer中
SPI_Write则实现SPI则将pBuffer中长度为s32Len数据再MOSI上发送出去
移植完驱动后续就是验证是否移植是否正确了,下载的源代码AD7124.C中也提供了方法。在int32_t AD7124_Setup(ad7124_device *device, intslave_select,ad7124_st_reg *regs)中实现了AD7124-8配置寄存器以及查询寄存器操作,验证是否移植正确,就是将配置好的寄存器重新读出来进行比对了。寄存器的配置在ad7124_st_reg ad7124_regs[]初始化时已经实现,可以根据项目需求自行配置。配置值和读出结果一致也就表示一致正确了。
(代码请在原帖查看吧)
配置完成后,就开始实现PT100以及热电偶电压采集了,AD7124-8可以通过使能多个通道寄存器,实现ADC多通道自动切换,注意通道寄存器中的SETUP配置,这是通道寄存器与配置寄存器相关联的地方,通过3bit Setup位以及16个通道寄存器可以组合出16*8= 108种组合配置,数据手册的描述比较难理解
配置完成后,就只需要查询AD7124-8状态寄存器数据是否准备好以及对应的通道数,数据如果准备好,就可以读取对应通道的数据
(代码请在原帖查看吧)
数据寄存器数据读出来之后就剩下数据处理了,热电偶的常用处理方式是冷端温度转换为对应的热电偶电压,热电偶热端电压+冷端电压值得到的电压值在转换成热电偶电压,按照这种算法实现热电偶测温。