🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/开源蜂鸟E203/[求助] E203 SPI相关嵌入式开发可否基于官方库函数?
[求助] E203 SPI相关嵌入式开发可否基于官方库函数?
开源蜂鸟E203 作者 发布于 2021-08-10 17:43(1886 天前) 5519 浏览
我们队在开发SPI SD卡读写功能的时候,注意到芯来官方提供了一个库函数,路径是

https://gitee.com/riscv-mcu/hbird-sdk/blob/master/SoC/hbirdv2/Common/Source/Drivers/hbirdv2_spi.c。其内容是操作E203手册中所提及的寄存器  。如下:


但是这里SPI寄存器的定义和我近日接触到的其他SPI master大相迥异。比如芯来姐的RVStar教程,SPI篇 中所提到的SPI功能有这么老些:


对比下来的话,E203的SPI寄存器和GD32VF103的完全不一样,而且不太明白SPI一个串行总线为啥有command、address之类的说法(第一张图标红的寄存器)。并且GD32VF103在github上能看到一个更为完整的驱动支持。

https://github.com/Nuclei-Software/nuclei-sdk/blob/master/SoC/gd32vf103/Common/Include/gd32vf103_spi.h


所以我的问题就是,

1、E203中SPI寄存器定义和常见的SPI控制器为何有如此大的差异?E203手册中并未详细说明这些寄存器的意义,请问我应该从哪获取这些信息?

2、E203能否基于开头提到的 hbirdv2_spi.c函数来做SPI通信功能的开发?无论能还是不能,在寄存器定义有差异的情况下,应该遵循一个怎样的初始化流程和数据传输流程?


(再次希望能得到胡灿老师的垂青,谢谢您!!

全部回复 1
胡灿
胡灿1885 天前 · 1 楼

1. IP不一样,自然编程模型不一样。

2. 当然可以基于官方的driver来,不然你最后操作还是一样的操作,官方封装的API就是根据编程模型来。看下蜂鸟SPI控制lcd的例子,参考下

https://gitee.com/Nuclei-Software/nuclei-board-labs/tree/master/e203_hbirdv2/ddr200t/spi_lcd

💡 请 登录 后参与讨论(微信扫码即登录/注册)