迅为龙芯2K1000开发板pmon BSP移植-配置can总线

发布时间:2022-5-19 10:45    发布者:就是塔塔
我就进到 pmon 源码的 pmon-loongson3/Targets/LS2K/conf 路径下,使用命令 cp LS2K.dts LS2K.dts_back备份一下设备树文件,如下图所示:
1.png
接着我们使用命令 vim LS2K.dts 打开设备树文件,找到 can0 和 can1 的设备节点,可以发现,在 BSP 里面已经默认配置好了,不需要我们在额外配置,如下图所示:
2.png
接着我们来配置引脚的复用关系,通过 LS2K1000 的数据手册,可知地址 0x1fe10420 的第 16 到 17 位配置的是 can 引脚的复用关系,如下图所示:
3.png
通过上表可知,如果我们要把 GPIO 设置为 CAN 功能,我们需要将 16 到 17 位设置为 1,我们可以直
接在 pmon 里面操作这个寄存器,比如使用在 Targets/LS2K/ls2k/tgt_machdep.c 文件中增加代码(volatile int *)0xbfe10420 |=(2<<16)将这俩位设置为 1,但是在 pmon 的 bsp 里面这些工作已经给我们做好了,只不过是没有编译进去而已。
在 Targets/LS2K/ls2k/tgt_machdep.c 文件的第 464 行使用了宏定义 PAI2 来决定包不包含 pai2.c 文件,如下图所示:
4.png
pai2.c 文件在路径 Targets/LS2K/ls2k/pai2.c 下,这个文件里面通过宏定义 SEL_CAN 来对 CAN 的管脚复用进行了配置,如下图所示:
5.png
所以我们是不是就不用在自己单独来添加代码了呢,我们只需要加上这 PAI2 和 SEL_CAN 这来个宏定义即可,我们打开 Targets/LS2K/conf/ls2k 文件,取消注释 option PAI2 并增加宏定义 option SEL_CAN,如下图所示:
6.png
然后我们重新编译 pmon 源码并烧写到开发板上,使用命令 devmem 0x1fe10420 来查看有没有成功将这俩个管脚的复用设置成 can,如下所示:
7.png
将 0x00131D49 换算成 2 进制,可以发现 16 到 17 位已经成功设置成了 1,所以这俩个 GPIO 已经成功被设置成 CAN。接着我们就可以参考手册 3.2.7 章节来测试开发板的 CAN 功能了。
更多内容可关注北京迅为2K1000开发板
8.png

本文地址:https://www.eechina.com/thread-790730-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 想要避免发生灾难,就用MPLAB SiC电源仿真器!
  • 你仿真过吗?使用免费的MPLAB Mindi模拟仿真器降低设计风险
  • 我们是Microchip
  • 更佳设计的解决方案——Microchip模拟开发生态系统
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表