1. 硬件連接
SWIM接口只需要一根傳輸線,即可完成雙向的傳輸。傳輸過程,都是由主控制端(host)發(fā)起,設(shè)備端然后做出反應(yīng)。host端需要在一個(gè)總線上實(shí)現(xiàn)讀和寫,那就是說必須要同時(shí)接一個(gè)輸出IO和一個(gè)輸入IO(也可以用同一個(gè),開漏的情況下,IO可以同時(shí)讀寫),且輸出IO必須設(shè)計(jì)成開漏,總線上掛接上拉電阻,以便隨時(shí)交出控制權(quán)。硬件連接如下:
上圖SWIM_IN為輸入IO,SWIM為輸出IO。
2. 編碼格式
SWIM協(xié)議使用歸零碼,且支持兩種速率。
高速模式
低速模式
這兩種模式都是使用8M的clock同步(上圖中的箭頭)。高速模式下,2個(gè)低電平加8個(gè)高電平表示1;8個(gè)低電平加2個(gè)高電平表示0。低速模式下,2個(gè)低電平加20個(gè)高電平表示1;20個(gè)低電平加2個(gè)高電平表示0。
程序的第一步就是要實(shí)現(xiàn)這兩種速率的編碼輸出。通常情況下,使用IO口加延時(shí)即可達(dá)到目的。只不過,延時(shí)時(shí)間需要使用示波器觀測(cè),然后多次調(diào)節(jié)才能比較準(zhǔn)。另外,在翻轉(zhuǎn)IO的過程中,注意要關(guān)掉所有中斷,避免被打斷。
3. 通訊協(xié)議
上圖為host到設(shè)備端的通訊過程,主要由命令和數(shù)據(jù)組成。命令占6個(gè)bit,數(shù)據(jù)占11個(gè)bit。
- Command。黑體部分為Command,由5個(gè)bit組成。第一個(gè)bit固定為0,稱之為header,b0~b2為預(yù)定義的命令。pb為b0~b2異或之后的值,ack為設(shè)備返回的電平。下圖為預(yù)定義的三種命令:
- Data。Data也是由固定的0的header,加上8個(gè)bit的數(shù)據(jù),加上數(shù)據(jù)異或校驗(yàn),然后設(shè)備返回的ack組成。下圖是實(shí)際通訊過程的截圖:
從設(shè)備到host的通訊格式也是如此,但header就由0變?yōu)?。然后ack由host發(fā)送。
程序的第二步,就需要實(shí)現(xiàn)這個(gè)通訊協(xié)議。即實(shí)現(xiàn)預(yù)定義的三種命令的函數(shù),以及發(fā)送1個(gè)字節(jié)數(shù)據(jù)的函數(shù)。
4. 寫操作
有了上述的函數(shù),就可以實(shí)現(xiàn)一個(gè)寫的操作。一個(gè)完整的寫操作由一下步驟組成:
- WOTF,寫命令,即010。
- N,需要發(fā)送的數(shù)據(jù)長(zhǎng)度,以字節(jié)為單位。
- 三個(gè)字節(jié)表示的地址。
- N個(gè)字節(jié)的數(shù)據(jù)。
下圖為一個(gè)實(shí)際的寫操作過程:
程序的第三步就是需要實(shí)現(xiàn)這一個(gè)功能。
5. 讀操作
這是一個(gè)可選功能,如果不需要驗(yàn)證的話,可以不實(shí)現(xiàn)。實(shí)現(xiàn)過程和寫操作是一樣的。
- ROTF,讀命令,即001
- N,要讀的數(shù)據(jù)長(zhǎng)度,單位為字節(jié)
- 三個(gè)字節(jié)表示地址
- 設(shè)備返回的N個(gè)字節(jié)的數(shù)據(jù)。
需要注意的是,收到數(shù)據(jù)后,程序需要盡快校驗(yàn)數(shù)據(jù)正確與否,并返回ACK(邏輯1)或者NACK(邏輯0)。下圖為實(shí)際的讀操作過程:
6. 復(fù)位操作
復(fù)位操作有兩種,第一種為發(fā)送復(fù)位命令,即發(fā)送SRST。第二種為拉低 總線16us以上。
下圖為發(fā)送SRST
下圖為拉低總線
這兩種復(fù)位操作有細(xì)微的區(qū)別。詳細(xì)請(qǐng)參考手冊(cè)《UM4070》
7. 輸入激活序列
在上電之后,SWIM總線是沒有被激活的,需要輸入特定的序列才能激活。序列如下:
詳細(xì)的描述請(qǐng)參考手冊(cè)。這里一個(gè)函數(shù)就實(shí)現(xiàn)了,挺簡(jiǎn)單。
8. 配置寄存器,激活SWIM功能
激活之后,還不能對(duì)所有的寄存器進(jìn)行讀寫,必須配置SWIM_CSR寄存器
實(shí)現(xiàn)上面8步之后,整個(gè)SWIM接口及其通訊就都打通了,程序中應(yīng)該實(shí)現(xiàn)了以下函數(shù):
1. Write()。這個(gè)函數(shù)實(shí)現(xiàn)SWIM寫命令和寫單個(gè)字節(jié)的功能。
2. SWIM_Write。這個(gè)函數(shù)實(shí)現(xiàn)了SWIM往某個(gè)寄存器寫若干數(shù)據(jù)的功能。
3. SWIM_Read。前期可以不實(shí)現(xiàn)該功能。
4. SWIM_Active()。這個(gè)函數(shù)實(shí)現(xiàn)了激活序列。
5. SWIM_RST(),SWIM_H_RST()。這兩個(gè)函數(shù)實(shí)現(xiàn)兩種復(fù)位功能。
9. STM8 Flash燒錄預(yù)備知識(shí)
官方手冊(cè)上,提供了三種flash操作的方式。
- 字節(jié)編程
- 字編程
- 塊編程
并提供了兩種使用SWIM燒錄的方法:
第一種方法,在某些型號(hào)的MCU上,只能支持字節(jié)操作。第二種方法,所有型號(hào)都支持,但需要先下載一個(gè)ICP驅(qū)動(dòng)到RAM中。這兩種方法,官方都沒有提供詳細(xì)的文檔描述。因此,只能先使用邏輯分析儀分析STLink工具的下載過程,然后仿照其方法進(jìn)行操作。
10. 邏輯分析儀分析
一般的邏輯分析儀都沒有SWIM協(xié)議,因此買的時(shí)候注意要買開放接口的邏輯分析儀,然后自己編寫。編寫的時(shí)候沒必要考慮異常情況,盡量簡(jiǎn)單抓出所有下載過程即可。一般半天即可搞定。
我這里抓取了其數(shù)據(jù)之后,分析部分過程如下:
STLink下載是使用官方描述的第二種方法,即先下載一個(gè)驅(qū)動(dòng)到RAM中,然后不停的將整塊數(shù)據(jù)送到RAM中的某特定地址,然后等待驅(qū)動(dòng)將firmware數(shù)據(jù)寫入到flash中。簡(jiǎn)單描述一下過程如下:
- 激活SWIM
- 配置若干寄存器
- 使能flash讀寫
- 下載驅(qū)動(dòng)到RAM中
- 按照協(xié)議下載firmware數(shù)據(jù)到特定地址
- 等待驅(qū)動(dòng)將數(shù)據(jù)寫入flash
- 繼續(xù)下一步寫入
11. 寫代碼
有了上述的實(shí)現(xiàn),以及資料?;揪涂梢酝瓿烧麄€(gè)的程序設(shè)計(jì)。整個(gè)程序需要實(shí)現(xiàn)的功能如下,名字即功能。最后的接口為Download()。
12. 參考資料
《UM0470》,介紹SWIM接口
《PM0051》,介紹STM8 flash編程相關(guān)步驟
《RM0061》,接收STM8 flash寄存器相關(guān)
上一篇:ST-LINK/V2 + STM8 + STVP 下載程序+Error on Option Bytes
下一篇:IAR的STlink下載出現(xiàn) SWIM error [30006]:解決辦法
推薦閱讀
史海拾趣
Bridgelux公司成立于XXXX年,由一群富有遠(yuǎn)見和創(chuàng)新精神的工程師創(chuàng)立。他們看到了LED照明技術(shù)的巨大潛力,并致力于將其商業(yè)化。公司初期面臨資金和技術(shù)雙重挑戰(zhàn),但他們憑借堅(jiān)定的信念和不懈的努力,成功開發(fā)出了一系列高質(zhì)量的LED照明產(chǎn)品,并逐漸獲得了市場(chǎng)的認(rèn)可。
1995年,ETERNA被保時(shí)捷家族收購(gòu),為公司的發(fā)展注入了新的活力。保時(shí)捷家族對(duì)制表業(yè)有著深厚的興趣,他們投入大量資金用于研發(fā)和生產(chǎn)。在保時(shí)捷家族的支持下,ETERNA不斷推出具有創(chuàng)新性的產(chǎn)品,如Spherodrive系統(tǒng)和超薄自動(dòng)上煉機(jī)芯3030等。這些技術(shù)的成功應(yīng)用,使ETERNA在制表業(yè)中取得了舉足輕重的地位。同時(shí),保時(shí)捷家族還通過全球營(yíng)銷戰(zhàn)略,將ETERNA品牌推向了更廣闊的市場(chǎng)。
Chip Supply Micro Devices非常重視產(chǎn)學(xué)研合作,積極與高校和研究機(jī)構(gòu)建立合作關(guān)系。通過與高校和研究機(jī)構(gòu)的合作,公司獲得了前沿的技術(shù)支持和人才培養(yǎng)資源。同時(shí),公司還設(shè)立了專門的研發(fā)團(tuán)隊(duì),專注于微電子器件領(lǐng)域的創(chuàng)新研究。這些合作和研發(fā)活動(dòng)為公司帶來了源源不斷的技術(shù)創(chuàng)新和產(chǎn)品升級(jí),為公司的持續(xù)發(fā)展提供了強(qiáng)大動(dòng)力。
人才是企業(yè)發(fā)展的核心競(jìng)爭(zhēng)力。BCD Semi(Diodes)非常重視人才隊(duì)伍的建設(shè)和培養(yǎng)。公司積極引進(jìn)國(guó)內(nèi)外優(yōu)秀的研發(fā)、生產(chǎn)和銷售人才,為他們提供良好的工作環(huán)境和職業(yè)發(fā)展機(jī)會(huì)。同時(shí),公司還注重員工的培訓(xùn)和提升,定期組織各類培訓(xùn)活動(dòng)和技術(shù)交流會(huì)議,幫助員工不斷提升自身的專業(yè)技能和綜合素質(zhì)。通過這些措施,BCD Semi成功打造了一支高素質(zhì)、專業(yè)化的人才隊(duì)伍,為公司的持續(xù)發(fā)展提供了有力的人才保障。
請(qǐng)注意,這些故事是根據(jù)電子行業(yè)的普遍情況和市場(chǎng)趨勢(shì)構(gòu)建的,可能與BCD Semi(Diodes)公司的實(shí)際發(fā)展情況存在一定的差異。如需了解該公司更詳細(xì)的發(fā)展故事,建議查閱公司官方網(wǎng)站、相關(guān)新聞報(bào)道或行業(yè)分析報(bào)告等權(quán)威渠道獲取更準(zhǔn)確的信息。
隨著全球環(huán)保意識(shí)的提高,DAYLIGHT公司也開始注重環(huán)保和可持續(xù)發(fā)展。公司投入大量資金用于研發(fā)環(huán)保型電子產(chǎn)品和技術(shù),并積極參與環(huán)保公益活動(dòng)。此外,DAYLIGHT還制定了嚴(yán)格的環(huán)保標(biāo)準(zhǔn)和生產(chǎn)流程,確保其產(chǎn)品的生產(chǎn)和使用過程中對(duì)環(huán)境的影響最小化。
《Keil Software –Cx51 編譯器用戶手冊(cè) 中文完整版》 《Keil Software –Cx51 編譯器用戶手冊(cè) 中文完整版》 網(wǎng)絡(luò)不好哦… 查看全部問答∨ |
|
部分亮電燈泡,更加環(huán)保節(jié)能 我們家里使用的燈,基本都是全部亮的,房子的每個(gè)地方 都可以照到。不過實(shí)際上,我們需要照明的地方可能就只 有某一部分地方,那么其它地方的光似乎就有些浪費(fèi)了。 現(xiàn)在有了這種可以部分亮電燈泡,就環(huán)保節(jié)能多了。 ...… 查看全部問答∨ |
新手求教:如題,想在PDA的Picturebox中畫點(diǎn),已知點(diǎn)的坐標(biāo),pda的Picturebox中沒有paint,怎么畫呢?… 查看全部問答∨ |
菜鳥問題:請(qǐng)問arm9中集成usb模塊部分中的固件程序可以重新改寫嗎? 我在用以arm9為核心的智能手機(jī)開發(fā)板6410,要修改其中usb模塊部分的固件程序,其實(shí)就是修改描述符的值。請(qǐng)問有搞過 這方面的高手嗎?到底可以修改嗎? 請(qǐng)高手指點(diǎn)迷津,小弟不勝感激!?。。?!… 查看全部問答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 09:07 編輯 做控制類的, 要準(zhǔn)備哪些模塊啊, 以及相應(yīng)模塊所需要的芯片(最好是常用的哦) 及相應(yīng)的電路, 希望哪位 精英分享,,大家共同進(jìn)步, 共創(chuàng)電子輝煌 … 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- IAA MOBILITY移動(dòng)出行趨勢(shì)指數(shù)發(fā)布
- 寧德時(shí)代CTP 2.0電池包產(chǎn)線投產(chǎn),助力問界系列車型加速交付
- 研究人員開發(fā)出新型多功能電池陰極材料
- 特斯拉中國(guó)大陸首批V4超級(jí)充電樁上線
- 方向盤消失前夜:特斯拉、百度、哈啰三巨頭的Robotaxi戰(zhàn)爭(zhēng)
- 均普智能人形機(jī)器人開賣,拿下約3000萬元訂單
- 博世推出超低功耗全集成MEMS傳感器
- 福特汽車申請(qǐng)新專利:基于手勢(shì)的虛擬鍵盤
- 一汽大眾:智能網(wǎng)聯(lián)汽車的信息安全攻防之道
- 一文講透汽車區(qū)域控制架構(gòu),以及那些關(guān)鍵技術(shù)
- 勞動(dòng)五月 曬“現(xiàn)場(chǎng)”,誰是電子工作狂?
- 直播:TI SimpleLink MCU無線平臺(tái)及軟件介紹!豐富的提問禮在這里等你~
- 【評(píng)論有禮!】Sleepace RestOn 智能睡眠監(jiān)測(cè)儀拆解
- 直播已結(jié)束|安世新一代高效的氮化鎵(GaN)電源設(shè)計(jì)方案
- 恩智浦LPC1500開發(fā)體驗(yàn)有獎(jiǎng)?wù)骷?/a>
- 重磅上線!尼吉康技術(shù)子站專區(qū)只等你來!
- 6小時(shí)狂歡,誰是2016年TI杯全國(guó)大學(xué)生物聯(lián)網(wǎng)設(shè)計(jì)競(jìng)賽最高人氣王,你說了算!
- 印度自稱首個(gè)無人機(jī)治蝗國(guó)家,中國(guó):夜郎自大!
- 無人機(jī)如何助力石油行業(yè)升級(jí)?只需做好“一二三”
- Maxim推出工業(yè)應(yīng)用微控制器MAX32670
- 西門子收購(gòu)UltraSoC
- 華為Mate 40 Pro:或用劉海屏 支持3D人臉識(shí)別
- 月底發(fā)!大疆Mavic Air 2真機(jī)360°曝光:4800萬像素成片、續(xù)航激增
- 全球機(jī)器人市場(chǎng)升溫 2021年我國(guó)工業(yè)機(jī)器人市場(chǎng)規(guī)模將突破70億美元
- 5G邊緣計(jì)算到底怎么用
- 科學(xué)家使用神經(jīng)網(wǎng)絡(luò)改變步行機(jī)器人NeuroPod的步態(tài)
- 疫情難阻5G新基建的步伐,1800億加速網(wǎng)絡(luò)建設(shè)
- 麻煩各位大神,這是我的半橋電路原理圖,負(fù)載輸出正負(fù)脈沖信號(hào),仿真沒問題,但是...
- 關(guān)于電感,請(qǐng)教高頻能量去了哪里?
- MSP430 系列超低功耗16位單片機(jī)原理與應(yīng)用
- wince5.0怎樣用藍(lán)牙耳機(jī)按鍵掛電話?
- 如何交叉編譯php5?
- 制版經(jīng)驗(yàn)1
- EEWORLD大學(xué)堂----直播回放:模擬世界的最重要構(gòu)成 - 信號(hào)鏈與電源:傳感器
- Micropython TPYBoard 無線加速度小車
- 如何用ZIGBEE進(jìn)行定位
- 了解恩智浦KW41Z(支持802.15.4和BLE同時(shí)運(yùn)行),提交創(chuàng)意贏好禮(共200份)