2010年4月26日 星期一

再次中招了

因為之後需要用到I2C的周邊,剛好這塊板子上面有layout I2C的EEPROM


試著利用EEPROM來練習I2C的功能


好巧不巧的是,因為有裝TFT,而TFT是利用FSMC(Flexible static memory controller)來做控制的


這次用的mcu是STM32F103ZET6


運氣很好,又遇到了奇怪的bug


所以就試著解BUG:


1、有沒有接提升電阻;


2、程式有沒有錯;


3、有沒有與其他周邊共接


後來把TFT的程式和硬體拔掉就正常了


查了很久


最後終於知道原因了


參考stm32 high density errata


因為FSMC被打開的時後


會讓I2C1的時序錯亂(如果一定要用I2C1的功能時,要做REMAP的動作,將PORT腳設定在另外的腳位)


所以也就是為什麼我做不出來的原因


嗯,這件事告訴我們


看完了datasheet最好下一個要看errata


不然中招的機會很高,很高,很高!


沒有留言:

張貼留言