ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Ôõô¿´Ê±Ðòͼ--nand flashµÄ¶Á²Ù×÷Ïê½â(Èý)
2017-10-11 16:46:12 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:5037´Î
Tags£ºÔõô ʱÐò --nand flash ²Ù×÷ Ïê½â
nbsp;   ÍùÉÏ¿´ R/nB Õâ¸öÊý¾ÝÏßÉÏ˵Ã÷ÁËÔ­Òò£¬Õâ¶Îʱ¼äÄÚËüÊǵ͵çƽ ¼´Ö¸Ê¾ÏÖÔÚ ´¦Óڠæµ״̬£¬»¹Î´×¼±¸ºÃÊý¾ÝÊä³ö¡£ÎªÊ²Ã´»áÕâÑù£¿

       ÒòΪÄã Ð´ÁË Ò»¸öÃüÁдÁËÒª¶ÁÊý¾ÝµÄµØÖ·£¬ÓÖдÁËÒ»¸öÃüÁî¡£ Äã×ÜÒª¸ø cpuһЩʱ¼äÈ¥´¦ÀíÕâЩÃüÁî°É£¬

       R/nBΪµÍµçƽÕâ¶Îʱ¼ä¾ÍÊÇ ÔÚ´¦ÀíÕâЩÃüÁʵ¼ÊÉÏÊǸù¾ÝÃüÁÄ㶨λµÄÄÇÒ»Ò³Êý¾Ý¶Áµ½ÄÚ²¿¼Ä´æÆ÷ÖУ©£¬

       µÈ R/nB±ä³É¸ßµçƽÁË£¬¾ÍָʾÃüÁî´¦ÀíÍê±Ï£¬ÏÖÔÚÊý¾ÝÒ²¾Í¿ÉÒÔ¶Á³öÀ´ÁË¡£

 

×ÛÉÏÎÒÃÇ´ÓÊÖ²áÖÐÎÒÃǾÍÖªµÀÁ˶Á²Ù×÷µÄ¾ßÌå²½Ö裬

1 Ê×ÏÈnand flash Ò²ÊÇÒ»¸öÍâÉ裬Ҫ·ÃÎÊËû¾ÍÐèҪƬѡËü£¬ËùÒÔÔÚÖ´ÐÐʱÐòͼÉϵIJ½Öè֮ǰÐèҪƬѡnand flash.

2 ¿´ºóÃæ¾ÍÊÇ°²×°Ê±ÐòͼÀ´ÁË£¬¿´Ê±Ðòͼ! µÚÒ»²½ÏÈÊÇ·¢ËÍÒ»¸öÃüÁî 0x00.

3 ¿´Ê±Ðòͼ£¡ È»ºó·¢ËÍÎå¸öµØÖ·ÐòÁУ¨ÏÈ·¢ËÍÁ½¸öÁеØÖ·£¬ÔÚ·¢ËÍÈý¸öÐеØÖ·£¨¼´Ò³µØÖ·£©£©

4 ¿´Ê±Ðòͼ£¡ ½Ó×ÅÔÙÊÇÒ»¸öÃüÁî 0x30.

5 ¿´Ê±Ðòͼ£¡  R/nB Òý½ÅΪµÍ±íʾÏÖÔÚÕý棬ÕýÔÚ´¦ÀíÕâЩÃüÁÄǾÍÒªµÈ´ý R/nB Òý½Å±äΪ¸ßµçƽ

6 ¿´Ê±Ðòͼ£¡ Õâ¸öʱºò¾Í¿ÉÒÔ¶ÁÊý¾ÝÁË

7 Ò»´Î¶Á²Ù×÷½áÊøÁË nand flash ÔÝʱÊDz»ÐèҪʹÓÃÁË£¬ÄÇô±ðÍüÁËÓ¦¸Ã È¡ÏûƬѡÐźš£

 

ÖÁÓÚÕâÿһ¸ö²½ÖèÖоßÌåµÄʱÐò£¬cpuÖеÄnand flash¿ØÖÆÆ÷»á°ïÎÒÃÇÍê³É¡£ÎÒÃÇÒª×ö¾ÍÊÇÉèÖü¸¸öʱ¼ä²ÎÊý

 

ÕâÀïÎÒÃÇ·´¸´Ç¿µ÷ÁËÒª¿´Ê±Ðòͼ¡£ÆäʵѧǶÈëʽǰÆÚ¶ÔÊý¾ÝÊÖ²áÒ»¶¨Òª¶à¿´£¬¿´¶àÁËÄã¾Í»ØÖªµÀ£¬Ê²Ã´¶«Î÷µÄÄãÖصãÒª¿´µÄ£¬Ê²Ã´ÊǺÍÄãµÄ±à³Ì²Ù×÷Î޹صÄÄã²»ÐèÒª¹ØÐÄ¡£ÕâÑùºóÃæÄã²ÅÄÜ£¬Äõ½Ò»¸öÍâÉè ¾ÍÄÜд³öËûµÄ²Ù×÷¡£¶ø²»Óøú×ÅÊé±³²½Öè¡£Ö»ÒªÊÖ²áÔÚ¾ÍÐÐÁË¡£

 

ÉÏÃæµÄ²½Ö裬ÊÇÒ»¸ö¾ßÌåµÄ¶Á²Ù×÷µÄ²½Ö裬²»¹ýÔÚʹÓÃÒ»¸öÆ÷¼þ֮ǰÎÒÃÇÐèÒª³õʼ»¯Ò»ÏÂËü¡£ÖÁÓÚ³õʼ»¯Ò²¾ÍÊÇÉèÖÃÎÒÃÇÉÏÃæ¶à´ÎÌáµ½µÄ

ÎÒÃÇ˵¹ý s3c2440ÒѾ­°ïÎÒ×öÁ˺ܶàµ×²ãµÄµ¥Ôª²Ù×÷£¬ÎÒÃÇÖ»ÐèÉèÖü¸¸öʱ¼ä²ÎÊý Æ¬ÄڵĠnand flash¾Í»á×Ô¶¯·¢³öÏàÓ¦²Ù×÷µÄʱÐò²Ù×÷

ÄÇôµ½µ×ÉèÖÃÄǼ¸¸öʱ¼äÄØ¡£ 

s3c2440 ÊÖ²áÉϸø³öÁË ÐèÒªÎÒÃÇÉèÖõļ¸¸ö²ÎÊý¡£

 

 

 

´ÓÖÐÎÒÃÇ¿ÉÒÔ¿´³ö µÚÒ»·ùʱÐòͼÊÇ ÃüÁîºÍµØÖ·Ëø´æµÄʱÐò£¬µÚ¶þ·ùÊÇ Êý¾Ý¶ÁÈ¡ºÍдÈëµÄʱÐò¡£
¿ÉÒÔ¿´³ö£¬ËûÃÇÒªÉèÖõÄʱ¼ä¶¼ÊÇÒ»ÑùµÄ¡£Ç°Ãæ·ÖÎöÁËÄÇô¶à£¬ÕâÀïÓ¦¸Ã²»ÄÑ ¿´³ö


1 TACLS ºÜÃ÷±íʾµÄÊÇ CLE/ALE µÄ½¨Á¢Ê±¼ä£¨ÕâÀï²¢²»×¼È·£¬ÆäʵÊÇ CLE/ALEÓÐЧµ½ WE ±ä³ÉµÍµçƽ֮¼äµÄʱ¼ä£¬µ« WE È´ÊÇÔÚÉÏÉýÑزÅËø´æÃüÁî/µØÖ·£©

2 TWRPH0 ´ú±íµÄÊÇ WE µÄÂö³å¿í¶È£¬¼´ÓÐЧʱ¼ä

3 TWRPH1 ´ú±íµÄÊÇ CLE/ALE µÄ±£³Öʱ¼ä


Äǵ½µ×ÉèÖóÉʲôÊý×ÖÄØ¡£¼ÈÈ» ÉÏͼÖжÁ/д/ÃüÁî/µØÖ· ²Ù×÷ÐèÒªµÄʱ¼ä²ÎÊý¶¼ÊÇÒ»ÑùµÄ

ÄÇôÎÒÃÇ´Ó nand flashÖÐËæ±ãÕÒÒ»¸ö ÃüÁîʱÐòÀ´¶ÔÕÕ²»¾ÍÐÐÁË

¾ÍÄÃÉÏÃæÎÒÃÇ˵¹ýµÄ ÃüÁîËø´æʱÐòÀ´¶Ô±È


ÄÇôÎÒÃǾÍÄܵõ½ÏÂÃæµÄ¹Øϵ

TWRPH0 = tWP 

TWRPH1 = tCLH

TACLS  = tCLS - tWP

 
È»ºóÉèÖóɶàÉÙÄØ£¿ ¿´Êֲᰡ£¬ÊÖ²áÖÐ¶Ô tWP  tCLH  tCLS ¶¼»áÖÁÉÙ¸ø³ö ÐèÒªµÄ×îСʱ¼ä


Õâ¿îоƬnand flashÊÖ²áÖÐÕâÈý¸ö²ÎÊýÒªÇóÊÇ

 

ËùÒÔ TWRPH0 = tWP  >=12ns

        TWRPH1 = tCLH >=5ns

        TACLS  = tCLS - tWP >=0£»

¶øÕâÈý¸ö²ÎÊýÔÚs3c2440µÄÊý¾ÝÊÖ²áÖÐ˵Ã÷Ϊ

 

µ±È»ÕâÀïµÄʱ¼ä¶¼ÊÇÒÔ HCLK Îªµ¥Î»µÄ£¬Õ⼸¸ö²ÎÊý ÊÇÔÚ nand flash¿ØÖƼĴæÆ÷ÖеĠNFCONFÖÐÉèÖõÄ

ÕâÀïÎÒûÓÃʹÓÃMPLL ËùÒÔHCLKÊÇ 12MHZ

 

ËùÒÔ TWRPH0 = 0 TWRPH1 =0 TACLS =0; (Èç¹ûÄãµÄʱÖÓƵÂʱȽϸߣ¬ÄǾÍÒªÉè±ðµÄÊýÁË¡£µ±È»ÓÐÊÇÓÐÄãÕæ²»ÖªµÀ£¬ÉèÖôóµã×Üû´í£¬Ö»²»¹ýËٶȿÉÄÜ»áÂýµã¡£)

       ËùÒÔ NFCONF =0;£¨NOFCONFÆäËûλÊý¾ÝÊÖ²áÖÐÓÐ˵Ã÷£¬ÕâÀïÖ»ÊǼòµ¥¶Á²Ù×÷£¬ÆäËûλ¿ÉÒÔ²»ÉèÖã©

 

È»ºóÊdzõʼ»¯Ò»Ï ECC Ê¹ÄÜnand flash¿ØÖÆÆ÷£¨ÎÒÃÇÖ»ÊÇÉèÖÃÁ˼¸¸öʱ¼ä²ÎÊý£¬Ê±ÐòµÄ¾ßÌå²Ù×÷¾ÍÊÇ¿¿ËûÀ´Íê³ÉµÄ£¬ËùÒÔҪʹÄÜËû£©

È»ºóÏÈ¡¡È¡ÏûƬѡnand flash ÒòΪÎÒÃÇÏÖÔÚ»¹Ã»ÓвÙ×÷Ëü°¡£¬Ö»Êdzõʼ»¯Ò»Ï¡£ËùÒÔ»¹ÊÇÓ¦¸ÃÏÈÈ¡ÏûƬѡ£¬µÈÕæÕý¶ÁµÄʱºòÔÙʹÄÜƬѡÐźÅ

 

NFCONT = (1<<4) | (1<<1) (1<<0);

£¨Êý¾ÝÊÖ²áÖÐÓжÔӦλµÄ˵Ã÷£©

×îºó£¬µÚÒ»´ÎʹÓÃnand flash ÎÒÃÇÐèÒª¸´Î»²Ù×÷һϡ£

×ÛÉÏ£¬nand flash µÄ³õʼ»¯´úÂëÈçÏÂ

void nand_init(void){

        NFCONF =0;

        NFCONT = (1<<4) | (1<<1) | (1<<0);

        nand_reset();  //nand reset´úÂëÔÚºóÃæ

}

 

ÏÂÃæ´úÂëһЩµØÖ·µÄд·¨ÊÇÓë nand flash ÐͺÅÓйصġ£¾ßÌåÐèÒª²Î¿¼Ð¾Æ¬ÊÖ²á

      

 

void select_chip(void){

&nbs

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 ÏÂÒ»Ò³ βҳ 3/5/5
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºESP8266»ù´¡Æª ÏÂһƪ£ºBeaglebone Black¨CÖÇÄܼҾӿØÖÆÏ..

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