[LKS32 硬件] LKS3208X软硬件学习之GPIO

[复制链接]
2550|5
 楼主| MYWX 发表于 2023-1-14 14:04 | 显示全部楼层 |阅读模式
#申请原创# #每日话题# LKS32mc081_083_088系统板+低中功率板学习之GPIO篇
本次主要学习的内容是针对南京凌鸥推出的LKS32MC08系列的学习记录,后面慢慢上手搭建foc控制框架,调试一款电机。
ead3bfdd46ae9fcbea538acbdcb40460 93f258df432a15f1710ba4abf10d842b
GPIO功能概述
LKSMC08x系列主要有4组16Bit位宽的GPIO引脚,整个GPIOd的功能框图比较简写易懂,不同寄存器配置管什么功能直接在图上可以看出,由于本文只是对GPIO控制实现流水灯的小例子实现过程的记录,故不在详述,具体可以查看凌鸥官网上的08x系列的user manual。
1b9959e5929c18de7186719260ad6a25
GPIO功能框图
2.工程搭建
整个08x系列的工程代码框架可以从凌鸥论坛里面的模块例程中了解,这里笔者主要自己从零搭建一个框架和工程,首先,在自己工程文件夹下建立几个子目录
c7f377daf0bff4a2932660ad46c9f822
APP文件夹中存放用户自定义添加的一些外设应用如led.c和led.h文件。
Src和Inc存放用户的主函数,和一些公共的配置的源文件和如系统初始化等。
Drivers文件夹中存放凌鸥0x系列的底层的库函数,由凌鸥工程师编写,后面的一些学习和应用都是基于这些库函数,以及针对库函数中的定义进行学习和分析。
8247467bd5a19780ee265cf8eef61740
目前整个工程代码的运行主要应用keil软件进行编译链接,但是能够完整运行LKS工程的代码,需要安装LKS08x系列的支持keil编译的pack包,具体下载网址LKS08x-南京凌鸥创芯电子有限公司 (linkosemi.com)
9ef5bb544d01e3e583e2aeb91cebe847
步骤一:根据自己所用的keil版本下载pack以后,打开Keil新建一个工程
709ba73abc5ca3628f005a6abdf8aa79
之后选择凌鸥系列的芯片型号,这里具体芯片型号的命名规则,可以在官网的Datasheet中具体了解
58e66fca56db0621d730b0f760f4f395
3d2c387d119609b16ace72c21088339f
LKS08x系列芯片命名规则
步骤二:工程的相关配置
这里的配置主要注意以下4个地方,首先Device芯片信号不在赘述,
049f74ec078dc78beda49716cec373c7
其次是输出选项配置,可以配置是否输出hex文件,以及是否可以进行定义的跳转,建议三项均勾选
229727aa6e030bf32d0fb77fe1fc9078
然后是C/C++编译选项的设置,这里主要是针对自己工程文件的路径,将包含.h的文件夹都包含进去就可以,通过文件目录的建立可知,我们.h文件分别存放在./APP/Inc、./Drivers/include、。./Inc,而且LKS系列的芯片目前不需要有一些Define的内容,方便用户开发
a5b76b7a0b1d2ef7d2619e82819c218e
最后是Debug运行调试的设置,LKS08x系列目前主要是通过SWD的协议进行通讯调试,具体Jink仿真器从网上,或者联系采用购买凌鸥自己的下载器都可以获得。Debug主要注意的是选择J-link的调试方式,而且在连接LKS081MCU板子的时候会弹出没有识别确定型号的界面,需要用户点击ok,由于LKS08x系列主要是以CortxM0内核的设计,故选择M0内核。
7b5d5110f449f20f355d83c400486900
809342ee3919f5fa532030d5e759ec66
整个flash下载烧录过程中的选项,主要是选择全擦除以及复位运行
606d8e3d27a5b3d6ea6e49f5dfcc93c5
3.硬件设计
LKS08x低中压功率板上有三个LED灯,而且最小MCU板子上也有LED灯的电气标识,原理图查看起来非常方便。
399a13fb1fabe52af91cce8b9e13203b 8f49fa8789aea221fef3b8612f8a5a57
我们只需要将MCU最小系统板插在功率板的MCU底座上面,默认情况下P0.6、P0.7和P0.3和LED1,LED2,LED3连在一起了,后续只需要驱动对应的引脚驱动LED即可。
4.软件设计
针对实现LED流水灯的源码和硬件电路已经和帖子一起上传,实现流水灯用到的外设比较简单,首先对GPIO引脚的输入输出模式,是否上拉进行了基本的初始化
8ac682a33533e5e840c5a60fad6a547b
2,将流水灯采用状态机实现,定义不同灯亮的状态
5312377476071ec1976a3a17e5ea1856
初始化状态:
d65def66aedd291c8d0decd167ef4ae9
主函数里不断循环查询状态
86ff60fdc57441c3541759baaa8d259f
5.验证效果
187b29f6e1ff985ac14babc965a62317
6.问题总结
工程配置的过程基本一致,有没有一种方案可以自动配置好?或者是写脚本的方式,希望后续可以解决,因为ST是有图形化配置界面,但是在LKS没有图形化之前,这些问题是否可以验证?

王栋春 发表于 2023-1-14 22:30 | 显示全部楼层
介绍的非常详细,围观了解一下。期待楼主更多后续分享。
 楼主| MYWX 发表于 2023-1-19 11:51 | 显示全部楼层
谢谢,会针对凌鸥的芯片,从基础一步步更新学习,欢迎围观指正
jtracy3 发表于 2023-1-21 16:45 | 显示全部楼层
可以设置三态降低功耗的吗?              
mikewalpole 发表于 2023-1-21 17:14 | 显示全部楼层
这个芯片配置跟st差不多的。              
单片小菜 发表于 2023-1-28 10:09 | 显示全部楼层
这个芯片好像和ST的差不多吧,应该仔细研究一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

279

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部