《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 在PSoC上實(shí)現(xiàn)I2C Bootloader
在PSoC上實(shí)現(xiàn)I2C Bootloader
摘要: PSoC是賽普拉斯半導(dǎo)體生產(chǎn)的一種基于MCU的可編程片上系統(tǒng),它集成了大量的可重新配置的數(shù)字/模擬模塊來(lái)完成用戶(hù)訂制的數(shù)字/模擬功能。
關(guān)鍵詞: PSoC I2C Bootloader
Abstract:
Key words :

  I2C ISSP方式

  PSoC是賽普拉斯半導(dǎo)體生產(chǎn)的一種基于MCU的可編程片上系統(tǒng),它集成了大量的可重新配置的數(shù)字/模擬模塊來(lái)完成用戶(hù)訂制的數(shù)字/模擬功能。

圖1ISSP編程流程圖


  PSoC器件可以基于I2C協(xié)議實(shí)現(xiàn)在系統(tǒng)中串行編程(ISSP),Power-On模式下通過(guò)SDA/SCL和VDD/GND就能夠編程整個(gè)代碼空間,Reset模式下則是使用SDA/SCL和XRES/GND編程。在很多PSoC CapSense觸摸按鍵應(yīng)用中,如果改變了機(jī)械布局因而需要重新定義按鍵引腳,或者需要賦予新的按鍵觸發(fā)行為,主機(jī)端通過(guò)集成ISSP協(xié)議,可以在需要的時(shí)候下載新的.hex代碼到PSoC端,實(shí)現(xiàn)代碼的現(xiàn)場(chǎng)快速升級(jí)。

圖2<a class=Bootloader存儲(chǔ)方式框圖" border="0" height="552" hspace="0" src="http://files.chinaaet.com/images/20100816/5f4d30b1-283b-4cf3-95d1-6b91e47570aa.jpg" width="366" />


  圖1是ISSP編程流程圖,首先使PSoC進(jìn)入編程模式,校驗(yàn)其內(nèi)部的Solicon ID,保證是對(duì)正確的PSoC編程,對(duì)PSoC內(nèi)部的Flash塊(64字節(jié))逐一擦除/編程,并讀出Flash內(nèi)容進(jìn)行比較;ISSP隨后編程用戶(hù)自定義的Flash塊保護(hù)模式,每個(gè)Flash塊可以被指定為W - 寫(xiě)保護(hù) / R - 讀保護(hù) / U - 不保護(hù) / F - 工廠(chǎng)更新;最后,每個(gè)Flash塊的校驗(yàn)和被讀出并計(jì)算出全部Flash空間的總校驗(yàn)和,如果與.hex文件中的總校驗(yàn)和一致,代碼已經(jīng)被成功升級(jí)。

  I2C Bootloader方式

  用戶(hù)也可以使用標(biāo)準(zhǔn)的I2C系統(tǒng)接口,通過(guò)I2C Bootloader(I2C引導(dǎo)加載器)方式更新PSoC器件內(nèi)的用戶(hù)代碼。從圖2可以看出,整個(gè)Flash空間由紅色的不可編程的Bootloader區(qū)(包括中斷向量、重啟動(dòng)向量和Bootloader代碼),灰色的可以現(xiàn)場(chǎng)編程的用戶(hù)應(yīng)用程序區(qū)(包括應(yīng)用程序中斷向量、Relocatable起始地址、用戶(hù)代碼和Bootloader API),以及黃色的Bootloader校驗(yàn)和區(qū)組成。PSoC復(fù)位時(shí),Bootloader接管程序控制權(quán),它會(huì)計(jì)算和校驗(yàn)用戶(hù)代碼的校驗(yàn)和,僅當(dāng)匹配時(shí)才轉(zhuǎn)到用戶(hù)代碼的首地址,開(kāi)始運(yùn)行用戶(hù)代碼。與ISSP方式不同,I2C Bootloader方式僅更新可以現(xiàn)場(chǎng)編程的用戶(hù)代碼區(qū),F(xiàn)lash空間的其他區(qū)用于此方式的控制和校驗(yàn)。

