利用射頻芯片nRF9E5設(shè)計(jì)無(wú)線溫濕度測(cè)量電路
EEPROM編程
nRF9E5 的主程序存放在外部的串行EEPROM中,當(dāng)芯片開始上電時(shí),其內(nèi)部固化的廠家引導(dǎo)程序通過SPI接口,將外部EEPROM中的主程序?qū)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/nRF9E5">nRF9E5的 RAM中(4K字節(jié)空間,沒有被主程序占用的可作為片內(nèi)RAM使用),接著執(zhí)行跳轉(zhuǎn)指令,開始主程序的運(yùn)行。主程序需要按照表2所示的規(guī)則寫入 EEPROM中,其中SPEED(bit3)為EEPROM的最大讀寫速度,0為1MHz,1為0.5MHz。XO_FREQ(bit2,1,0)為 nRF9E5的外接晶振的頻率,000=4MHz,001=8MHz,010=12MHz,011=16MHz,100=20MHz。
圖4:上位機(jī)的EEPROM讀寫原理框圖。
nRF9E5內(nèi)置8051兼容微控器,加上其本身特有的諸多控制寄存器,因此可以用MCS51系列仿真軟件進(jìn)行編程,最后將程序?qū)懭隕EPROM中調(diào)試即可。
采用WAVE6000(偉福)仿真軟件編寫無(wú)線射頻通訊、數(shù)據(jù)采集和數(shù)據(jù)轉(zhuǎn)換程序,編譯形成后綴為HEX的數(shù)據(jù)文件“XXXXXXXX.HEX”,該數(shù)據(jù)文件為文本格式:每行的第1個(gè)字符固定為“:”,表示一行的開始;第2、3個(gè)字符為本行中的指令數(shù)據(jù)個(gè)數(shù)M(16進(jìn)制),M最大為20H,表示該行共M個(gè)雙字節(jié)數(shù)據(jù),2M個(gè)字符,第4、5、6、7個(gè)字符為該行的地址,第8、9個(gè)字符為“00”或“01”,其余為依次排列的2M個(gè)指令數(shù)據(jù)字符,最后2個(gè)為驗(yàn)證字符位。HEX文件的結(jié)束為 “:00000001FF"。
采用高級(jí)編程語(yǔ)言Delphi 6.0在Windows2000環(huán)境下打開該數(shù)據(jù)文件,依次讀出每一行數(shù)據(jù),去掉每行的前9個(gè)字符和每一行的最后兩個(gè)字符,其余的就是用戶的主程序文件,將主程序文件前添加上表2中的程序頭,就構(gòu)成了nRF9E5的外部EEPROM的程序格式。如圖4所示,通過RS232通訊、AT89C2052寫入到 EEPROM芯片25320中即可。
評(píng)論