• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      通過I2C總線接口的MCU 固件升級方法

      2018-07-11 07:51:28
      關(guān)鍵詞:上拉原理圖嵌入式

      (珠海市光聯(lián)通訊技術(shù)有限公司 OMS/軟件組,珠海 519030)

      引 言

      嵌入式系統(tǒng)(Embedded system)是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計的專用計算機(jī)系統(tǒng)”,根據(jù)英國電氣工程師協(xié)會的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機(jī)器或用于工廠運(yùn)作的設(shè)備。與個人計算機(jī)這樣的通用計算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預(yù)先定義的任務(wù)。由于嵌入式系統(tǒng)只針對一項特殊的任務(wù),設(shè)計人員能夠?qū)λM(jìn)行優(yōu)化,減小尺寸降低成本。

      Linux是類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),用C語言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。

      Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其它途徑獲得,并可以任意修改其源代碼,這是其它的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對其進(jìn)行改變,這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。

      Linux內(nèi)核的主要模塊(或組件)分為以下幾個部分:存儲管理、CPU和進(jìn)程管理、文件系統(tǒng)、設(shè)備管理和驅(qū)動、網(wǎng)絡(luò)通信,以及系統(tǒng)的初始化(引導(dǎo))、系統(tǒng)調(diào)用等。

      本系統(tǒng)主機(jī)采用的是Linux嵌入式操作系統(tǒng)。

      1 系統(tǒng)構(gòu)成

      本系統(tǒng)由主機(jī)和從機(jī)構(gòu)成,主機(jī)采用嵌入式Linux操作系統(tǒng),從機(jī)為K20 MCU,主、從機(jī)之間采用I2C總線通信方式:

      從機(jī)MCU型號是恩智浦MK20DN512ZVLL10-ND,自帶I2C總線接口和SCI接口(備用),通過I2C總線接口與主機(jī)通信;通過SCI接口可與PC機(jī)通信。

      2 系統(tǒng)硬件I2C總線部分原理圖

      系統(tǒng)硬件I2C總線部分原理圖如圖1所示。

      圖1 I2C部分原理圖

      3 從機(jī)MCU firmware升級實(shí)現(xiàn)方法

      從機(jī)MCU firmware升級主要有兩種方法:通過PC和通過主機(jī)。

      方法一:通過PC,該方法在沒有主機(jī)的情況下大量使用,技術(shù)成熟,本文不做詳細(xì)描述。

      從機(jī)利用備用的SCI接口,通過PC按XMODEM協(xié)議升級下載firmware成功,驗(yàn)證從機(jī)代碼和firmware升級包都正確。

      升級包描述如下:

      I2C從設(shè)備地址(1byte)FWDATA(6 bytes)0x20(1 byte)Data0……Data31

      每包包長度為40個bytes=從設(shè)備地址+FWDATA的ASCII碼(不分大小寫)+0x20+Data0+……+Data31。

      方法二:通過主機(jī),系統(tǒng)主機(jī)通過I2C總線接口與從

      機(jī)通信,在發(fā)送命令、接收數(shù)據(jù)等都正常的情況下,主機(jī)通過網(wǎng)頁界面、I2C總線通信對從機(jī)firmware升級,下載失敗,下面做詳細(xì)描述。

      用示波器抓SDA波形,正確的和錯誤的SDA波形比較如下:

      ① 正常的波形是每個byte后跟ACK(即第9個SCK對應(yīng)的SDA為0),正確波形如圖2所示。

      ② 從機(jī)接收升級數(shù)據(jù)包時,前8個bytes正常,每個byte后跟一個ACK,即Data0之前的地址、命令(FWDATA)等都正常,從Data0開始到Data31,不定某個位置開始出現(xiàn)NACK,直到stop前一直都是NACK,錯誤波形如圖3所示。

      圖2 正確波形

      圖3 錯誤波形

      下面對升級失敗原因進(jìn)行分析:

      ① 對不同主、從機(jī)I2C總線升級結(jié)果及波形對比結(jié)果如下:

      主機(jī)S3C2440主機(jī)XA9S12從機(jī)DSP升級OK,波形如圖4-----------從機(jī)K20升級NO,波形同DSP升級OK,波形如圖5

      ②兩種升級成功的SDA波形比較及有關(guān)參數(shù)如圖4、圖5所示。

      所采用的改進(jìn)措施和改進(jìn)結(jié)果比較如下:

      ① 改硬件上拉電阻,無效,方法如下:去掉從機(jī)I2C

      總線上拉電阻(圖1的R24和R25),波形無改善,升級不成功;去掉從機(jī)I2C總線上拉電阻(圖1的R24和R25),并且短路圖1的U4芯片,波形無改善,升級不成功。

      ② I2C總線 通信速度由400 kHz降為100 kHz,升級不成功。

      ③ 配置主機(jī)SDA延遲時間(即SDA hold時間)由5clocks改為0,升級通過,但SDA建立時間仍為80 ns,SDA hold時間由200 ns變?yōu)?00 ns,波形如圖6、圖7所示。

      圖4 S3C2440&&DSP(SDA建立時間為80 ns)

      圖5 XA9S12&&K20(SDA建立時間為460 ns)

      圖6 SDA延遲5clocks(SDA hold時間為200 ns)

      ④ 增加SDA建立時間,修改后SDA建立時間由80 ns增加到180 ns,滿足I2C總線 datasheet要求,針對上述第3條兩種配置,升級都成功。

      參考s3c2440A白皮書(圖8)以及K20 白皮書(圖9)。

      圖7 SDA延遲0clocks(SDA hold時間為100 ns)

      圖8 s3c2440A白皮書部分

      圖9 K20白皮書部分

      主機(jī)代碼做了如下修改,升級成功,I2C總線接口時序符合標(biāo)準(zhǔn):

      ① 修改函數(shù)static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat),增加ndelay(1);//等待建立時間

      ② 增加ndelay(5)后,SDA建立時間為580 ns,波形如圖10所示。

      結(jié) 語

      圖10 增加ndelay(5)后波形圖

      猜你喜歡
      上拉原理圖嵌入式
      拄著一束光
      高效PDT 終端定位數(shù)據(jù)上報方法
      某車型霧燈偶發(fā)點(diǎn)亮故障分析與設(shè)計優(yōu)化
      汽車電器(2020年3期)2020-04-07 03:30:32
      淺談STM32核心板原理圖設(shè)計
      電路原理圖自動布圖系統(tǒng)的設(shè)計與實(shí)現(xiàn)
      基于Protel DXP 2004層次原理圖的設(shè)計
      搭建基于Qt的嵌入式開發(fā)平臺
      在老師的葬禮上拉小提琴的男孩
      北廣人物(2017年29期)2017-08-01 00:16:41
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      Altera加入嵌入式視覺聯(lián)盟
      武胜县| 砀山县| 惠来县| 厦门市| 芦山县| 库车县| 哈密市| 靖安县| 黔江区| 凉城县| 霍城县| 玉树县| 奎屯市| 铁力市| 丰县| 德化县| 塔城市| 滦平县| 岑溪市| 屏东市| 宁南县| 钦州市| 石嘴山市| 池州市| 枣强县| 广安市| 扎赉特旗| 隆尧县| 清河县| 保靖县| 石城县| 久治县| 柘城县| 清徐县| 富蕴县| 谢通门县| 蒲城县| 田林县| 舒兰市| 四子王旗| 磐石市|