*阅读说明:以下仅简要提取总结,详细体验过程描述及相关源码、资料等请戳原链接查看。
话题的来源在最近需要一款高精度的编码器,于是选了海德汉的25位旋转编码器,分辨率高,精度高,价格也高,大几千块一台,而且交期很长很长,果然贵的东西除了贵,没啥缺点,当然,贵不是产品的缺点,是自己的缺点。而且在实际操作过程中发现EnDat2.2这种协议,在普通的单片机(此处选用国民技术的N32G430)上根本没有外设可以兼容,具体分析见下文。在搜寻全网,没有相关的经验借鉴,很多在使用该编码的大佬均采用FPGA来实现,想想也是,25位的角度数据,即使读取到完整的角度值,也不好用来开发更高级的应用,在单片机上采用普通的编码器就可以了。于是便有了下文的探索之路。
准备使用GPIO模拟SPI通讯,因为不使用标准SPI外设,通讯速度只受系统工作频率的影响。也就是说系统工作频率越高,通讯速度越快。根据用户手册,N32G430C8L7的最高工作频率是128MHz,单个时钟脉冲宽度相当于是7.8125纳秒级别。,按照SPI 通讯的特点,以模拟SPI的通讯时钟,需要操作两回GPIO口,通过引脚电平的变化,模拟出SPI的工作时钟。那么就按照7.8125纳秒计算,模拟一个SPI时钟,就是15.625纳秒。而实际上,由于代码上的处理,我感觉N32G430C8L7的GPIO口未必能做出这么高频率的时钟信号。为了验证,以最简单的GPIO Toggle无时间延迟方式方式输出固定的脉冲,并用示波器测试。
根据用户手册,SPI接口的最高速度,在主模式下可以达到28 Mbps(不带CRC),20Mbps(带CRC),从模式可以达到32Mbps。 按照这个说明,启动SPI的通讯例程,选择的是SPI_INT例程,为了能顺利捕捉波形,稍微修改了代码,是SPI的收发处理一直被循环。
工程代码功能是红绿蓝灯交替亮灭。编译、烧录后复位,可以看到开发板上LED灯交替亮灭。
串口日志在我们平时开发中会经常用到,本篇讲述N32G430C8L7串口打印。
本篇讲述N32G430C8L7_STB开发板 移植FreeRTOS。有用N32G43X官方移植发现与此开发板MCU库及函数等存在不兼容,这里单独移植。
自行买了几十片N32G430C8L7芯片玩玩,为了能够更深入的学习,同时秉持着不浪费以及可复用的原则,N32G430C8L7-StartKit 评估板就此诞生。 N32G430C8L7-StartKit 评估板是在国民技术官方N32G430C8L7_STB开发板的基础上,去掉NSLINK下载电路,增加了USB转串口、FLASH、EEPROM、CAN收发以及485收发等电路,是一款用于快速评估 LQFP48 封装的 N32G430 系列微控制器性能和功能的可复用低成本(就是便宜)开发套件,方便用户对N32G430系列微控制器进行各方面快速验证,充分展现 N32G430 系列微控制器的所有功能。
|