[综合信息]

国产MCU专栏 第68期:【原创优选】巧用国民技术MCU进行项目开发

[复制链接]
6051|0
手机看帖
扫描二维码
随时随地手机跟帖
21ic小能手|  楼主 | 2023-11-2 17:28 | 显示全部楼层 |阅读模式

*阅读说明:以下仅简要提取总结,详细项目过程描述及相关源码、资料等请戳原链接查看。


单片机没有EnDat外设,如何读取海德汉编码器的绝对角度值?且看如何合理搭配普通外设冲破难关!
话题的来源在最近需要一款高精度的编码器,于是选了海德汉的25位旋转编码器,分辨率高,精度高,价格也高,大几千块一台,而且交期很长很长,果然贵的东西除了贵,没啥缺点,当然,贵不是产品的缺点,是自己的缺点。而且在实际操作过程中发现EnDat2.2这种协议,在普通的单片机(此处选用国民技术的N32G430)上根本没有外设可以兼容,具体分析见下文。在搜寻全网,没有相关的经验借鉴,很多在使用该编码的大佬均采用FPGA来实现,想想也是,25位的角度数据,即使读取到完整的角度值,也不好用来开发更高级的应用,在单片机上采用普通的编码器就可以了。于是便有了下文的探索之路。
1、关于海德汉编码器
2、N32G40单片机实现EnDat方案探究
3、最终代码实现



最近进行MCU平台的更替,老项目的升级换代以及新产品的开发,主控从GD的M0平台升级到N32的M4平台,开发的代码需要进行全面的替换,仅此对核心的外设应用做一个记录。
此文是为了记录主从SPI的开发记录,其中一个SPI设置为主从模式,用于与传感器进行通信,另一个SPI作为从设备,用于向外部设备返回数据,考虑时间的要求,两个SPI均使用DMA进行数据搬运。
1、SPI的相关GPIO初始化
2、SPI初始化
3、SPI的DMA及中断配置
4、SPI的DMA收发函数



这次主要讨论了一种高负载情况下如何缓解CPU压力的方法。
在单片机中,USART的通信一般都是最常用也最先去接触的串口外设,在一般的小数据量应用中一般不需要考虑USART串口(以下简称为串口)的高负载能力,比如打印一下log,接收几个其他设备的指令或者发送几个指令控制其他设备。但是在高速的大数据量的通信场合,串口可能会承载较高的数据负载,如果不合理的进行单片机的资源利用,可能造成各种问题。比如使用串口接收中断接收大量的数据,频繁的进入中断,会占用太多的CPU资源。这时可能会想到【空闲中断+DMA传输完成中断】的方式接收大量数据,但是这是一个极具风险的行为,假设一下,DMA数据传输结束之后,此时CPU开始读取DMA缓存中的数据,此时又有新的数据进来,新的数据就会覆盖之前的数据导致异常。
1、如何启用串口的DMA功能?
2、高负载情况下的DMA如何实现?



测评一下N32G435的FLASH读写性能。
现在很多的应用中都需要保存离线数据,例如一些传感器的校正数据,每一块成片中的数据可能都不相同,不能每一次掉电后重启都重新进行一次校准,那样用户的体验感会非常不好,此时就需要掉电不丢失数据。一般的方式是在MCU外置一颗EEPROM芯片,通过MCU的I2C与其通信(例如AT24C02),此方法好处在于不占用片内FLASH,而且外置EEPROM大小灵活,对于大数据的掉电储存较为合适,毕竟MCU的FLASH容量有限,如果项目过大,可能没有太多的空闲FLASH预留给用户储存数据。但是缺点也很明显,占用PCB的版面,对于小尺寸的PCB很不友好,工作时也增加功耗,同时目前的EEPROM期间也存在溢价严重的问题,增加产品的成本。如果是少量的数据保存,优先还是片内FLASH。
针对FLASH操作的注意事项,这里以N32G435CB为例,进行一次FLASH的操作流程讲解(此过程对其他单片机同样适用)



采用国民技术MCU N32G430实现的电流表,支持电压、电流、功率、纹波及电流波动图形显示。
我现在制作的这个目前主要目标是实现以下功能:
1、电压、电流显示、功率显示,这个比较简单,已经实现;
2、电压纹波显示,目前也已实现;
3、充电协议分析,暂时想通过D+D-进行协议判断,但实测好像非常不准确,不知道充电协议具体应该怎么分析,有待完善;
4、电流波动图,已实现;
5、功耗统计,这个功能虽然简单,但目前对这个单片机不太熟悉,得到的每次时间有些误差,所以还在优化;
6、快充诱骗,想法是通过D+D-实现,但后面发现N32G430没有DAC功能,所以目前是放弃了。
功能简单说明下:
1、Boot/SEL按键切换不同功能页,第一页是电压电流显示,第二页是电压纹波,第三页是电流波动情况;
2、BTN1/+、BTN2/-在第二页和第三页调整显示的范围,放大或缩小波形图。



开发单片机应用到最后都会涉及到生产烧录一个重要环节,这样也就催生出了一大产业——代烧录。那常用的烧录方式包括两大类和来自多种供应商渠道,分为在线烧录和脱机离线烧录,有些是芯片原厂自己设计提供给用户,有些是用户根据某些指定接口协议自制工装,有些是第三方专业烧录工具厂家提供相应服务。顾名思义,在线烧录需要工具连接 PC 机,对使用对象有一定操作技能的要求,但一般成本较低且流程不会太复杂,而离线烧录工具一般是将要烧录的文件提前放置于机器内且带有显示屏显示烧录流程,用户自己设计的话相对较为困难,第三方厂商提供的大多较贵。在踌躇于该选择怎样的烧录方式时,找到这么一种操作简便且成本较低的烧录方法——使用 CoFlash 上位机配合 CMSIS-DAP 调试工具。接下来的内容整体可分为以下几点:
1、N32G45XVL-STB 开发板简介
2、CoFlash 上位机简介
3、适配 N32G457VEL7 流程
4、操作演示



低成本电压电流测量,用国民技术的N32G435系列微控制器就很合适了。国民技术的N32G435有着较高的集成度,带有高性能的ADC和集成OPA,很适合电流放大测量,价格又不高。可以节省运放成本和减少PCB占用。能够实现低成本,电路简洁的电压电流测量。
让我们来探索一下如何实现:设计的目标是低成本,简洁实现~~


访问国民技术MCU论坛,可查看更多开源作品。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

155

主题

693

帖子

29

粉丝