帖子01
今天我開始研究PFC154(工業級8-bitMTPIO類型單片機),令我驚訝的是,在分析了READ和WRITE后,我發現:
PFC154程序字=14位,但使用19位進行讀/寫。
每個程序字的開頭都附加了5個額外的位。一些額外的位通常用于糾錯,讓我們看看……
邏輯分析儀讀數的一些樣本:14位數據=>5個額外的位:
3FFF=>1F
0070=>08
2F00=>0E
0182=>04
第一次嘗試:
輸入上面的二進制14位值后,網站將顯示附加在雙字符串末尾的結果。
=>全部匹配!這是使用標準syndrom的經典HammingECC:)
這有點出乎意料,但看起來“工業級部件”確實有一些額外的功能。
不錯的發現,謝謝分享。
帖子02
我認為更傳統的大型MCU,例如STM32,也為閃存提供了ECC保護。但我認為他們的閃存適用于更大的字,它總是并行訪問64位左右。因此,他們為這樣的字而不是每個單個命令實現了ECC。但考慮到PDK的設計更簡單,我認為為每個命令添加一些額外的位是一種合理的方法。
想象一下,當我將PFS154放入ZIF插槽并在運行探測命令后看到以下輸出時,我有多開心!:
代碼:[選擇]
>easypdkprog-v探測
探測IC...找到。
TYPE:FLASHRSP:0xAA1VPP=4.50VDD=2.00
IC支持:PFS154ICID:0xAA1
然后,我上傳了預編譯的helloworld示例:
代碼:[選擇]
>easypdkprog-nPFS154writeExamples\helloworld_pfs154.ihx
正在擦除IC...完成。
寫入IC...完成。
正在校準IC
*IHRCSYSCLK=8000000Hz@4.00V...校準結果:7951482Hz(0x84)完成。
然后啟動它:
代碼:[選擇]
>easypdkprog-nPFS154-r4.0start
正在運行IC(4.00V)...IC已啟動,按[Esc]停止。
HelloWorld!
HelloWorld!
IC停止
帖子03
下面是一些其他圖片。
我清理了板對板連接,并移除了IC插座懸垂部分上未使用的引腳。我有點喜歡保留懸垂部分,因為它可以保護zif適配器原本暴露的引腳。
是的,正如預期的那樣,它也可以與SOIC-8測試夾配合使用。
它們還沒有發貨,但我仍然希望在本周末之前拿到我的開發板,這應該會讓這一切變得更干凈一些。
我還測試并驗證了PMS150C和PMS152的探測是否正確。
帖子04
在PDK14SDCC中使用位域->錯誤
structPORT_bits
{
uint8_tp0:1;
uint8_tp1:1;
uint8_tp2:1;
uint8_tp3:1;
uint8_tp4:1;
uint8_tp5:1;
uint8_tp6:1;
uint8_tp7:1;
};//__attribute__((__packed__));
#defineBF_PA(*(volatilestructPORT_bits*)&PA)
voidmain(void)
{
PAC|=_BV(LEDPIN);//此語法將推斷set0/set1
for(;;){
BF_PA.p0=1;
//PA^=_BV(LEDPIN);//切換LED
delay_ms(500);
BF_PA.p0=0;
delay_ms(500);
}
}
SDCC版本:
代碼:[選擇]
SDCC:gbz80/tlcs90/z80n/pic14/ds400/pdk13/pdk14/pdk154.0.2#11683(Linux)
以下是發出的內容:
代碼:[選擇]
260;bitfields.c:55:BF_PA.p0=1;
000040012F261mova,#0x01
a000042262or_pa+0,a
...
00004CFE2F270mova,#0xfe
a00004E271and_pa+0,a
“ANDio,a”和“ORio,a”不幸不存在。因此匯編器無法匯編此代碼。這需要用set0/set1替換。
編輯:
一旦這在SDCC中起作用,它將成為一種非常有用的方法來增強端口定義,因為可以使用直接分配來設置單個位,例如“PA7=1”,這直接等同于機器指令,而不是亂用位掩碼。我一直在AVR上使用AVR-GCC,效果非常好。AVR-GCC會從中生成非常高效的代碼。
帖子05
當然,我們什么也不用做。;) 如果有更好的代碼可用,該代碼很容易更改。
如果您不喜歡這樣,請不要查看我剛剛推送的一些最新更新。>:D
在幕后,“setPinOutput(PIN_LED2)”只是調用一個宏,最終執行“PAC |= (1<<4)”。該宏使其更清晰/更易于閱讀,并且只需更改文件頂部的一個 #define(或從命令行或 Makefile 傳遞覆蓋)即可更輕松地交換引腳。
在所有不喜歡 Arduino 的事情中,清潔/可讀性真的是其中之一嗎?Arduino 如此受歡迎是有原因的。如果我們想要更多的采用,我們需要全面降低進入門檻,而擁有看起來更類似于許多人已經知道的代碼環境可能會有所幫助。我甚至可能將我的 repo 名稱更改為 Pdkuino,并嘗試滿足更多受眾的需求。
深圳逐高電子開發部整理編輯,希望對大家有幫助,如果有開發應廣單片機過程中需要幫助的,請聯系我們
深圳市逐高電子有限公司
電 話:
0755-88364040
0755-88364080
0755-83222294
手 機:13926521299
Q Q: 2853516666
Email:sales11@zicoic.com
地 址:深圳市福田區深南中路2070號電子科技大廈D座(智方舟)5樓506-507