0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式里有關(guān)時(shí)序波形的測量有哪些需要注意的地方

汽車電子技術(shù) ? 來源: 嵌入式之入坑筆記 ? 作者:嵌入式入坑筆記 ? 2023-02-10 10:49 ? 次閱讀

嵌入式產(chǎn)品的開發(fā)中少不了各種外圍設(shè)備的搭配使用。嵌入式開發(fā)中需要做到將加入系統(tǒng)的外設(shè)連接起來,并能夠完成所需要的功能開發(fā)。

在眾多的設(shè)備中,MCU與外設(shè)進(jìn)行通信都是按照一定的協(xié)議進(jìn)行的,都涉及到時(shí)序,只有按照約定好的協(xié)議才能進(jìn)行通信。



比如,常見的 1-Write單總線、IIC總線、SMBus總線、SPI總線等等的協(xié)議,都是需要在約定的通信協(xié)議下才能完成通信。而通信協(xié)議的實(shí)現(xiàn)反饋到MCU的時(shí)候,就只是一種IO口電平的變化輸出,以及外設(shè)傳送數(shù)據(jù)到MCU也是一種電平的變化或者是電平的時(shí)間寬度變化。



筆者在項(xiàng)目開發(fā)中就遇到過和外設(shè)通信中需要測量波形的變化確認(rèn)數(shù)據(jù)狀態(tài)的情況,遇到過一些小問題,隨即記錄下來分享一下調(diào)試心得,也做一個(gè)備忘。



情況是這樣,項(xiàng)目開發(fā)中,有一個(gè)外設(shè)需要加入到系統(tǒng)中,這個(gè)外設(shè)是由生產(chǎn)廠商規(guī)定好了通信協(xié)議的,收發(fā)數(shù)據(jù)都要按照協(xié)議的規(guī)定進(jìn)行,MCU接收數(shù)據(jù)的規(guī)定如下:

圖片

在通信總線上的低電平期間,有20mA的電流變化時(shí)外設(shè)回復(fù)數(shù)據(jù)“1”,沒有電流變化為數(shù)據(jù)“0”。



    電流的變化通過硬件電路轉(zhuǎn)換成電壓的變化,MCU通過AD檢測進(jìn)行判斷,從而得知數(shù)據(jù)的變化狀態(tài)。按照我們思路,MUC在低電平期間檢測到電流的變化啟動AD檢測,根據(jù)AD值確認(rèn)數(shù)據(jù)狀態(tài)。如下圖示:

圖片

偽代碼示意如下:
while( !GPIO_Check_Pin )  // 通過電平變化確定電流變化
{
    uint_32 adValue = 0;
    if( GPIO_Check_Pin )
    {
        adValue = getAdValue();  // 讀取AD值
        if(adValue > x)
            xxx;
    }
}
一般到這里認(rèn)為應(yīng)該也就算是完成了,可是在實(shí)際測試中發(fā)現(xiàn),獲取得到的AD值跟電路上實(shí)際的電壓是有很多的出入的,測量總是不準(zhǔn)確。



    苦思冥想,多次測量之后發(fā)現(xiàn),原來跟時(shí)序的變化有關(guān)。原因到底什么呢?



原來,正常的想法都是波形變化之后進(jìn)行測量,而沒有考慮過波形的變化在不同的處理器上差異,以及硬件本身的延遲,往往不會立即就能發(fā)生翻轉(zhuǎn)的,有一個(gè)變化的過程的。



    比如,理想的時(shí)序波形變化是這樣的:

圖片

然而,實(shí)際的時(shí)序波形變化是這樣的:

圖片

所以,在波形發(fā)生變化的時(shí)候就進(jìn)行測量,很多時(shí)候往往得不到正確的結(jié)果,可以測量的電位點(diǎn)都不對,測量發(fā)生在了電平變化的期間。

圖片

所以,要準(zhǔn)確測量,合適的方法是等待一段時(shí)間,電平變化穩(wěn)定之后再進(jìn)行測量,結(jié)果就更加證實(shí)準(zhǔn)確。如下:

圖片

所以,偽代碼示意如下:
while( !GPIO_Check_Pin )  // 通過電平變化確定電流變化
{
    uint_32 adValue = 0;
    if( GPIO_Check_Pin )
    {
        delay();
        adValue = getAdValue();  // 讀取AD值
        if(adValue > x)
            xxx;
    }
}
很多的嵌入式系統(tǒng)中,考慮到成本、工藝、實(shí)用性等的因素,很多的處理器都不會實(shí)用很強(qiáng)大的MCU,主頻可能都比較低,性能有限,很多的外設(shè)反應(yīng)速度可能也不及MCU,所以延時(shí)等待在很多時(shí)候都很有必要。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18980

    瀏覽量

    302240
  • 外設(shè)
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    11668
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1006

    瀏覽量

    21297
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式系統(tǒng)電源設(shè)計(jì)中需要注意哪些事項(xiàng)?

    嵌入式系統(tǒng)電源設(shè)計(jì)中需要注意哪些事項(xiàng)?遵循哪些原則?
    發(fā)表于 08-01 06:58

    嵌入式NVM在應(yīng)用中要注意什么?

    工藝兼容、功耗及成本控制等新的問題。為此,本文以一款電力網(wǎng)控制芯片R36的物理設(shè)計(jì)為例,討論了嵌入式NVM在實(shí)際應(yīng)用中需要注意的問題,并給出了解決方案。
    發(fā)表于 11-04 06:55

    嵌入式硬件設(shè)計(jì)時(shí)需要注意哪些事項(xiàng)?

    嵌入式設(shè)計(jì)是個(gè)龐大的工程,今天就說說硬件電路設(shè)計(jì)方面的幾個(gè)注意事項(xiàng),首先,咱們了解下嵌入式的硬件構(gòu)架。
    發(fā)表于 03-09 08:36

    設(shè)計(jì)嵌入式硬件時(shí)需要注意哪些問題?

    嵌入式開發(fā)項(xiàng)目中,首先需要做需求分析,然后根據(jù)需求分析進(jìn)行綜合考慮,這里給出幾個(gè)嵌入式硬件設(shè)計(jì)時(shí)特別要注意的問題。
    發(fā)表于 03-11 07:21

    嵌入式系統(tǒng)設(shè)計(jì)時(shí)需要注意的技術(shù)要點(diǎn)和實(shí)現(xiàn)細(xì)節(jié)哪些?

    為什么需要safe mode?嵌入式系統(tǒng)設(shè)計(jì)時(shí)需要注意的技術(shù)要點(diǎn)和實(shí)現(xiàn)細(xì)節(jié)哪些?
    發(fā)表于 04-25 08:49

    嵌入式軟件安全設(shè)計(jì)理念是什么?什么注意事項(xiàng)?

    嵌入式軟件安全設(shè)計(jì)理念是什么?嵌入式軟件設(shè)計(jì)需要注意什么問題?
    發(fā)表于 04-27 06:51

    部署光纖什么需要注意地方

    部署光纖什么需要注意地方?如何去選購光纖?
    發(fā)表于 05-28 07:19

    嵌入式系統(tǒng)工程化設(shè)計(jì)要注意哪些方面

    計(jì)算機(jī)設(shè)計(jì),提高可靠性那些方面工程化要求?設(shè)計(jì)要注意那些方面?下面按照兩個(gè)方面來介紹,一,把嵌入式計(jì)算機(jī)簡化到最簡化模型,看看需要注意那些方面。二,面對
    發(fā)表于 11-08 06:51

    PCB工程師需要注意地方

    PCB工程師需要注意地方:PCB工程師需要注意地方較多的PCB工程師,他們經(jīng)常畫電腦主板,對Allegro等優(yōu)秀的工具非常的熟練,但是,非??上У氖?他們居然很少知道如何進(jìn)行阻抗
    發(fā)表于 09-13 10:45 ?0次下載

    PCB工程師需要注意地方

    PCB工程師需要注意地方   較多的PCB工程師,他們經(jīng)常畫電腦主板,對Allegro
    發(fā)表于 04-16 22:14 ?1583次閱讀

    PCB工程師需要注意地方

    PCB工程師需要注意地方,在PDF中有很多值得關(guān)注的地方。
    發(fā)表于 11-20 16:21 ?0次下載

    設(shè)計(jì)嵌入式系統(tǒng)硬件電路時(shí)需要考慮哪些問題

    設(shè)計(jì)以MCU為核心的嵌入式系統(tǒng)硬件電路需要根據(jù)需求分析進(jìn)行綜合考慮,需要考慮的問題較多,這里給出幾個(gè)特別要注意的問題。
    的頭像 發(fā)表于 02-13 16:32 ?3945次閱讀

    嵌入式硬件設(shè)計(jì)中需要注意的事項(xiàng)

    我們知道,CPU是這個(gè)系統(tǒng)的靈魂,所有的外圍配置都與其相關(guān)聯(lián),這也突出了嵌入式設(shè)計(jì)的一個(gè)特點(diǎn)硬件可剪裁。在做嵌入式硬件設(shè)計(jì)中,以下幾點(diǎn)需要關(guān)注。
    發(fā)表于 06-19 11:30 ?870次閱讀

    嵌入式設(shè)計(jì)需要注意什么問題

    這些嵌入式系統(tǒng)必須長期使用相同的電源供電,才能降低反復(fù)出現(xiàn)的維護(hù)成本或避免最終用戶頻繁更換電源。
    發(fā)表于 10-23 15:56 ?854次閱讀
    <b class='flag-5'>嵌入式</b>設(shè)計(jì)<b class='flag-5'>需要注意</b>什么問題

    嵌入式有關(guān)時(shí)序波形測量需要注意地方

    嵌入式產(chǎn)品的開發(fā)中少不了各種外圍設(shè)備的搭配使用。嵌入式開發(fā)中需要做到將加入系統(tǒng)的外設(shè)連接起來,并能夠完成所需要的功能開發(fā)。
    發(fā)表于 05-20 15:41 ?803次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>里</b><b class='flag-5'>有關(guān)</b><b class='flag-5'>時(shí)序</b><b class='flag-5'>波形</b>的<b class='flag-5'>測量</b><b class='flag-5'>需要注意</b>的<b class='flag-5'>地方</b>