• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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)盟
    揭西县| 佛坪县| 灵石县| 东丽区| 化州市| 乐山市| 五台县| 祁东县| 巴青县| 河北区| 阳谷县| 菏泽市| 定远县| 道孚县| 定兴县| 蒲江县| 齐齐哈尔市| 抚顺市| 盐山县| 阿克苏市| 中牟县| 长汀县| 峨边| 新竹县| 昭苏县| 临湘市| 徐闻县| 德庆县| 荣昌县| 杭锦后旗| 晋宁县| 江川县| 措勤县| 永州市| 额济纳旗| 阿拉善盟| 洪洞县| 安新县| 邓州市| 海林市| 新昌县|