AT89S5X 脫機(jī)下載器制作
最近因工作需要,準(zhǔn)備自已做一個AT89S5X的脫機(jī)下載器,初步考慮是用AT89S52做主機(jī),將目標(biāo)代碼通過串口寫入到AT24C64中(AT24C64有8K空間,剛好夠52用)。到現(xiàn)場后再通過主機(jī)將EEPROM中的代碼能過模擬ISP時(shí)序?qū)懭氲侥繕?biāo)單片機(jī)上,實(shí)現(xiàn)脫機(jī)下載。
在畫原理圖前,打算先將S5X的ISP時(shí)序搞清楚,剛開始啃英文文檔時(shí),內(nèi)牛滿面啊。。。那啥,把高位發(fā)送看成了低位發(fā)選。。。整整搞了兩天都沒發(fā)覺。。因?yàn)锳T的文檔中關(guān)于ISP說的不清不楚的(至少在我看來是這樣的),后來上網(wǎng)搜了USBASP的源程序,參考了里面的關(guān)于S5X的ISP時(shí)序,才終于明白過來。。。下面是關(guān)于S5X的ISP時(shí)序編程中一些要點(diǎn):
1:關(guān)于復(fù)位時(shí)序
RST = 1;
SCK = 0;
DELAY(1);
RST = 0; //這里要注意,有一個拉低過程
DELAY(1);
RST = 1;
DELAY(1);
2:連機(jī)檢測,判斷是否進(jìn)入到ISP編程模式
ISP_WR(0XAC);
ISP_WR(0X53);
ISP_WR(0X00);
TempData[3]=ISP_WR(0X00); //第四個字節(jié)邊寫邊讀出數(shù)據(jù)如果是0X69,則說明進(jìn)入
到了ISP模式
3:關(guān)于讀識別字,在沒有測試擦除(Erase)命令前,剛讀出來的數(shù)據(jù)是正常的(1E 52 06),后來在測試擦除命令時(shí),懷疑
擦除延時(shí)時(shí)間太短,杯具了。。。讀出來的值一直是1F 7F 1F。。。
ISP_WR(0X28);
ISP_WR(0X00);
ISP_WR(0X00);
TempData[0] = ISP_WR(0X00); //1E
ISP_WR(0X28);
ISP_WR(0X01);
ISP_WR(0X00);
TempData[1] = ISP_WR(0X00); //52
ISP_WR(0X28);
ISP_WR(0X02);
ISP_WR(0X00);
TempData[2] = ISP_WR(0X00); //06
4:關(guān)于擦除(Erase)命令,網(wǎng)絡(luò)上搜到的延時(shí)是500MS左右,具體的我還沒測試,等整個程序功能都完善了再測試確定各個延
時(shí)參數(shù)。
5:關(guān)于ISP各個引腳連接:
MOSI:主機(jī)出 從機(jī)入
MISO:主機(jī)入 從機(jī)出
SCK/RST:這個應(yīng)該就不用說了
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論