STC12C系列的協(xié)議分析
我正在想,那么C級(jí)別的單片機(jī)是不是xx 43呢~
以下數(shù)據(jù)幀省略幀頭幀尾幀長(zhǎng)度校驗(yàn)碼
——————–核對(duì)MCU型號(hào)幀————————-
發(fā)送數(shù)據(jù) 50 07 00 36 01 MCU型號(hào)
接收數(shù)據(jù) 8F
——————-波特率實(shí)驗(yàn)幀—————————–
發(fā)送數(shù)據(jù) 8F xx yy zz aa dd 83
xx=0xC0 (C0=1100 0000,意思就是T1x12,波特率加倍)
yy=定時(shí)器重載值,按照加倍/1T計(jì)算。
zz=設(shè)置校驗(yàn)值,計(jì)算方式是 ff=xx
aa=波特率校驗(yàn)值,計(jì)算方式是aa=2 * (0×100 -yy)
dd=延時(shí)值,延時(shí)多少時(shí)間片切換
83為ISP定時(shí)常數(shù),這個(gè)值適用于12M晶振,在STC手冊(cè)中有不明顯的描述:
1 | //#define ENABLE_IAP 0x80//if SYSCLK<30MHz |
2 | //#define ENABLE_IAP 0x81//if SYSCLK<24MHz |
3 | //#define ENABLE_IAP 0x82//if SYSCLK<20MHz |
4 | //#define ENABLE_IAP 0x83//if SYSCLK<12MHz |
5 | //#define ENABLE_IAP 0x84//if SYSCLK<6MHz |
6 | //#define ENABLE_IAP 0x85//if SYSCLK<3MHz |
7 | //#define ENABLE_IAP 0x86//if SYSCLK<2MHz |
8 | //#define ENABLE_IAP 0x87//if SYSCLK<1MHz |
但是實(shí)際上測(cè)試似乎83這個(gè)值在40M都沒(méi)有問(wèn)題。
接受數(shù)據(jù):
8F xx yy zz aa dd 83
—————————–波特率確認(rèn)幀
發(fā)送數(shù)據(jù) 8E xx yy zz dd 83
接收數(shù)據(jù) 同上
——————————擦除幀:
這里我有充分的理由懷疑老妖是有毛病的。都到了下載程序的地步了還搞這么詭異的擦除命令:
1 | 84FF00F00000F00000000000000000000000 |
2 | 00807F 7E 7D 7C 7B 7A797877767574737271706F 6E 6D 6C 6B |
3 | 6A696867666564636261605F 5E 5D 5C 5B 5A595857565554 |
4 | 535251504F 4E 4D 4C |
5 | 4B 4A494847464544434241403F 3E 3D 3C 3B 3A3938373635 |
6 | 34333231302F 2E 2D 2C 2B 2A292827262524232221201F 1E |
7 | 1D 1C 1B 1A191817161514131211100F 0E |
回應(yīng):
00 00
———————數(shù)據(jù)幀
發(fā)送 00 00 00 ADDR 00 LEN EF 0×80 bytes數(shù)據(jù)
ADDR = 2BYTE 的地址,高位在前低位在后
LEN 似乎是數(shù)據(jù)長(zhǎng)度
數(shù)據(jù)字段如果不足80 bytes填ff補(bǔ)足
回應(yīng) 07 ChkSum
ChkSum的算法和前面介紹的一樣,只不過(guò)只是針對(duì)數(shù)據(jù)部分的校驗(yàn)
——————設(shè)置型號(hào)幀:
69 07 00 36 01 MCU_MODEL
MCU_MODEL是MCU型號(hào)
回應(yīng)就一個(gè)字 8D
——————-設(shè)置選項(xiàng)幀
發(fā)送:8D FF x1 x2 FF FF FF FF FF x3 FF FF FF FF FF FF 00 A9 0A A6
x1,x2,x3參見(jiàn)前面的選項(xiàng)信息
接受:50 FF x1 x2 FF x3 03 FF 固件版本 FF x1 x2 FF x3 FF 00 A9 00 03 00 9A 04 79 1A 00 AD FF 00 62
——————RESET幀
發(fā)送:82 00 00
沒(méi)有回應(yīng)。
具體實(shí)現(xiàn)可以看kSTC12-ISP的實(shí)現(xiàn)方式
評(píng)論