圖3I2C Bootloader方式頭部下載數(shù)據(jù)


  I2C Bootloader方式在數(shù)據(jù)傳輸時(shí)分三種命令格式,F(xiàn)F38是進(jìn)入Bootloader命令,F(xiàn)F39是寫(xiě)Flash塊命令,F(xiàn)F3B是退出Bootloader命令。圖3是I2C Bootloader方式傳輸?shù)念^部下載數(shù)據(jù),圖4則是成功下載的最后數(shù)據(jù)。

圖4I2C Bootloader方式成功下載的最后數(shù)據(jù)


  Bootloader方式工作時(shí),需要更新的PSoC器件做為一個(gè)I2C Slave。圖3中,第一行數(shù)據(jù)傳輸將進(jìn)入Bootloader方式,它由0x70 - Slave 7bit地址0x38的寫(xiě)地址,需要忽略的兩個(gè)前綴字節(jié)380a (Slave 7bit地址和后續(xù)字節(jié)長(zhǎng)度),F(xiàn)F38命令和8個(gè)字節(jié)的Bootloader key組成。所有的Bootloader命令都必須包含正確的Bootloader key,否則將被Slave器件忽略。第二行由71 - Slave 7bit地址0x38的讀地址和狀態(tài)響應(yīng)字節(jié)0x20組成,狀態(tài)響應(yīng)字節(jié)的其他值標(biāo)識(shí)各種出錯(cuò)狀態(tài) - 02/Image verify error, 04/Flash checksum error, 08/Flash protection error, 10/Comm checksum error, 40/Invalid bootloader key, 80/Invalid command error.

圖5BootLdrI2C用戶(hù)模塊參數(shù)設(shè)置


  寫(xiě)Flash塊命令傳輸了絕大部分?jǐn)?shù)據(jù)量,除了最后一個(gè)塊以外,其他都有相同的格式。圖3中,寫(xiě)Flash塊命令包含0x70, 需要忽略的兩個(gè)前綴字節(jié)3810 (Slave 7bit地址和后續(xù)字節(jié)長(zhǎng)度),F(xiàn)F39命令, Bootloader key,F(xiàn)lash塊的塊號(hào),64字節(jié)數(shù)據(jù),0x18 - 64字節(jié)數(shù)據(jù)的校驗(yàn)和,0x86 - 此傳輸78字節(jié)的校驗(yàn)和(包括FF, 39, Bootloader key, 塊號(hào), 64字節(jié)數(shù)據(jù), 0x18)。僅在以上數(shù)據(jù)傳輸完后需要傳輸讀地址0x71,并讀出正確的狀態(tài)響應(yīng)字節(jié)0x20.

