|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
求教ST工程師:STR710與NAND512W3A的接口時(shí)序問(wèn)題 |
作者:wxhwjf 欄目:MCU技術(shù) |
ST工程師: 我在項(xiàng)目中遇到一個(gè)問(wèn)題,設(shè)計(jì)中參考ST公司的資料AN2287采用一片STR710F和一片NAND FLASH(NAND512W3A)連接,他們之間的接口如下圖。這里我將FLASH的ALE、CLE、WP、R/B 全部連接到STR710的地址線(xiàn)上,同時(shí)在程序中將這些地址線(xiàn)做初始化時(shí)按照復(fù)用功能(也就是做地址線(xiàn))定義: EMI_Config(3,EMI_ENABLE | EMI_WAITSTATE(3) | EMI_SIZE_8); GPIO_Config(GPIO2,0x0008,GPIO_AF_PP); //config P2.3 as NANF_/CS GPIO_Config(GPIO2,0x0010,GPIO_AF_PP); //config P2.4 as NANF_/WP GPIO_Config(GPIO2,0x0020,GPIO_AF_PP); //config P2.5 as NANF_CLE GPIO_Config(GPIO2,0x0040,GPIO_AF_PP); //config P2.6 as NANF_ALE GPIO_Config(GPIO2,0x0080,GPIO_IN_TRI_CMOS); //config P2.7 as NANF_R/B 這樣對(duì)NAND FLASH的操作就完全是對(duì)相應(yīng)地址的讀寫(xiě)操作了。但這里發(fā)現(xiàn)一個(gè)問(wèn)題,就是在FLASH的芯片資料中說(shuō)明,當(dāng)寫(xiě)入命令或地址時(shí),CLE和ALE(對(duì)應(yīng)MCU的地址線(xiàn))在寫(xiě)信號(hào)WE的上升沿鎖存時(shí)保持時(shí)間至少應(yīng)達(dá)到10ns,而MCU的芯片說(shuō)明中寫(xiě)信號(hào)WE發(fā)出之后,地址線(xiàn)在WE的上升沿后的保持時(shí)間只有3ns,這樣一來(lái)他們之間的時(shí)序就不匹配了。用示波器測(cè)試結(jié)果也是3ns。這是不是說(shuō)他們之間接口時(shí)一定要把這幾條線(xiàn)要按照I/O口的方式使用,而不能完全作為地址線(xiàn)操作?另外我參考的ST資料AN2287就是講這兩者之間如何接口的,給出的代碼我看了,發(fā)現(xiàn)初始化時(shí)有的也是按照I/O口的方式,而有的是按照地址線(xiàn)初始化。完全按I/O口線(xiàn)控制是沒(méi)問(wèn)題的,但速度慢,我現(xiàn)在就想改成地址總線(xiàn)映射控制的方式來(lái)提高速度,同時(shí)不必再加其他的膠合邏輯電路。請(qǐng)教各位看能否可行。謝謝! http://h:ttt.jpg/ |
2樓: | >>參與討論 |
作者: wxhwjf 于 2006/9/3 18:44:00 發(fā)布:
求教ST工程師時(shí)序問(wèn)題(重發(fā)一次,剛才圖沒(méi)有帖上) ST工程師: 我在項(xiàng)目中遇到一個(gè)問(wèn)題,設(shè)計(jì)中參考ST公司的資料AN2287采用一片STR710F和一片NAND FLASH(NAND512W3A)連接,他們之間的接口如下圖。這里我將FLASH的ALE、CLE、WP、R/B 全部連接到STR710的地址線(xiàn)上,同時(shí)在程序中將這些地址線(xiàn)做初始化時(shí)按照復(fù)用功能(也就是做地址線(xiàn))定義: EMI_Config(3,EMI_ENABLE | EMI_WAITSTATE(3) | EMI_SIZE_8); GPIO_Config(GPIO2,0x0008,GPIO_AF_PP); //config P2.3 as NANF_/CS GPIO_Config(GPIO2,0x0010,GPIO_AF_PP); //config P2.4 as NANF_/WP GPIO_Config(GPIO2,0x0020,GPIO_AF_PP); //config P2.5 as NANF_CLE GPIO_Config(GPIO2,0x0040,GPIO_AF_PP); //config P2.6 as NANF_ALE GPIO_Config(GPIO2,0x0080,GPIO_IN_TRI_CMOS); //config P2.7 as NANF_R/B 這樣對(duì)NAND FLASH的操作就完全是對(duì)相應(yīng)地址的讀寫(xiě)操作了。但這里發(fā)現(xiàn)一個(gè)問(wèn)題,就是在FLASH的芯片資料中說(shuō)明,當(dāng)寫(xiě)入命令或地址時(shí),CLE和ALE(對(duì)應(yīng)MCU的地址線(xiàn))在寫(xiě)信號(hào)WE的上升沿鎖存時(shí)保持時(shí)間至少應(yīng)達(dá)到10ns,而MCU的芯片說(shuō)明中寫(xiě)信號(hào)WE發(fā)出之后,地址線(xiàn)在WE的上升沿后的保持時(shí)間只有3ns,這樣一來(lái)他們之間的時(shí)序就不匹配了。用示波器測(cè)試結(jié)果也是3ns。這是不是說(shuō)他們之間接口時(shí)一定要把這幾條線(xiàn)要按照I/O口的方式使用,而不能完全作為地址線(xiàn)操作?另外我參考的ST資料AN2287就是講這兩者之間如何接口的,給出的代碼我看了,發(fā)現(xiàn)初始化時(shí)有的也是按照I/O口的方式,而有的是按照地址線(xiàn)初始化。完全按I/O口線(xiàn)控制是沒(méi)問(wèn)題的,但速度慢,我現(xiàn)在就想改成地址總線(xiàn)映射控制的方式來(lái)提高速度,同時(shí)不必再加其他的膠合邏輯電路。請(qǐng)教各位看能否可行。謝謝! h:ttt.jpg |
3樓: | >>參與討論 |
作者: 香水城 于 2006/9/3 19:58:00 發(fā)布:
哈哈,圖還是沒(méi)有貼上來(lái)。明天上班后會(huì)有人幫你解答問(wèn)題的。 初步地看,如果地址線(xiàn)的保持時(shí)間不夠的話(huà),CLE和ALE應(yīng)由I/O口的方式控制,這樣對(duì)速度的影響應(yīng)該不會(huì)有太大的影響。CE必須由I/O口的方式控制,以防有中斷時(shí)CE發(fā)生變化。 以讀一個(gè)512字節(jié)的頁(yè)為例,應(yīng)有如下操作: CE=0 CLE=1,ALE=0 寫(xiě)命令00H CLE=0,ALE=1 寫(xiě)地址字節(jié)1 寫(xiě)地址字節(jié)2 寫(xiě)地址字節(jié)3 寫(xiě)地址字節(jié)4 寫(xiě)地址字節(jié)5 CLE=0,ALE=0 while (R/B == Low); // 等候R/B變?yōu)镽eady 讀512個(gè)數(shù)據(jù)字節(jié) CE=1 上述例子中,標(biāo)為紅色的操作應(yīng)是I/O操作,可以看到這三行在整個(gè)頁(yè)讀出的操作中所占比例很小。 |
4樓: | >>參與討論 |
作者: wxhwjf 于 2006/9/4 16:50:00 發(fā)布:
謝謝香水城,我知道了。 |
5樓: | >>參與討論 |
作者: lut1lut 于 2006/9/7 17:13:00 發(fā)布:
STR71和NAND512W3A的接口時(shí)序 最好NAND512W3A的片選也用STR71的EMI上的片選信號(hào)。 EMI上的CS和R或者W信號(hào)的時(shí)序符合FLASH上的片選和讀寫(xiě)使能信號(hào)的要求。 (1)FLASH上的tELWL,即使能(片選)信號(hào)拉低,到讀寫(xiě)信號(hào)拉低的時(shí)間間隔要求為最小可以是10ns(當(dāng)然是前者先被拉低);而STR7的EMI上片選信號(hào)與讀寫(xiě)使能信號(hào)是同時(shí)拉低的。符合要求 (2)FLASH上的tWHEH,即讀寫(xiě)信號(hào)跳高后,片選信號(hào)還應(yīng)該保持低的時(shí)間要求為10ns;而STR7的EMI方面二者的間隔為最小是20ns,最大是22.5ns。 也完全符合要求。 這樣做的好處是:若是用IO口控制FLASH的片選。若是先選中了該FLASH,這個(gè)時(shí)候來(lái)了個(gè)中斷,導(dǎo)致對(duì)EMI其它bank上掛的外部DEVICE的操作。那么數(shù)據(jù)總線(xiàn)上的信息就會(huì)同樣影響到該IO口控制的FLASH。而使用EMI上的片選信號(hào)則可以避免這個(gè)問(wèn)題。 |
6樓: | >>參與討論 |
作者: kingor_888 于 2006/9/13 18:39:00 發(fā)布:
我也剛看,明天自己試試先 |
7樓: | >>參與討論 |
作者: kingor_888 于 2006/9/14 17:06:00 發(fā)布:
st有ecc的資料嗎?在其an上找不早。 謝謝! |
8樓: | >>參與討論 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
作者: 香水城 于 2006/9/14 18:15:00 發(fā)布:
借你一個(gè)ECC的說(shuō)明,用完了記得還回來(lái) • ECC scheme In the case of the ECC scheme adopted for this Format Specification, 22 bits of ECC (Error Correction Code) are added for every 256 bytes of the Storing area. ECC Field-1 and ECC Field-2 are used for Storing Area-1 and Storing Area-2, respectively. The ECC scheme is capable of SINGLE-bit correction and 2-bit random-error detection. ECCs are generated ONLY for data areas and no ECC is generated for page-data redundant areas containing ECCs. This is because the data in the page-data redundant area is duplicated for reliability and this duplication (redundancy) provides a means of checking the integrity of the data. For ECC calculations, 256 bytes are handled in the form of 2048-bit serial data. In the event of an error, the error-correction feature can detect the bit location of the error that has occurred based on the results of a parity check and correct the data. • Definition of the Location Addresses of 2048-Bit Serial Data 256 bytes are arranged in a serial-data format or a SINGLE stream of bits.
In the above diagram, the top row represents the first byte input and the bottom row represents the 256th byte input. In other words, Bit 0 of the first byte becomes the first bit (whose address is 00000000 000) of the 2048-bit stream while bit 7 of the 256th byte becomes the 2048th bit (address = 11111111 111) of the 2048-bit stream. • Generation of Parity Data There are a total of 22 bits of parity data (6 bits for column parity and 16 bits for LINE parity) as follows: CP0, CP1, CP2, CP3, CP4, CP5, LP00, LP01, LP02, LP03, ..., LP14, and LP15. The parity data that have been generated are stored in the page-data redundant area in the order shown below: ECC Data Arrangement
LINE parity (LP) and column parity (CP) represent 1024-bit odd parity. Each parity data satisfies the corresponding condition shown below: LP00 = D (*******0 , ***) CP0 = D (******** , **0) LP01 = D (*******1 , ***) CP1 = D (******** , **1) LP02 = D (******0* , ***) CP2 = D (******** , *0*) LP03 = D (******1* , ***) CP3 = D (******** , *1*) LP04 = D (*****0** , ***) CP4 = D (******** , 0**) LP05 = D (*****1** , ***) CP5 = D (******** , 1**) LP06 = D (****0*** , ***) LP07 = D (****1*** , ***) Where * represents “0” or “1”. LP08 = D (***0**** , ***) LP09 = D (***1**** , ***) LP10 = D (**0***** , ***) LP11 = D (**1***** , ***) LP12 = D (*0****** , ***) LP13 = D (*1****** , ***) LP14 = D (0******* , ***) LP15 = D (1******* , ***) |
9樓: | >>參與討論 |
作者: starm 于 2006/9/24 16:39:00 發(fā)布:
Re: 使用EMI上的片選信號(hào)則可以避免這個(gè)問(wèn)題 能夠給出NAND FLASH 和 STR710 具體的連接示意圖? 是否圖片中紅色方框信號(hào)不采用gpio模式, 而是使用 emi模式自動(dòng)控制? |
10樓: | >>參與討論 |
作者: lut1lut 于 2006/11/9 14:01:00 發(fā)布:
Re starm 嗯,我現(xiàn)在就是把ALE和CLE兩根NAND FLASH上的信號(hào)線(xiàn)由STR71x的GPIO控制的;NAND FLASH的片選信號(hào)仍然由STR71x的CS.3控制的。(我是掛在EMI的bank 3上的)其余連接同上。 |
11樓: | >>參與討論 |
作者: yzhu 于 2006/11/12 9:32:00 發(fā)布:
提供一篇參考文章 文中第一種方式接可行。 http://www.cirrus.com/en/pubs/appNote/AN266REV1.pdf |
|
|
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |