鎽� 瑕侊細鍦ㄨ畩闋诲櫒鐨勮ō(sh猫)瑷�(j矛)涓噰鐢‥EPROM淇濆瓨鏁�(sh霉)鎿�(j霉)锛屼互淇濊瓑鐣�(d膩ng)绯荤当(t菕ng)鏂烽浕鏅�(sh铆)鑳介潪鏄撳け鍦板瓨鍙栨暩(sh霉)鎿�(j霉)锛屾湰鏂囪┏绱�(x矛)浠嬬垂浜員MS320F240鐨勪覆琛屽瑷�(sh猫)鎺ュ彛锛圫PI锛夋摯(ku貌)灞旹EPROM鐨勮粺纭欢瑷�(sh猫)瑷�(j矛)銆�
闂�(gu膩n)閸佃锛�TMS320F240 SPI EEPROM X5168
1 寮曡█
銆€銆€璁婇牷鍣ㄧ殑闁�(k膩i)鐧�(f膩)涓垜鍊戦伕鐢═MS320F240鑺墖鍋氫富CPU锛孴MS320F240绯诲垪鏄編鍦�(gu贸)TI鍏徃浜�1997骞存帹鍑虹殑锛屽皥(zhu膩n)鐐烘暩(sh霉)瀛楅浕姗�(j墨)鎺у埗鍜屽叾瀹冩帶鍒舵噳(y墨ng)鐢ㄧ郴绲�(t菕ng)鑰岃ō(sh猫)瑷�(j矛)鐨�16浣嶅畾榛�(di菐n)鏁�(sh霉)瀛椾俊铏�(h脿o)铏曠悊鍣�銆傚畠灏囨暩(sh霉)瀛椾俊铏�(h脿o)铏曠悊鐨勯珮閫熼亱(y霉n)绠楀姛鑳借垏闈㈠悜闆绘(j墨)鐨勫挤(qi谩ng)澶ф帶鍒惰兘鍔涚祼(ji茅)鍚堝湪涓€璧�锛屾垚鐐轰腑浣庣璁婇牷鍣ㄧ悊鎯崇殑涓绘帶鑺墖銆侳240鐗囧収(n猫i)澶栬ō(sh猫)鍖呮嫭闆�10浣岮/D杞�(zhu菐n)鎻涘櫒锛屽付鏈夐帠鐩哥挵(hu谩n)PLL鏅�(sh铆)閻樻ā濉婏紝甯朵腑鏂风殑鐪嬮杸(m茅n)鐙楀畾鏅�(sh铆)鍣ㄦā濉�锛屼覆琛岄€氫俊鎺ュ彛SCI鍙婁覆琛屽瑷�(sh猫)鎺ュ彛SPI锛屽彟澶�锛岄倓闆嗘垚浜嗕竴鍊�(g猫)浜嬩欢绠$悊妯″EVM銆傚洜姝�锛孴MS320F240鍩烘湰鑳芥豢瓒崇瓎鑰呰畩闋诲櫒瑷�(sh猫)瑷�(j矛)鐨勮姹傘€�
銆€銆€璁婇牷鍣ㄦ湁骞剧櫨鐢氳嚦涓婂崈鍊�(g猫)鍙冩暩(sh霉)锛岄€欎簺鍙冩暩(sh霉)鍊奸兘瑕佹眰绯荤当(t菕ng)鏂烽浕鍚庝笉鑳戒笩澶�锛屽湪瑷�(sh猫)瑷�(j矛)涓垜鍊戦伕鐢ㄩ潪鏄撳け鎬у瓨鍎�(ch菙)鍣‥EPROM淇濆瓨鏁�(sh霉)鎿�(j霉)銆傛瘡娆′笂闆绘檪(sh铆)锛屽緸EEPROM涓畝鍙栦笂娆″弮鏁�(sh霉)鐨勮ō(sh猫)瀹氬€硷紝浠ヤ繚璀夎畩闋诲櫒閬�(y霉n)琛岀媭鎱�(t脿i)鐨勯€g簩(x霉)鎬�锛屽悓妯f瘡娆℃柗闆绘檪(sh铆)锛屼篃瑕佷繚瀛樿畩闋诲櫒姝ゆ閬�(y霉n)琛岀殑鍙冩暩(sh霉)瑷�(sh猫)瀹氭儏娉�锛屼互渚块枊(k膩i)姗�(j墨)鏅�(sh铆)璁€鍙�銆傛湰鏂囬棥杩颁簡璁婇牷鍣ㄩ枊(k膩i)鐧�(f膩)涓璅240鎿�(ku貌)灞旹EPROM锛圶5168锛夌殑瑷�(sh猫)瑷�(j矛)鎬濊矾鍜屽(sh铆)鐝�(xi脿n)閬�(gu貌)绋�銆�
2 灏�(du矛)TMS320F240鐨勪覆琛屽瑷�(sh猫)鎺ュ彛锛圫PI锛夌殑瑾�(shu艒)鏄�
銆€銆€TMS320F240鐨勪覆琛屽瑷�(sh猫)鎺ュ彛锛圫PI锛夋ā濉婃槸涓€鍊�(g猫)楂橀€熷悓姝ヤ覆琛岃几鍏�/杓稿嚭绔彛锛屽畠鍏佽ūF240鎺у埗鍣ㄥ拰鐗囧澶栬ō(sh猫)鎴栧叾浠栨帶鍒跺櫒閫�(j矛n)琛屼覆琛岄€氫俊锛屽湪閫氫俊閬�(gu貌)绋嬩腑锛孲PI鑳藉浠ヤ换鎰忕郸瀹氱殑鍌宠几閫熺巼灏�(du矛)鍏锋湁鍙法鎴愰暦(zh菐ng)搴︼紙1-8浣嶏級鐨勪覆琛屾瘮鐗规祦閫�(j矛n)琛屾敹鐧�(f膩)銆傝┎妯″涔熸槸涓€鍊�(g猫)8浣嶅瑷�(sh猫)锛屽畠鐩存帴鎺涘湪16浣嶇殑鐗囧収(n猫i)澶栬ō(sh猫)绺界窔涓婏紝鍥犳锛屽瑷�(sh猫)绺界窔鐨勯珮8浣嶈畝瀵�(xi臎)瑷晱(w猫n)灏�(du矛)瑭叉ā濉婃槸娌�(m茅i)鏈夋剰缇╃殑銆�
銆€銆€SPI妯″鐨勭壒鎬у涓嬶細
銆€?銆�?锛� 4鍊�(g猫)澶栭儴寮曡叧銆係PISOM I鐐篠PI寰炶几鍑�/涓昏几鍏ュ紩鑵�;SPISIMO鐐篠PI寰炶几鍏�/涓昏几鍑哄紩鑵�;SPISTE鐐篠PI寰炵櫦(f膩)閫佷娇鑳藉紩鑵�;SPICLK鐐篠PI涓茶鏅�(sh铆)閻樺紩鑵炽€�
銆€?銆�?锛� 鍏╃ó宸ヤ綔鏂瑰紡锛屽嵆涓绘ā寮忥紙Master锛夊拰寰炴ā寮忥紙Slave锛夈€�
銆€?銆�?锛� 鏁�(sh霉)鎿�(j霉)瀛楅暦(zh菐ng)銆�1-8鍊�(g猫)鏁�(sh霉)鎿�(j霉)浣嶃€�
銆€?銆�?锛� 鍙悓鏅�(sh铆)鎺ユ敹鍜岀櫦(f膩)閫佹暩(sh霉)鎿�(j霉)锛岀櫦(f膩)閫佸拰鎺ユ敹鎿嶄綔鍙€氶亷(gu貌)涓柗鎴栨煡瑭�(x煤n)鏂规硶渚�(l谩i)瀹屾垚銆�
銆€?銆�?锛� 娉㈢壒鐜�锛宭25绋彲绶ㄧ▼鐨勬尝鐗圭巼锛屼笅鍒楀叐鍊�(g猫)鍏紡绲﹀嚭浜嗚▓(j矛)绠桽PI鐨勬尝鐗圭巼鐨勬柟娉曪細
銆€銆€1. 鐣�(d膩ng)SPIBRR=3-127鏅�(sh铆)锛孲PI娉㈢壒鐜�=绯荤当(t菕ng)鏅�(sh铆)閻橀牷鐜�/锛圫PI瀵勫瓨鍣ㄧ殑鍊�+1锛�;
銆€銆€2. 鐣�(d膩ng)SPIBRR=0銆�1銆�2鏅�(sh铆)锛孲PI娉㈢壒鐜�=绯荤当(t菕ng)鏅�(sh铆)閻橀牷鐜�/4;
銆€?銆�?锛� 4绋檪(sh铆)閻樻柟妗堬紝鐢辨檪(sh铆)閻樻サ鎬т綅锛圫PICCR瀵勫瓨鍣ㄧ殑浣�6锛夊拰鏅�(sh铆)閻樼浉浣嶄綅锛圫PICTL瀵勫瓨鍣ㄧ殑浣�3锛夐€�(j矛n)琛岃ō(sh猫)缃紝鍖呮嫭锛�
銆€銆€1. 鐒�(w煤)寤舵檪(sh铆)涓嬮檷娌挎湁鏁堬細涓茶澶栬ō(sh猫)鎺ュ彛鍦⊿PICLK 淇¤櫉(h脿o)涓嬮檷娌跨櫦(f膩)閫佹暩(sh霉)鎿�(j霉)锛岃€屽湪SPICLK 淇¤櫉(h脿o)涓婂崌娌挎帴鏀舵暩(sh霉)鎿�(j霉);
銆€銆€2. 鏈夊欢鏅�(sh铆)涓嬮檷娌挎湁鏁堬細涓茶澶栬ō(sh猫)鎺ュ彛鍦⊿PICLK 淇¤櫉(h脿o)涓嬮檷娌夸箣鍓嶇殑鍗婂€�(g猫)鍛ㄦ湡鏅�(sh铆)鐧�(f膩)閫佹暩(sh霉)鎿�(j霉)锛岃€屽湪SPICLK 淇¤櫉(h脿o)涓嬮檷娌挎帴鏀舵暩(sh霉)鎿�(j霉);
銆€銆€3. 鐒�(w煤)寤舵檪(sh铆)涓婂崌娌挎湁鏁堬細涓茶澶栬ō(sh猫)鎺ュ彛鍦⊿PICLK 淇¤櫉(h脿o)涓婂崌娌跨櫦(f膩)閫佹暩(sh霉)鎿�(j霉)锛岃€屽湪SPICLK 淇¤櫉(h脿o)涓嬮檷娌挎帴鏀舵暩(sh霉)鎿�(j霉);
銆€銆€4. 鏈夊欢鏅�(sh铆)涓婂崌娌挎湁鏁堬細涓茶澶栬ō(sh猫)鎺ュ彛鍦⊿PICLK 淇¤櫉(h脿o)涓婂崌娌夸箣鍓嶇殑鍗婂€�(g猫)鍛ㄦ湡鏅�(sh铆)鐧�(f膩)閫佹暩(sh霉)鎿�(j霉)锛� 鍦⊿PICLK 淇¤櫉(h脿o)涓婂崌娌挎帴鏀舵暩(sh霉)鎿�(j霉)銆�
3 灏�(du矛)X5168鐨勮(shu艒)鏄�
銆€銆€DSP铏曠悊閫熷害姣旇純蹇�锛屼笖鏈ō(sh猫)瑷�(j矛)闇€瑕佷繚瀛樼殑鏁�(sh霉)鎿�(j霉)閲忓ぇ锛岀瓎鑰呴伕鎿囦簡XICOR鍏徃鐨勫付16Kb SPI EEPROM 鐨凜PU鐩�(ji膩n)瑕栧櫒X5168銆傚櫒浠舵妸鍥涚ó甯哥敤鐨勫姛鑳斤細涓婇浕寰�(f霉)浣�銆佺湅闁€(m茅n)鐙楀畾鏅�(sh铆)鍣ㄣ€侀浕婧愰浕澹撶洠(ji膩n)鎺у拰濉婇帠瀛樹繚璀�(h霉)鐨勪覆琛孍EPROM 瀛樺劜(ch菙)鍣ㄩ泦鎴愬湪涓€鍊�(g猫)灏佽涔嬪収(n猫i)锛岄€欑ó绲勫悎闄嶄綆浜嗙郴绲�(t菕ng)鎴愭湰锛屾笡灏戜簡闆昏矾鏉跨┖闁�锛屽鍔犱簡鍙潬鎬с€�
銆€銆€鍣ㄤ欢鐨勫瓨鍎�(ch菙)鍣ㄩ儴鍒嗘槸甯舵湁XICOR鍏徃鐨勫閹栧瓨淇濊(h霉)鐨凜MOS涓茶EEPROM 闄e垪锛岄櫍鍒楃殑鍏�(n猫i)閮ㄧ祫绻旀槸x8浣�銆傚叿鏈変覆琛屽鍦嶆帴鍙o紙SPI锛夊拰杌熶欢鍗�(xi茅)璀扮殑鐗归粸(di菐n)锛屽厑瑷卞湪绨�(ji菐n)鍠殑鍥涚窔绺界窔涓婂伐浣�銆傚埄鐢╔ICOR灏�(zhu膩n)鏈夌殑鐩存帴瀵�(xi臎)鍏ユ櫠鐗�锛屾彁渚涙渶灏忕偤100,000娆℃摝瀵�(xi臎)鍜屾渶灏戠偤100 骞寸殑鏁�(sh霉)鎿�(j霉)淇濆瓨鏈�銆�
4 DSP鑸嘪5168鐨勯€f帴閫氫俊
4.1纭欢瑷�(sh猫)瑷�(j矛)
銆€銆€鍦ㄨ畩闋诲櫒瑷�(sh猫)瑷�(j矛)涓璂SP鑸嘪5168鐨勭‖浠堕€f帴鍦栧鍦�1
[align=center]

鍦�1 TMS320F240鑸嘪5168閫f帴鍘熺悊鍦朳/align]
銆€銆€涓茶澶栬ō(sh猫)鎺ュ彛锛圫PI锛夋湁鍏╃ó宸ヤ綔妯″紡锛氫富妯″紡鍜屽緸妯″紡锛岃垏X5168 閫f帴鏅�(sh铆)宸ヤ綔浜庝富妯″紡銆傚緸鍦栦腑鍙湅鍒�锛孹5168閫氶亷(gu貌)鍥涙牴绶氫締(l谩i)瀹屾垚鑸嘍SP鐨勬暩(sh霉)鎿�(j霉)浜ゆ彌锛孌SP鐨凷PISIMO銆丼PISOMI銆丼PICLK銆丼PISTE寮曡叧鍒嗗垾閫f帴X(ju茅)5168鐨凷I锛堜覆琛岃几鍏ワ級銆丼O锛堜覆琛岃几鍑猴級銆丼CK锛堜覆琛屾檪(sh铆)閻橈級銆�/CS锛堢墖閬哥锛�锛屾鏅�(sh铆)鐨凢240鎺у埗鍣ㄧū(ch膿ng)鐐衡€滀富姗�(j墨)鈥�锛岄€欑ó鎯呮硜涓嬶紝SPI鍦⊿PICLK寮曡叧涓婃彁渚涗簡鏁村€�(g猫)涓茶閫氫俊缍�(w菐ng)绲�(lu貌)鎵€闇€鐨勪覆琛屾檪(sh铆)閻�;鏁�(sh霉)鎿�(j霉)寰濻PISIMO寮曡叧杓稿嚭;骞堕帠瀛樺緸SPISOMI寮曡叧杓稿叆鐨勬暩(sh霉)鎿�(j霉);SPIBRR瀵勫瓨鍣ㄦ焙瀹氫簡鏁村€�(g猫)涓茶閫氫俊缍�(w菐ng)绲�(lu貌)涓暩(sh霉)鎿�(j霉)鐧�(f膩)閫佸拰鎺ユ敹鏅�(sh铆)鐨勪綅鍌宠几鐜�銆�
銆€銆€瀵�(xi臎)鍏PIDAT鐨勬暩(sh霉)鎿�(j霉)鍟熷嫊(d貌ng)浜哠PISIMO寮曡叧涓婄殑鏁�(sh霉)鎿�(j霉)鐧�(f膩)閫�锛屽厛鐧�(f膩)閫佹渶楂樻湁鏁堜綅;鍚屾檪(sh铆)锛屾帴鏀剁殑鏁�(sh霉)鎿�(j霉)閫氶亷(gu貌)SPISOMI寮曡叧绉诲叆SPIDAT鐨勬渶浣庢湁鏁堜綅銆傜暥(d膩ng)鏈変竴瀹氭暩(sh霉)閲忕殑鏁�(sh霉)鎿�(j霉)浣嶉€氶亷(gu貌)SPIDAT绉讳綅鏅�(sh铆)锛岀敘(ch菐n)鐢熶笅鍒椾簨浠讹細
銆€銆€涓€銆丼PI INT FLAG缃�1
銆€銆€浜�銆丼PIDAT鐨勫収(n猫i)瀹瑰偝閫佸埌SPIBUF
銆€銆€涓�銆佸鏋淪PI INT ENA涔熻缃�1锛屽墖鐢�(ch菐n)鐢熶腑鏂疯珛(q菒ng)姹�
銆€銆€鍦ㄤ富妯″紡涓�锛岀劇(w煤)璜栧瘎瀛樺櫒SPIPC1鐨勪綅5锛圫PISTE FUNCTION锛夌偤浣曞€硷紝SPISTE寮曡叧閮藉皣鐢ㄤ綔閫氱敤鏁�(sh霉)瀛桰/O寮曡叧銆傚湪鏈ō(sh猫)瑷�(j矛)涓紝寮曡叧SPISTE鐢ㄤ綔寰炴(j墨)SPI妯″鐨勭墖閬稿紩鑵�;鍦ㄥ皣涓绘(j墨)鏁�(sh霉)鎿�(j霉)鍌抽€佸埌寰炴(j墨)鍣ㄤ欢涔嬪墠锛屾噳(y墨ng)灏囧緸姗�(j墨)鍣ㄤ欢鐗囬伕寮曡叧鎷変綆闆诲钩锛屽苟涓斿湪鍌抽€佸畬涓绘(j墨)鏁�(sh霉)鎿�(j霉)涔嬪悗锛岄噸鏂板皣瑭插紩鑵虫媺鐐洪珮闆诲钩銆�
4.2杌熶欢瑷�(sh猫)瑷�(j矛)
4.2.1 TMS320 F240鐨凷PI鍒濆鍖�
銆€銆€涓婃枃浠嬬垂浜咶240鐨凷PI妯″鐨勫姛鑳斤紝閰嶇疆瀵勫瓨鍣ㄤ覆琛屽瑷�(sh猫)鎺ュ彛宸ヤ綔浜庝富妯″紡锛屾尝鐗圭巼瑷�(sh猫)缃偤2MHz锛屽垵濮嬪寲绋嬪簭濡備笅锛�
銆€銆€void SPIinitial锛坴oid锛�
銆€?銆�?锛奡PICCR=0xc7; //寰�(f霉)浣峉PI
銆€銆€锛奡PICTL=0x06; //涓绘ā寮�锛屼娇鑳絋ALK,绂佹SPI涓柗
銆€銆€锛奡PISTS=0x00; //娓呬腑鏂锋(bi膩o)蹇�
銆€?銆傜寗PIBRR=0x04; //娉㈢壒鐜囪ō(sh猫)鐐篠PICLK=SYSCLK/4+1=2MHz锛孲YSCLK=10MHz
銆€?銆傜寗PIPC1=0x52; //SPISTE寮曡叧閰嶇疆鎴愯几鍑哄紩鑵筹紝SPICLK琚厤缃垚涓茶鏅�(sh铆)閻樼殑杓�
銆€銆€//鍏ユ垨杓稿嚭
銆€?銆傜寗PIPC2=0x22; //SPISIMO,SPISOMI鐢ㄤ綔SPI杓稿叆杓稿嚭
銆€?銆傜寗PICCR=0x47; //涓婂崌娌跨櫦(f膩)閫�锛屼笅闄嶆部杓稿叆鏁�(sh霉)鎿�(j霉)閹栧瓨锛岀劇(w煤)鏅�(sh铆)寤�锛屽瓧绗﹂暦(zh菐ng)搴︾偤8
銆€?銆�?
4.2.2 F240灏�(du矛)X5168鐨勮畝瀵�(xi臎)绋嬪簭
銆€銆€灏�(du矛)EEPROM鐨勮畝瀵�(xi臎)鏄ō(sh猫)瑷�(j矛)鐨勯噸榛�(di菐n)锛屼互涓嬪垎鍒ヤ粙绱癸細
銆€銆€涓€銆佽畝鎿嶄綔
銆€銆€a锛�.寰濫EPROM瀛樺劜(ch菙)鍣ㄩ櫍鍒椾腑璁€鏁�(sh霉)鎿�(j霉)鏅�(sh铆)锛�/CS 棣栧厛琚媺浣庝互閬告搰鍣ㄤ欢锛屽悜鍣ㄤ欢鍌抽€�8浣嶈畝READ鎸囦护锛�00000011B锛夛紝鎺ヨ憲鏄�16浣嶅湴鍧€锛堥珮浣嶅湪鍓嶏級銆傚湪璁€鎿嶄綔纰煎拰鍦板潃閫佸嚭鍚�锛屽瓨鍎�(ch菙)浣嶄簬鍦ㄦ墍閬稿湴鍧€鐨勫瓨鍎�(ch菙)鍣ㄤ腑鐨勬暩(sh霉)鎿�(j霉)鍦⊿O绶氫笂琚Щ鍑猴紝绻肩簩(x霉)鎻愪緵鏅�(sh铆)閻樿剤娌栧彲鎺ヨ憲璁€鍑哄瓨鍎�(ch菙)鍦ㄤ綅浜庝笅涓€鍊�(g猫)鍦板潃鐨勫瓨鍎�(ch菙)鍣ㄤ腑鐨勬暩(sh霉)鎿�(j霉)銆傛瘡绉诲嚭涓€鍊�(g猫)瀛楃瘈(ji茅)鍦板潃鑷嫊(d貌ng)澧炲姞鑷充笅涓€鍊�(g猫)鏇撮珮鐨勫湴鍧€锛屽湪閬�(d谩)鍒版渶楂樺湴鍧€鏅�(sh铆)锛屽湴鍧€瑷�(j矛)鏁�(sh霉)鍣ㄨ繑鍥炲埌鍦板潃$0000锛屽厑瑷辫畝鍛ㄦ湡鐒�(w煤)闄愭湡鍦扮辜绾�(x霉)銆傚皣/CS鎷夐珮鍙祩姝㈣畝鎿嶄綔銆傚弮瑕�(ji脿n)璁€EEPROM闄e垪鏅�(sh铆)搴忓湒2銆�
[align=center]

鍦�2 璁€EEPROM闄e垪鏅�(sh铆)搴忓湒[/align]
銆€銆€浠ヤ笅鏄畝X5168瀛愮▼搴�锛屽叾涓璕A_ADDR鐐哄瓨鍎�(ch菙)璁€鍑烘暩(sh霉)鎿�(j霉)鐨勬暩(sh霉)绲勭殑棣栧湴鍧€锛孍EP_ADDR鐐鸿璁€鍙栨暩(sh霉)鎿�(j霉)鍦‥EPROM闄e垪涓殑鍦板潃锛孨鐐鸿璁€鍙栨暩(sh霉)鎿�(j霉)鐨勫€�(g猫)鏁�(sh霉)
銆€銆€void READ_X5168锛坲nsigned int 锛� RA_ADDR, unsigned int EEP_ADDR, unsigned int N锛�
銆€?銆�?unsigned int I,readspibuf1,readspibuf2;
銆€?銆傜寗PIPC1&=0xBF; /锛婄疆浣嶴PISTE寮曡叧锛屽緸鑰岄伕閫歑5168锛�/
銆€?銆傜寗PIDAT=READ; /锛婄櫦(f膩)閫乆5168鐨勫(xi臎)鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ懡浠ゅ瓧锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€?銆傜寗PIDAT=EEP_ADDR>>8; /锛婄櫦(f膩)閫佸湴鍧€楂樺叓浣嶏紛/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€?銆傜寗PIDAT=EEP_ADDR; /锛婄櫦(f膩)閫佸湴鍧€浣庡叓浣嶏紛/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€for 锛圛=0;I
銆€銆€锝� 锛奡PIDAT=0; /锛婄櫦(f膩)閫佸伣鏁�(sh霉)鎿�(j霉)锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI璁€/瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf1=锛奡PIBUF; /锛婅畝鍙栭珮浣嶅瓧绡€(ji茅)锛�/
銆€銆€readspibuf1=readspibuf1<<8;
銆€?銆傜寗PIDAT=0; /锛婄櫦(f膩)閫佸伣鏁�(sh霉)鎿�(j霉)锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI璁€/瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf2=锛奡PIBUF; /锛婅畝鍙栦綆浣嶅瓧绡€(ji茅)锛�/
銆€?銆傤€傗墽A_ADDR+I锛�=readspibuf1+readspibuf2;
銆€?銆�?
銆€?銆傜寗PIPC1|=0x40; /锛婄疆楂楽PISTE寮曡叧锛屽緸鑰岀姝5168锛�/
銆€?銆�?
銆€銆€b锛�.璁€鐙€鎱�(t脿i)瀵勫瓨鍣ㄦ檪(sh铆)锛岄鍏堣鎷変綆/CS 绶�锛屼互閬镐腑鍣ㄤ欢锛屾帴钁楃櫦(f膩)閫�8浣嶇殑RDSR鎸囦护锛�00000101B锛�锛屽湪RDSR鎿嶄綔纰肩櫦(f膩)鍑轰互鍚�锛岀媭鎱�(t脿i)瀵勫瓨鍣ㄧ殑鍏�(n猫i)瀹瑰湪SO绶氫笂琚Щ鍑�銆傚弮瑕�(ji脿n)璁€鐙€鎱�(t脿i)瀵勫瓨鍣ㄦ檪(sh铆)搴忓湒3銆�
[align=center]

鍦�3 璁€鐙€鎱�(t脿i)瀵勫瓨鍣ㄦ檪(sh铆)搴忓湒[/align]
銆€銆€浠ヤ笅鏄畝鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ瓙绋嬪簭锛�
銆€銆€unsigned int RSDR_X5168锛坴oid锛�
銆€?銆�?unsigned int readspibuftrue;
銆€銆€锛奡PIPC1&=0xBF; /锛婄疆浣嶴PISTE寮曡叧锛屽緸鑰岄伕閫歑5168锛�/
銆€?銆傜寗PIDAT=RDSR; /锛婄櫦(f膩)閫亁5168鐨勮畝鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ懡浠ゅ瓧锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuftrue=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€锛奡PIDAT=0; /锛婄櫦(f膩)閫佸伣鏁�(sh霉)鎿�(j霉)锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI璁€/瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuftrue=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛岃畝鍙栫媭鎱�(t脿i)瀵勫瓨鍣紛/
銆€銆€return readspibuftrue;
銆€?銆�?
銆€銆€浜屻€佸(xi臎)鎿嶄綔
銆€銆€a锛�.鍦ㄨ│鍦栧悜鍣ㄤ欢瀵�(xi臎)鍏ユ暩(sh霉)鎿�(j霉)鍓嶅繀闋堥鍏堥€氶亷(gu貌)鐧�(f膩)閫乄REN鎸囦护渚�(l谩i)瑷�(sh猫)缃(xi臎)浣胯兘閹栧瓨WEL锛堣(ji脿n)鍦�4锛夈€�/CS 鍏堣鎷変綆锛屾帴钁楀悜鍣ㄤ欢杓稿叆WREN鎸囦护锛�00000110B锛�銆傚湪鎸囦护鐨勬墍鏈夌殑8浣嶅偝閫佸畬鍚庯紝/CS 蹇呴爤琚媺楂�銆傚鏋滅敤鎴跺湪鐧�(f膩)閫佸畬WREN鎸囦护鍚庯紝娌�(m茅i)鏈夊皣/CS 鎷夐珮鑰岀辜绾�(x霉)瀵�(xi臎)鎿嶄綔鍓囪┎瀵�(xi臎)鎿嶄綔灏囪蹇界暐銆�
[align=center]

鍦�4 瀵�(xi臎)浣胯兘鏅�(sh铆)搴忓湒[/align]
銆€銆€涓茶EEPROMX5168瀵�(xi臎)浣胯兘鍛戒护瀛愮▼搴忓涓嬶細
銆€銆€void WREN_X5168锛坴oid锛� /锛婂(xi臎)浣胯兘锛�/
銆€?銆�?锛奡PIPC1&=0xBF; /锛婄疆浣嶴PISTE寮曡叧锛屽緸鑰岄伕閫歑5168锛�/
銆€?銆傜寗PIDAT=WREN; /锛婄櫦(f膩)閫乆5168鐨勫(xi臎)浣胯兘鍛戒护瀛楋紛/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€锛奡PIPC1|=0x40; /锛婄疆楂楽PISTE寮曡叧锛屽緸鑰岀姝5168锛�/
銆€銆€锝�
銆€銆€b锛�.鐐轰簡鍚慐EPROM瀛樺劜(ch菙)鍣ㄩ櫍鍒楀(xi臎)鍏ユ暩(sh霉)鎿�(j霉)鐢ㄦ埗鎺ヨ憲鐧�(f膩)閫佸(xi臎)WRITE 鎸囦护锛�00000010B锛�锛岃窡钁楁槸16浣嶅湴鍧€鍜岃瀵�(xi臎)鍏ョ殑鏁�(sh霉)鎿�(j霉)銆備换浣曚笉鐢ㄧ殑鍦板潃浣嶉兘琚寚浠ょ偤鈥�0鈥濓紝瀵�(xi臎)鎿嶄綔鏈€灏戣鐢�32鍊�(g猫)鏅�(sh铆)閻�锛�/CS 蹇呴爤鐐轰綆骞跺湪瑭叉搷浣滄湡闁撲竴鐩翠繚鎸佺偤浣�銆傚鏋滃湴鍧€瑷�(j矛)鏁�(sh霉)鍣ㄩ仈(d谩)鍒颁竴闋�(y猫)鐨勬湯绔€屾檪(sh铆)閻橀倓鍦ㄧ辜绾�(x霉)锛屾檪(sh铆)瑷�(j矛)鏁�(sh霉)鍣ㄥ皣杩斿洖鑷宠┎闋�(y猫)鐨勯鍦板潃锛屽苟瑕嗚搵浠讳綍涔嬪墠宸插(xi臎)鍏ョ殑鏁�(sh霉)鎿�(j霉)銆傚皪(du矛)浜庡皣瀹屾垚鐨勯爜(y猫)闈㈠(xi臎)鎿嶄綔锛堝瓧绡€(ji茅)鎴栭爜(y猫)闈㈠(xi臎)锛夎€岃█锛屽湪瀵�(xi臎)鍏ョ殑鏈€鍚庝竴鍊�(g猫)鏁�(sh霉)鎿�(j霉)鐨勪綅0琚悓鏅�(sh铆)杓稿叆鍚�锛�/CS鍙兘琚媺楂�銆傚鏋滃畠鍦ㄥ叾瀹冧换浣曟檪(sh铆)鍊欒鎷夐珮鍓囦笉鑳藉畬鎴愬(xi臎)鎿嶄綔锛堣(ji脿n)鍦�5锛�銆�
[align=center]