圖6BootLdrI2C用戶(hù)模塊提供的BootLoaderTools


  寫(xiě)Flash最后塊命令包含了一些特殊信息,參見(jiàn)圖4,(0d, d4) 是隨后直到(85, f4)的字節(jié)校驗(yàn)和,(08,80)是圖2灰色用戶(hù)代碼區(qū)中可重定位中斷矢量表的地址,(12,00)是圖2灰色用戶(hù)代碼區(qū)中用戶(hù)代碼空間的開(kāi)始地址,(3f,80)則是用戶(hù)代碼結(jié)束塊的地址,(00,b7)是用戶(hù)代碼占用的塊數(shù)量,(85,f4)是Bootloader計(jì)算的用戶(hù)代碼檢驗(yàn)和,0xb5是以上64字節(jié)數(shù)據(jù)的檢驗(yàn)和,0xbd是此傳輸78字節(jié)的校驗(yàn)和。

  通過(guò)PSoC Designer的用戶(hù)模塊實(shí)現(xiàn)I2C Bootloader方式   

       PSoC Designer是功能全面的基于圖形用戶(hù)接口(GUI)的PSoC軟件開(kāi)發(fā)環(huán)境,它的用戶(hù)模塊可通過(guò)配置PSoC器件內(nèi)部資源創(chuàng)建Timer、PWM、ADC/DAC,I2C等多種有用功能。一個(gè)用戶(hù)模塊包括硬件配置數(shù)據(jù)、啟動(dòng)代碼、中斷服務(wù)例程(可選)以及應(yīng)用編程接口(API),這些API可對(duì)用戶(hù)模塊的各個(gè)方面進(jìn)行即時(shí)控制。用戶(hù)使用PSoC Designer中的BootLdrI2C用戶(hù)模塊可以很方便的實(shí)現(xiàn)啟動(dòng)時(shí)的引導(dǎo)載入(Bootloader)。

  用戶(hù)先在項(xiàng)目中添加BootLdrI2C用戶(hù)模塊,然后選擇“I2C for Bootloader Only”或“Full I2C API Support with Bootloader”;之后設(shè)置圖五中的用戶(hù)模塊參數(shù),這些參數(shù)定義了I2C的引腳和通信速率,Bootloader的I2C地址,用于其他I2C操作的地址,以及圖2中各個(gè)存儲(chǔ)區(qū)的參數(shù)。用戶(hù)隨后可以通過(guò)圖6提供的“Boot Loader Tools”設(shè)置中斷向量和重啟動(dòng)向量,編譯項(xiàng)目后生成應(yīng)用程序校驗(yàn)和,以及從hex 項(xiàng)目輸出文件中生成一個(gè)可以升級(jí)PSoC器件的dld 下載文件。
 

 

  其它需要設(shè)置的包括在菜單Project -> Settings -> Linker中,設(shè)置Relocatable起始地址,在flashsecurity.txt中指定Flash塊的訪(fǎng)問(wèn)屬性——可以現(xiàn)場(chǎng)編程的區(qū)域需要設(shè)置為可寫(xiě)操作。

  在PSoC器件上加入I2C Bootloader功能后,我們還可以通過(guò)Cypress提供的I2C-USB Bridge工具通過(guò)PC下載更新代碼到PSoC器件來(lái)驗(yàn)證以上設(shè)計(jì)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲天堂成人在线视频| 另类酷文…触手系列精品集v1小说| 亚洲在线免费观看| 亚洲欧洲一区二区三区在线观看| 国产一区二区三区久久精品| 国产精品久久久久影院色老大 | 国产精品亚洲综合久久| 欧美三日本三级三级在线播放| 欧美福利在线| 蜜乳av另类精品一区二区| 久久精品91久久久久久再现| 性8sex亚洲区入口| 性欧美xxxx大乳国产app| 亚洲免费在线观看视频| 亚洲一区二区在| 亚洲一级黄色片| 这里只有精品电影| 亚洲无亚洲人成网站77777| 日韩视频亚洲视频| 99精品国产99久久久久久福利| 亚洲美女尤物影院| 99国产精品久久久久久久| 亚洲九九爱视频| 一本久久综合亚洲鲁鲁五月天| 99精品久久久| 亚洲视频碰碰| 午夜激情久久久| 欧美亚洲一区二区在线| 欧美影院一区| 久久人91精品久久久久久不卡| 久久久五月婷婷| 久久综合成人精品亚洲另类欧美| 欧美www视频在线观看| 欧美成人在线影院| 欧美日韩人人澡狠狠躁视频| 欧美午夜电影完整版| 国产精品综合av一区二区国产馆| 国产伦精品一区二区三区四区免费 | 亚洲高清中文字幕| 亚洲国产精品一区二区久| 亚洲老板91色精品久久| 亚洲婷婷在线| 欧美一区二区三区在线视频| 久久亚洲视频| 欧美精品videossex性护士| 欧美三级电影一区| 国产精品综合久久久| 黄色亚洲免费| 亚洲精品久久久久久下一站| 在线亚洲精品福利网址导航| 午夜日韩在线| 亚洲人成在线观看| 亚洲一区二区免费视频| 久久福利影视| 欧美成人嫩草网站| 国产精品久久久一区二区| 国产一区二区三区久久悠悠色av| 亚洲国产美女| 亚洲新中文字幕| 久久精品成人一区二区三区| 99爱精品视频| 久久精品国产视频| 欧美精品xxxxbbbb| 国产热re99久久6国产精品| 亚洲成色777777女色窝| 一区二区欧美精品| 久久国产精品久久国产精品 | 午夜精品福利视频| 欧美xx69| 国产精品永久免费在线| 亚洲激情视频| 午夜一区二区三区在线观看| 亚洲人午夜精品| 亚洲欧美中文日韩v在线观看| 免费不卡欧美自拍视频| 国产精品久久久久9999高清| 在线播放精品| 亚洲制服少妇| 99视频一区二区三区| 久久精品国产精品 | 欧美日韩国产一区二区三区| 国产午夜精品久久久久久久| 亚洲精品在线观看免费| 久久精品国产成人| 午夜精品福利一区二区三区av | 国产精品久久一区二区三区| 亚洲电影网站| 欧美一区二区三区四区在线观看| 夜夜嗨一区二区| 毛片av中文字幕一区二区| 国产精品一区二区a| 亚洲美女色禁图| 亚洲啪啪91| 久久久久久自在自线| 国产精品免费电影| 亚洲精品一二三| 亚洲精品视频免费观看| 久久人人97超碰人人澡爱香蕉| 国产精品高精视频免费| 亚洲人成在线免费观看| 久久精品一区蜜桃臀影院| 欧美亚洲日本一区| 欧美日韩一区在线观看视频| 亚洲电影专区| 亚洲国产精品一区制服丝袜| 久久国产精品99国产精| 国产精品久久久久一区二区三区| 日韩天天综合| 一本大道久久a久久精品综合| 欧美不卡福利| 在线成人中文字幕| 欧美在线综合| 久久久久九九九九| 国产欧美 在线欧美| 亚洲香蕉网站| 亚洲欧美日韩精品在线| 国产精品mv在线观看| 99国产成+人+综合+亚洲欧美| 日韩一区二区电影网| 欧美成人一二三| 在线日本高清免费不卡| 亚洲第一福利在线观看| 久久久国产精品亚洲一区| 国产婷婷97碰碰久久人人蜜臀| 亚洲影视中文字幕| 欧美一区二区三区的| 国产精品综合av一区二区国产馆| 亚洲在线观看| 欧美在线视频一区二区三区| 国产欧美丝祙| 欧美一区二区视频在线| 久久精品一区二区三区不卡牛牛| 国产日韩欧美夫妻视频在线观看| 午夜在线一区| 久久久久久999| 海角社区69精品视频| 亚洲国产另类精品专区| 欧美成在线观看| 亚洲精品国久久99热| 一区二区三区视频在线| 欧美三日本三级三级在线播放| 正在播放欧美视频| 欧美亚洲一区在线| 国内揄拍国内精品少妇国语| 亚洲黄色尤物视频| 欧美国产日韩亚洲一区| 99国产精品99久久久久久| 亚洲欧美日韩精品| 国产亚洲欧美aaaa| 亚洲国产女人aaa毛片在线| 欧美国产日本| av不卡在线| 欧美一级视频| 樱花yy私人影院亚洲| 99re6这里只有精品| 欧美日韩综合网| 性欧美1819sex性高清| 久久综合电影一区| 亚洲九九精品| 性欧美长视频| 伊人久久av导航| 一个色综合av| 国产欧美日韩在线观看| 亚洲国产一区视频| 欧美视频网址| 欧美一区二区三区日韩视频| 欧美国产日韩在线| 亚洲在线播放电影| 免费av成人在线| 亚洲深夜福利网站| 久久视频一区二区| 99国产精品99久久久久久| 久久国内精品视频| 亚洲国产一区二区三区青草影视 | 榴莲视频成人在线观看| 亚洲精品三级| 久久se精品一区二区| 1024国产精品| 香蕉久久一区二区不卡无毒影院 | 伊人成人在线视频| 亚洲一区二区三区高清不卡| 国产专区一区| 亚洲私人影院| 黑人巨大精品欧美黑白配亚洲 | 在线视频观看日韩| 亚洲永久精品大片| 极品av少妇一区二区| 亚洲一区二区三区在线观看视频| 狠狠久久五月精品中文字幕| 一区二区三区视频在线| 国内一区二区在线视频观看| 亚洲香蕉成视频在线观看| 国外成人在线| 亚洲欧美激情一区| 亚洲国产另类久久精品| 久久不射2019中文字幕| 亚洲裸体视频| 麻豆精品网站| 午夜精品一区二区在线观看| 欧美精品一区二区三区很污很色的 |