通過ch32f203RC 的spi2口訪問 spi flash at45db041,在線調(diào)試時讀寫數(shù)據(jù)正常,脫機運行,讀flash時,每次讀數(shù)據(jù)前面都會多一個字節(jié)0xFF,通過邏輯分析儀抓的數(shù)據(jù)分析,又沒有多一個字節(jié)0xFF。
您好,關(guān)于你的問題,請問一下是固定每次讀數(shù)據(jù)多一個0xFF么?(比如正常讀5個數(shù)據(jù),但讀出6個,除第一個為0xFF,后面5個正常),若遇到該類問題,可按照下列方法嘗試一下:
1、檢查一下SPI初始化配置中NSS信號由硬件控制還是軟件控制,若配置為硬件控制可改為軟件控制試一下。此外注意將片選引腳的默認電平改為高電平;
2、由于SPI全雙工特性,當CLK工作時,兩根數(shù)據(jù)線都會進行數(shù)據(jù)傳輸,SPI在接收時也會發(fā)送數(shù)據(jù),從機會接收一個數(shù)據(jù),若該數(shù)據(jù)為能識別的命令值就會對主機產(chǎn)生影響,因此需要在接收數(shù)據(jù)之前發(fā)送0xFF,從機不識別0xFF命令,就不會對主機產(chǎn)生影響;
3、可注意檢查一下狀態(tài)寄存器的值,當讀出0xFF時某個標志位是否會有問題,如OVR標志位。注意寫入數(shù)據(jù)的時候要記得讀取;
4、可通過降低SPI頻率試一下
此外,在我們EVT中有對應(yīng)SPI操作FLASH的例程,可以參考下,EVT下載鏈接如下。后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通
CH32F203 EVT:http://www.findthetime.net/downloads/CH32F20xEVT_ZIP.html
?
NSS信號用的軟件控制,驅(qū)動程序在ST,GD上都是正常運行的,其他外圍都沒動過,只是芯片換成了ch32f203rct6,現(xiàn)在是固定每次讀數(shù)據(jù)多一個0xFF。在線調(diào)試時沒有多一個0xFF,脫機運行時會多一個0xFF。
您好,在我們EVT中有SPI驅(qū)動FLASH的例程,可以用我們例程測試下是否會有問題。EVT例程都是經(jīng)過驗證的,你那邊可以測試一下
EVT中SPI驅(qū)動FLASH的例程一樣的結(jié)果 ,第一幅圖片,在線調(diào)試的結(jié)果,第二幅圖片,脫機運行的結(jié)果
您好,關(guān)于你的問題,有幾點想跟你確認一下:
1、首先,我們EVT SPI FLASH例程是寫入一段字符串然后讀出來,請問一下下載我們EVT例程之后打印的字符串是否正確
2、SPI讀取FLASH數(shù)據(jù),應(yīng)該是通過MISO這條線進行數(shù)據(jù)傳輸?shù)?,按照你前面描述,在線調(diào)試和邏輯分析儀抓取讀數(shù)據(jù)都沒問題,但脫機運行有問題,但從你這兩幅圖看,MISO的數(shù)據(jù)都是一樣的,前面都有一個0xFF
為了方便問題的溝通解決,可加我微信或電話聯(lián)系(18951773510)溝通一下