马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
[color=rgba(0, 0, 0, 0.9)]AG32作为一颗异构芯片,是有一定开发难度的,对一般应用者来说是一个不小的挑战。要熟练使用AG32并发挥其相应的性能,要求开发者具有一定的底层驱动基础,熟悉各硬件接口,特别是advance timer的相关信号。AG32留出了很多MCU信号,供CPLD内部连接使用。如果看不明白这些信号的作用,那基本上也就无从下手了。除此之外,还需要了解AHB/APB总线时序,MCU与CPLD之间的高速通讯主要是通过这个接口来实现的。CPLD可以实现很多设备,如IIS, RGB,UART等都可以挂在AHB/APB下面。很多开发者可能使用过独立的mcu+独立的cpld来开发产品,这种方案一般不会有AHB总线,最多就是FSMC接口,可以认为是APB总线。 AG32的SDK下面有一个例程 analog_ip.v, 这个例程将ADC/DAC/CMP作为独立的外设挂在APB下。很多初次使用者都不明白ADC不是一般都可以直接通过MCU来访问的吗?为什么还需要CPLD呢?说实话,我也不知道为什么。可能是因为AGM的大容量系列FPGA里也带了ADC,所以沿用过来的吧。AG32里的ADC/DAC/CMP只是基础的硬核,并没有与MCU直接相连,因此analog_ip.v 实现了MCU通过AHB/APB总线来访问ADC/DAC/CMP。对于初学者来说,看懂这个是有点难度的。但是这是一个非常好的例程,看懂了这个,也就知道MCU与CPLD如何交互数据,如何实现DMA等。
RISC-V作为一个新生的开源内核,本身的开发环境及相关的开发文档没有ARM完善。AG32也没有提供类似STM32CUBEMX的通过配置就能自动生成驱动的开发工具,仅仅提供了一些相对独立的例程。比如USB, Ethernet就是在不同的例程里的。如果要把这两个例程合并到一起,可能就已经难倒了一部分开发者了。因此,开发者要有一定的思想准备,SDK肯定没有非常完善。
说了那么多,无非就是要开发者对自己有一个清醒的认识,以此来评估自己能将AG32发挥到什么程度。
普通的嵌入式固件工程师,因为没有接触过Verilog编程,可以将其作为提升自己的一个入门机会,在主要以RISC-V实现功能的基础上,自学verilog语言,结合产品实现一些简单的逻辑、时序。 会CPLD/FPGA编程,但不精通。那么你可以用CPLD实现很多外扩功能,对接不同时序的传感器,实现CPLD部分的中断功能,提高PWM的精度等。也可以实现MiniLed驱动。 精通CPLD/FPGA编程者,那么你可以在CPLD里实现200M的最高频率,高速采集外扩的AD,实现便携式数字示波器的功能。 半导体电子专业的应届生,AG32这个平台可以帮助你快速学习MCU编程、CPLD/FPGA开发,了解芯片开发过程。可以开发你的专属IP,作为毕业课题。 电子爱好者, 可以用来挑战一下自己,DIY一些我可能无非想象到的产品。
|