被测试的同事抓壮丁写了个I2C和菊花链的代码,最后用STM32的HAL库实现的I2C,用LATTICE CPLD实现的菊花链。
实现:
I2C的协议看这篇文章:
https://blog.csdn.net/zhanghuaichao/article/details/48266309
I2C的HAL库实现看这篇文章:
https://blog.csdn.net/as480133937/article/details/105259075
用400Mz的系统时钟实现的50MHz时钟的菊花链,还没想好怎么实现200MHz时钟的菊花链。(但是lattice diamond用起来真的不适应,有得选的话还是用vivado吧)。
400MHz系统时钟实现200MHz差分输出的菊花链的话,现在的想法是直接拿系统时钟打拍子,不进行分频。
调试:
IIC的调试:跟着START、STOP、ACK/NACK信号来,看是否有ACK回应;
读的数据格式较写的格式更复杂一点,有多种格式,明确是哪一种;
菊花链的调试:菊花链的程序没写收的部分,示波器直接看波形了。