AG32cpld实现一个UartTx“外设”
功能描述:用cpld实现一个Uart的tx功能,并且认为是一个“外设”。(注意:只是个简单的tx功能,没有rx,也没有更多的功能)
这个例程是对mcu于apb交互的进一步演练。在功能方面,包括:设置寄存器,读取寄存器。
它的cpld实现逻辑,跟ADC样例思路是相同的,都是先ahb转apb,然后实例化外设,mcu写数据时apb接收后处理,mcu读数据时apb触发后处理。
读的时候,是读的串口的state状态;
写的时候,会把写的数据继续丢给uart模块处理(转化为IO的高低波形输出)
mcu端,在while(1)里边:
查询cpld的写状态,当状态合适时,发数据给cpld,cpld根据时序转换为波形输出到定义的Pin。
更多细节,请参考cpld工程中的代码和注释。
这部分的实例代码,请参考网盘上获取:
链接:百度网盘 请输入提取码 里边的 \cpld-fpga文档\logic样例\6.UartTx例程
.
这个样例完全理解完,就可以尝试读ADC的代码了。
在example/analog工程,展示了ADC模块做为外设,与mcu之间的数据交互(ADC采集后的数据,被mcu读取)。
相当于:ADC硬核+ADC的cpld逻辑,实现了一个完整的“ADC外设”。
关于ADC/DAC/CMP的代码解析,请从网盘上获取:
链接:百度网盘 请输入提取码 里边的 \cpld-fpga文档\analog代码分析。
.