各位好:
我现在做的板子使用STM32F103单片机,有一片AT45DB161D的flash芯片。用的是CPU的SPI2接口。板子做了两次。第一次使用cpu串口直接和屏幕通讯,3.3V的电压。结果发现数据线长了屏幕有点不稳定,第二版就改成232通讯,先转一下电平,到了屏幕在转换回来,屏幕的5V是单独供电的。由于改动不大,所以新加的MAX3232芯片就放在板子的右上角,板子其余的部分连走线都没动,和第一版的一模一样。结果第二版出问题了。问题现象是:
CPU读取flash不稳定,程序经常在while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);处死循环,按压一下cpu就会好。但是下次开机说不定还不行。而且就第一次开机会出现这种问题,关了再开一般就好了。软件还是以前的软件,第一版的板子很稳定,有十几块,运行了有2个月了,没出现过类似问题。
再次求助大家,帮忙分析一下会不是是干扰或者是其他问题,如果是设计缺陷,为什么第一次不行,在开关机就可以呢?如果不是原理性的问题,还有那些需要注意或者需要检查,请大家帮忙分析。谢谢
|