AGRV2K开发技巧分享,我们一起分享一些MCU与CPLD联合使用的技术疑问,供大家参考交流。
1、Question: AGRV2K内部的晶振的频率是多少?
RE: 4-to-24MHz crystal oscillator; 一般比较常用的是用8MHz。
2、Question: 如何用GPIO组去快速采集并口数据,类似memory to memory的搬移?
RE: 建议用DMA的话,估计主频/5-10吧,取决于DMA和SRAM的带宽有没有被其它外设占用。真的追求越快越好的话,直接在逻辑里用把IO的值读进一个FIFO,同时用DMA把FIFO里的东西读进SRAM,少说也能做到100M。
FIFO用逻辑实现。
AGRV2K 器件支持 4 个 M9K Block(1K Byte),共 4K Byte 空间。可直接在 Quartus II 工程中MegaWizard 中添加 Memory IP。不要超过 4 个 M9K。
以下代码的altsyncram用的就是M9K的RAM。
3、Question: mcu部分操作的还是0x6000000后的地址呀,而sram在0x2000000-0x2001ffff?这对于mcu来说不就是操作了外部ram而非内部ram吗?能否cpld直接能操作ox2000000的那部分地址,而不是中间转接?
RE: mcu程序里的read_buf内容就是由cpld写入的;
这个demo双向都有,数据流向是mcu (mem_buf) -> ahb -> apb -> block ram -> apb -> ahb -> mcu (read_buf);
cpld可以操作0x20000000的地址,但是需要逻辑的支持;
上面数据流向里read_buf就是在sram里,由cpld通过apb/ahb写入的.
通过线 ahb就可以直接写入sram了,反过来也是可以的。
通过ahb,mcu程序和逻辑都可以作为读写的发起方。不算是异步,ahb有时钟,都是同步的;
补充说明:ahb/apb的时钟比也可以是1:1。
刚把昨天的设计BUSCLK去掉重新编译也是工作的。开始发过来的不工作可能是quartus里编译的问题,后来重新编译就好了。
Question: 可以介绍一下AG32 MCU和AGRV2K的区别吗。
RE: AG32 MCU主推型号:AG32VF407, AG32VR103,都内置有FPGA,可以单独只使用MCU,也可以将内置FPGA一起配合使用.
纯FPGA逻辑的型号:AGRV2KL100, AGRV2KL64, AGRV2KL48, AGRV2KQ32.
以上是部分技术问题交流的节选,描述不一定的完整,有疑问欢迎联系AGM与海振远科技,有机会与技术专家对接探讨,快速解决存在的技术问题,加快项目开发进度。