1、boot引脚
两个boot引脚必须在上电时必须上拉,或者悬空,不然会导致不能进入用户程序。这是和其他的cortex-M0内核芯片不同的一点,使用时需要注意。
2、外部中断触发
在使用外部中断下降沿中断时,在上升沿上升时间比较长时,上升沿也会被识别为下降沿。
我这边出现问题的点在于进行按键识别时,原理图如下
最终的解决方案
(1)硬件上,将消抖滤波的电容由0.1uf变为 10nf,使芯片引脚的上升沿变短,最终执行后效果还是不佳,据芯片FAE讲是因为该芯片比较低端,所以在引脚滤波部分有一些阉割,所以效果不好。
(2)在软件中断处理中,延时进行引脚电平识别,以确定产生的中断为下降沿中断。两种手段加入后可以准确的识别出下降沿。
3、串口使用
敏矽芯片串口接收的部分容错机制有问题,在发送端数据有干扰时,会出现帧错误。
经过和原厂的技术沟通,原厂说的是因为串口ip核的问题,串口接收的容错机制出了问题,在串口接收帧的停止条件是有问题的,正常的处理逻辑是在起始位出现后,在对应波特率时间下,如果超时没有收到停止位,就判断为帧错误。但是该芯片的逻辑时在收到起始信号时不管有没有超时,中间一直处于接收数据的状态,直到收到一个停止位。就造成接收数据出错。而且的话,这个芯片据他们讲是已经定型了,就算发现了这个问题,也不会重新流片,也不会再去修复这个问题了。
在进行串口的使用时需要额外的注意。
4、flash写入
该芯片的flash写入只支持 word写入,不支持半字或者字节写入,读取时也只支持32位对齐读取,不然会出错。在使用flash进行数据存储时需要注意,而且经过测试,该芯片flash存取采用的是大端模式,如果要对数据进行强制转换时,要用移位操作进行数据转换。