鍦�5 瀵�(xi臎)EEPROM闄e垪鏅�(sh铆)搴忓湒[/align]
銆€銆€浠ヤ笅鏄(xi臎)EEPROM闄e垪瀛愮▼搴�锛孯A_ADDR鐐哄瓨鍎�(ch菙)瑕佸(xi臎)鏁�(sh霉)鎿�(j霉)鏁�(sh霉)绲勭殑棣栧湴鍧€锛孍EP_ADDR鐐鸿瀵�(xi臎)鍏ョ殑EEPROM棣栧湴鍧€锛孨瑕佸瓨鍎�(ch菙)鏁�(sh霉)鎿�(j霉)鐨勫€�(g猫)鏁�(sh霉)銆�
銆€銆€void WRITE_X5168锛坲nsigned int 锛� RA_ADDR, unsigned int EEP_ADDR, unsigned int N锛�
銆€?銆�?unsigned int I;
銆€銆€WREN_X5168锛堬級; /锛婂(xi臎)浣胯兘锛�/
銆€銆€锛奡PIPC1&=0xBF; /锛婄疆浣嶴PISTE寮曡叧锛屽緸鑰岄伕閫歑5168锛�/
銆€?銆傜寗PIDAT=WRITE; /锛婄櫦(f膩)閫亁5168鐨勫(xi臎)鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ懡浠ゅ瓧锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€锛奡PIDAT=EEP_ADDR>>8; /锛婂厛鐧�(f膩)閫侀珮浣嶅湴鍧€鍦ㄧ櫦(f膩)閫佷綆浣嶅湴鍧€锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€锛奡PIDAT=EEP_ADDR; /锛婂厛鐧�(f膩)閫侀珮浣嶅湴鍧€鍦ㄧ櫦(f膩)閫佷綆浣嶅湴鍧€锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€for 锛圛=0;I
銆€?銆�?锛奡PIDAT =锛婏紙RA_ADDR+I锛�>>8 ; /锛婄櫦(f膩)閫佹暩(sh霉)鎿�(j霉)鐢ㄦ暩(sh霉)绲勫偝閫�,鍌抽€佹暩(sh霉)鎿�(j霉)楂樺叓浣嶏紛/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€銆€锛奡PIDAT =锛婏紙RA_ADDR+I锛� ; /锛婄櫦(f膩)閫佹暩(sh霉)鎿�(j霉)鐢ㄦ暩(sh霉)绲勫偝閫�,鍌抽€佹暩(sh霉)鎿�(j霉)绗叓浣嶏紛/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€?銆�?
銆€?銆傜寗PIPC1|=0x40; /锛婄疆楂楽PISTE寮曡叧锛屽緸鑰岀姝5168锛�/
銆€?銆�?
銆€銆€c锛�.鐐哄悜鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ(xi臎)鏁�(sh霉)鎿�(j霉)锛屽湪WRSR鎸囦护锛�00000001B锛変箣鍚庢噳(y墨ng)璺熼毃琚(xi臎)鍏ョ殑鏁�(sh霉)鎿�(j霉)锛堣(ji脿n)鍦�6锛�,鏁�(sh霉)鎿�(j霉)浣�0鍜屼綅1蹇呴爤鐐衡€�0鈥�銆�
[align=center]

