南京沁恒CH579M开发总结新的项目使用了南京沁恒这款mcu,写下遇到的问题。这个芯片确实非常强大,待蓝牙、网口、而且还带32K ram,可以说性价比很高了。官方历程也是非常详细,参考后上手还是非常快的。
但是有一点,他们家的芯片后缀带M的是有仿真口的,不带M的是没有仿真口的,切记
例如CH579M是可以直接KEIL调试,CH579F是没有仿真器烧些口的,即没有(SDIO,SCLK)。选型时切记。
网口功能
网口功能项目上没有使用,但是也研究了一下。基本的TCP 和UDP通讯没啥问题,写个程序跑了2天,稳定性还是比较好的。但是他这个芯片网线插拔检测不到,这个也在他们论坛上咨询过,没啥结果,感觉应该是内部协议栈有些问题。
GPIO、定时器
这里参照历程直接写就行了,没啥好说的。
低功耗功能
这个必须说一下:这个芯片有4种低功耗模式,空闲:暂停:睡眠:下电;
实测,睡眠模式下差不多2uA左右。带上电池电压检测电阻电流在20uA。因为我这边用的是两个100K的分压的。
SPI
这个芯片的硬件SPI只有mode0 和mode3两种模式。在使用前一定要确认下自己用的外设SPI工作模式。
CH579M的SPI有2个,但是SPI0支持主从两种模式,SPI1只支持主机模式
SPI0支持FIFO和DMA功能,速度要比SPI1快些。
ADC功能
它这个芯片的ADC在使用时尽量在设计时避免使用PA5管脚,这个管脚是芯片校准用的。
ADC支持中断方式工作,多次采集平均一下,测量还是蛮准的,蛮准基本需要。
adc在设备上电之后最好等个大概500ms,否则测量的值会偏小。(我使用的是单通道采集)
这个芯片内部有个基准1.05V,而且待PGA,如果要用PGA功能,一定要注意你的输入电压范围
这个在ADC配置时一定要注意。
而且要使用内部基准,在ADC初始化时一定要调用一下这个函数
ADC_InterTSSampInit();
否则ADC读取通不过。
睡眠模式低功耗问题点:
这个睡眠模式低功耗是非常坑的,他这边在sleep模式下只有RAM2K和RAM14K的RAM是可以工作的,RAM2K、RAM14K地址在0x20004000~0x20007FFF.也就是说0x20000000-0x20004000的内容是不会保存,唤醒后,这个区域定义的变量的内容是会被清除掉的。而且在使用休眠模式时一定要在IRAM2区域设置为0x20004000-0x20007FFF。否则会出现唤醒后,MCU工作异常。操作如下
其他的休眠模式完全参照他们给的历程即可。 以上是个人使用总结,记录以下,方面后续查看,也可以给想用这个芯片的同学加以参考。如有其他经验或建议可以大家一起交流学习。
|