RISC-V MCU中文社区

【分享】 关于v2蜂鸟核的io口控制方法

发表于 全国大学生集成电路创新创业大赛 2021-05-27 16:11:15
0
2860
4

团队介绍

大家好,我们团队的名字是Hey Siri,参赛编号是CICC1584,这次来分享在MCU200t板子上蜂鸟E203核的io口的控制方法。

 

问题介绍

NucleiStudio的工程文件中,

\hbird_sdk\SoC\hbirdv2\Common\Source\Drivers的路径下存放了已经封装好的函数,如图:


这里就是控制io口的函数,根据后面括号里的形式写入相应变量就可以控制。我们使用的的蜂鸟版本是v2,听论坛里别的同学有用的是v1的版本,在io口这块,v1v2主要的区别是v2中有GPIOAGPIOB两个变量,而v1只有GPIO这一个变量。


因为我们一直使用的是v2版本,对v1版本不了解,这里就只介绍v2版本的io口控制,欢迎有用过v1的同学进行补充。

我们的板子型号是MCU200tGPIOA已经跟板子上的外设资源连接好,而GPIOB则是全部约束到板子的PMOD上浮空。GPIOA的对应关系则可以在

hbird_sdk\SoC\hbirdv2\Board\mcu200t\Include\board_mcu200t路径中找到,如图所示:


可以看出,板子上有8LED5个按键和8个开关。而GPIOBPMOD的关系可以在MCU200t的板子原理图上找到,原理图在下列链接中:

https://www.nucleisys.com/upload/files/fpga/doc/Nuclei_MCU200T.pdf


根据原理图即可控制对应io

io口的配置函数gpio_enable_output(GPIOA, SOC_LED_GPIO_MASK);前面的GPIOA声明是gpio类变量,控制板上已经连接的资源,后面的MASK则是指明是使能哪一个io口,


头文件board_mcu200t已经声明好了,直接写入就可以。可以仿照这个写法控制GPIOB,比如gpio_enable_output(GPIOB, 1<<0); 就是是GPIOB0,即PMOD J76 1io口变为输出模式。

知道MASK的赋值写法之后,使用别的gpio的函数时也不会有问题。按照写法代入即可。

 

演示

   GPIOA的测试结果直接看板上就可以知道,而我们手头上没有类似LED这种可以接上io口看效果的期间,用逻辑分析仪来测试GPIOB的使用。


测试代码为:

gpio_write(GPIOB,1<<2,1);

delay_1ms(1);

gpio_write(GPIOB,1<<2,0);

把逻辑分析仪连上后,可在pc上看到:


输出正常,测试成功。

小结

这篇贴子分享了在MCU200t板子上控制v2蜂鸟核的io口的方法,能力有限,难免出现疏漏,,有些理解不到位或者错误的地方希望大家能够指正,共同学习共同进步,祝各参赛队比赛顺利!


喜欢4
用户评论
羽

实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板