鍦�6 瀵�(xi臎)鐙€鎱�(t脿i)瀵勫瓨鍣ㄦ檪(sh铆)搴忓湒[/align]
銆€銆€浠ヤ笅鏄(xi臎)鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ瓙绋嬪簭锛�
銆€銆€void WRSR_X5168锛坲nsigned int COM锛� /锛婂(xi臎)鐙€鎱�(t脿i)锛�/
銆€?銆�?WREN_X5168锛堬級; /锛婂(xi臎)浣胯兘锛�/
銆€銆€锛奡PIPC1&=0xBF; /锛婄疆浣嶴PISTE寮曡叧锛屽緸鑰岄伕閫歑5168锛�/
銆€銆€锛奡PIDAT=WRSR; /锛婄櫦(f膩)閫乆5168鐨勫(xi臎)鐙€鎱�(t脿i)瀵勫瓨鍣ㄥ懡浠ゅ瓧锛�/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPIBUF瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€?銆傜寗PIDAT=COM; /锛奡TATUS_REG鐧�(f膩)閫佺媭鎱�(t脿i)瀛楋紛/
銆€銆€while锛堬紙锛奡PISTS&0x40锛�!=0x40锛夛經锝� /锛婄瓑寰匰PI瀵�(xi臎)绲�(ji茅)鏉燂紛/
銆€銆€readspibuf=锛奡PIBUF; /锛婅畝SPISTS瀵勫瓨鍣�锛屾竻闄PI INT FLAG 浣嶏紛/
銆€?銆傜寗PIPC1|=0x40; /锛婄疆楂楽PISTE寮曡叧锛屽緸鑰岀姝5168锛�/
銆€銆€TIMEDEL锛�5锛�; /锛婂欢鏅�(sh铆)1us锛�/
銆€銆€锝�
銆€銆€浠ヤ笂瀛愮▼搴�?q奴)宕縁(xi脿n)浜咲SP灏�(du矛)X5168鐨勮畝瀵�(xi臎)鍔熻兘锛屽湪涓荤▼搴忎腑瑾�(di脿o)鐢ㄩ€欎簺瀛愮▼搴忓氨鍙(sh铆)鐝�(xi脿n)灏�(du矛)X5168鐨勬搷浣�銆�
5 绲�(ji茅)鏉熻獮(y菙)
銆€銆€鐢变簬绡囧箙鐨勫師鍥�锛屾湰鏂囨矑(m茅i)鏈夐亷(gu貌)澶氱殑璎涜堪DSP鐨勪覆琛屽瑷�(sh猫)鎺ュ彛鍜孹5168鐨勫悇闋�(xi脿ng)鐗规€э紝閫欎簺瑾�(shu艒)鏄庢浉(sh奴)涓婇兘鏈夋晿杩颁笖寰堝叿楂�銆傝€屾槸鎶婇噸榛�(di菐n)鏀惧湪浜嗚瑳杩癉SP鎿�(ku貌)灞旹EPROM鎳�(y墨ng)鐢ㄧ殑杌熺‖浠惰ō(sh猫)瑷�(j矛)锛岃┎瑷�(sh猫)瑷�(j矛)宸叉垚鍔熸噳(y墨ng)鐢ㄥ湪绛嗚€呴枊(k膩i)鐧�(f膩)鐨勮畩闋诲櫒涓紝缍�(j墨ng)閬�(gu貌)鍙嶅京(f霉)娓�(c猫)瑭�锛岄亱(y霉n)琛屽彲闈�銆�
鍙冭€冩枃鐛�(xi脿n)
銆€銆€[1] X5168/X5169 CPU Supervisor with 16Kb SPI EEPROM data sheet
銆€銆€[2] 闊撳畨澶� DSP鎺у埗鍣ㄥ師鐞嗗強鍏跺湪浜庡嫊(d貌ng)鎺у埗绯荤当(t菕ng)涓殑鎳�(y墨ng)鐢� 娓呰彲澶у(xu茅)鍑虹増绀� 2003
銆€銆€[3] 澶忔郡 TMS320F240鍨婦SP鐨凷PI鍙g殑鎿�(ku貌)灞� 闆诲瓙鎶€琛�(sh霉)鎳�(y墨ng)鐢� 2003 NO.3 锛�47-50锛