新聞中心

        EEPW首頁 > 牛人業話 > 管腳兼容是謊話 總有一點小偏差

        管腳兼容是謊話 總有一點小偏差

        作者:三昧道人 時間:2018-10-26 來源:電子產品世界 收藏

        備受廣大人民群眾喜愛的四大名著之一《西游記》以法相宗開山祖師玄奘大師西行求法的偉大事跡為藍本,演義成唐僧師徒四人經歷九九八十一難,歷盡艱辛西天取經的神話故事,其中真假美猴王一節,六耳獼猴和孫悟空相貌無二無別,本領神通也與孫大圣一般無二,讓人真假難辨,正所謂唐僧緊箍疼不出,天王鏡子照不出,觀音我也看不出,還是我佛如來慧眼識人,道出六耳獼猴真身并用金缽盂罩住被孫悟空一棍子打死了事。

        本文引用地址:http://www.104case.com/article/201810/393461.htm

        被老謀子炒作為16年來真正想拍的電影“影”則講述了一個關于替身的故事。替身,人稱“影子”,與真身互為一體,令旁人真假難辨,如同孿生,在危急關頭挺身而出,替主人博回一命。這種題材貌似很受大家歡迎,雖然不曾看過,但是吳宇森的《變臉》據說也是這種以假換真的故事。

        后來,這種以假亂真、雌雄難辨的手法被上海交通大學微電子學院院長陳進教授發揚光大,這位海歸科學家創造性地以打磨更換標簽的方式發明了“漢芯一號”,“騙”過了多位評審專家,套取了高達上億元的科研基金,在國人亟待在高科技領域有所突破之際,以一種荒誕離奇的方式制造了轟動一時的重大科研造假事件。

        雄兔腳撲朔,雌兔眼迷離;雙兔傍地走,安能辨我是雄雌?

        時值當下,嵌入式領域的MCU“管腳兼容”不僅可以在軟件開發上做到代碼復用和開發工具的通用,還能夠在硬件設計上直接拿來主義,更能在生產上實施物料替換,以應對芯片斷供或供貨周期長的難題,因為備受廣大嵌入式系統廠商青睞,可是,這些“管腳兼容”的芯片真的沒有任何差別嗎?

        1

        嵌入式軟件工程師實在是一群相當苦逼的群體,這不,都快到半夜十二點了,兩位難兄難友還在那里調著程序,有一搭沒一搭地交流著,更多的時間都陷入深深的思索中。

        黑夜伸開它那巨大的翅膀,籠罩著漸漸入睡的大地。窗外,細雨唏噓如歌,落葉曼妙如舞。室內,安靜并非無聲,兩位精疲力竭的碼農竊竊私語。

        “三昧道人,你說這兩顆芯片到底有什么差別呢?”同事一只手支著肥胖的腦袋,聲音有氣無力,猶如夢囈。

        夜色漸濃,睡意猶如驚濤拍岸,一股股向我襲來。我強打精神,看了看他那張結婚后逐漸發胖的臉蛋,瞄了瞄他那日益隆起就要藏不住的肚腩,定了定神,字斟句酌地說道,“也許是生產工藝不同吧。根據芯片介紹,意法半導體的這顆SPC560B40和飛思卡爾的MPC5604B采用的是飛思卡爾的PowerPC內核和意法半導體的Flash技術,管腳兼容,設計一致,軟件通用。他們的唯一區別應該是SPC560B40是意法半導體生產的,MPC5604B是飛思卡爾生產的,兩家的制造工藝不同,所以導致了這個差異?!痹掚m至此,我心里卻犯起了嘀咕,“制造工藝不同,最多有些性能上的差異,也不應該在功能上有所差別呀!”

        兩個電路板接著各自的測試盒,靜靜地躺在工作臺上,不悲不喜,全然不理會我們的對話。這兩塊板子,一塊上面焊的是SPC560B40,一塊上面焊的是MPC5604B,其它完全一致,燒了同一套程序后發現,采用SPC這顆MCU的電路板能夠通過遙控鑰匙喚醒,采用MPC這顆MCU的電路板卻死活都喚不醒。

        2

        長夜清寂,微風習習,細雨漸歇,在月色的沐浴中,窗外的草地上翻滾著銀閃閃、綠油油的波浪。站在窗前,仰望蒼穹,天上的星星一眨一眨,像極了小孩子的眼睛。

        我伸了伸懶腰,把礙事又礙眼的同事打發回去,泡了一杯深茶,驅趕一下睡意,沉下心來,準備再捋一捋程序。

        遙控喚醒程序說來也很簡單,MCU睡眠40ms,自動臨時喚醒后初始化遙控接收驅動,如果2ms內沒有收到達到閾值數量的有效射頻位,就再次進入休眠,40ms后再次臨時喚醒。。。如果再這2ms內收到了若干有效射頻位,則繼續接收2ms,倘若仍能接收到若干有效射頻位,則按照遙控報文時長的2倍設置接收時間,倘若接收到有效的報文,則退出休眠,即所謂被遙控鑰匙喚醒。

        方案很簡單,既能保證沒有有效信號時安心睡眠,實現較低的休眠電流,又能夠在有干擾時通過“三級過濾”濾除干擾,還能在存在有效鑰匙時及時喚醒。這段程序一直以來跑得挺好,直到這次,因為物料緊張,沒有足夠的SPC,用了一些MPC來救急,才發現用了MPC的這些板子喚不醒了。顯然,這兩顆所謂管腳兼容、軟件通用的MCU肯定有一些不為人知的不同!

        3

        程序員喜歡夜晚,主要是貪戀它的安靜。四周一片沉默,陷入沉睡之中的偌大的辦公室寂靜無聲,此時此刻,無絲竹之亂耳,唯有案牘之勞形。面對Bug,心底越靜,就越是有Bug馬上就要躍出水面的期待。其實,Bug對于我具有符咒般的魔力,它雖然讓人茶飯不思,廢寢忘食,但它不僅不讓人覺得害怕,甚至還有一些欣喜之情混雜其中。也許,正如逆境讓人堅強,苦難讓人成長一樣,Bug就是將程序員百煉成鋼的鐵石,不磨不足以成器!

        不消說,MPC喚不醒,問題就出在自動臨時喚醒后的遙控接收上。自動喚醒期間的遙控接收也很簡單,先讓MCU進入一個以內部時鐘為系統時鐘的模式,然后設置一個輸入捕捉模塊和計時器,上升沿觸發中斷,通過計時器統計兩次中斷間的時間間隔,判斷上升沿之間的位寬,進一步判斷位寬是否滿足遙控協議規格。在2ms內判斷是否存在若干滿足規格的位寬,以確定是否通過第一級濾波,之后還有兩級濾波,保證既可以被有效鑰匙及時喚醒,又不會被外界干擾錯誤喚醒。

        為了定位問題究竟出在這三級濾波的哪一級上,我添加了一點測試程序,通過第一級濾波就點亮一個led燈。

        雖然led燈提供不了多少信息,但是它就像前進之路上的明燈,可以明明白白地告訴我們:系統還活著!

        結果發現,第一級濾波都能沒過去,這說明這個2ms內輸入捕捉模塊似乎沒有工作起來。

        輸入捕捉模塊以系統時鐘分頻出的1MHz為時鐘源,臨時喚醒模式下,為了保證休眠電流滿足產品規范要求,選擇了內部時鐘(16MHz)為系統時鐘,正常模式下是以外部晶振+PLL做為系統時鐘的,一念至此,我試探性地將臨時喚醒模式下的系統時鐘源改為外部晶振,下載程序之后一看,居然喚醒了,同樣的程序燒錄到SPC的板子上,也可以正常喚醒!

        一股欣喜之情直沖腦門,濃濃的喜悅在心底蕩漾不已,我如釋重負地站起身來,外面的月色更加皎潔了,夜色愈加地深沉,它帶走了一切喧囂,將寧靜和空曠播撒在這塊大地上。

        我伸了個懶腰,正準備走人之際,倒霉催地忽然想看看改過時鐘源之后的休眠電流如何,話不多說,我設置好休眠條件,摒心靜氣地等著產品進入休眠,滴答,滴答,我仿佛聽得到墻上的時鐘走動的聲音,決定命運的時刻越來越近了,我仿佛又聽到了自己心跳的聲音,‘砰’,‘砰,‘砰’,‘梆’,我的一顆心掉到了地上,休眠電流上來1.5mA左右,比產品規范要求多出來0.5mA左右。

        4

        今夜注定無眠!誰讓自己高興太早來著!

        電流怎么上來的?我敏銳地意識到是外部晶振的起振時間問題,內部時鐘就是個RC電路,啟動時間很快,但是外部石英晶體形式的晶振就不同了,我查了查數據手冊,手冊中給出的外部晶振最大起振時間6ms,沒有給出典型值,我又翻到同樣是飛思卡爾MCU芯片的S32K1xx上,上面給出的起振時間是2.5ms。

        答案已經呼之欲出了,起振穩定時間2.5ms,再加上第一級濾波的2ms,臨時喚醒時間從之前的2ms多一點一下子提高到了4.5ms以上,電流不上去才怪!

        既然休眠電流是睡眠時間和臨時喚醒時間的比例決定,如今臨時喚醒時間翻倍,只需要將睡眠時間翻倍就可以了,看了看遙控報文發送機制,每次至少發三條報文,每條100ms,睡眠時間從40ms調高到80ms,也不會出現漏掉檢測機會的情況,按照這種思路,如此這般改了改,休眠電流終于下來了。

        看來MPC的內部時鐘和SPC的內部時鐘還是多少有點區別,外部晶振上倒是一致。但是這種區別是怎么產生的呢?我抱著試試看的心情,改回采用內部時鐘的方式,同時將第一級濾波喚醒時間從2ms改成4ms,并修改了有效位數的判定閾值,結果發現,使用MPC芯片的板子也能喚醒了!

        奇哉怪哉!之前有效位數是按照2ms設定的,MPC一個也捕捉不到,現在按照4ms設定了,MPC全都能捕捉到了,好像這4ms中的頭2ms也能正常接收一樣。以我淺顯的認識,唯一的解釋就是MPC的輸入捕捉模塊在“40ms睡眠-2ms喚醒-40ms睡眠-2ms喚醒。。。?!边@種內部時鐘快節奏關閉和開啟下的power on和power down有點問題,不過它可以接受“80ms睡眠-4ms喚醒-80ms睡眠-4ms喚醒。。。?!边@樣的節奏。那么,這種“現象”背后的機制是什么呢?

        是不是兩家的處理器內部設計也不一樣?時鐘樹、供電網絡都有差別,內部IR壓降、電磁耦合等問題造成即便通過了制造工藝的簽核步驟,也會在芯片生產出來后出現問題?當然這種解釋過于淺顯、隨意,這種表現應該有著更加深層的背景和原因,但是再往深了分析,就絕非我的能力所能窺見的了。在此仰拜高手作答!

        后記

        嵌入式產品要求嚴格,換芯片茲事體大,萬萬不要相信管腳兼容這種廣告式的營銷用語,經此教訓,我深刻地體會到:管腳兼容是謊話,總有一點小偏差。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海门市| 长垣县| 濮阳市| 西吉县| 张掖市| 荆门市| 涟水县| 钟山县| 黑龙江省| 邛崃市| 香河县| 固安县| 龙井市| 武夷山市| 隆安县| 北碚区| 玉溪市| 简阳市| 汝阳县| 新郑市| 锦州市| 疏附县| 开封县| 石景山区| 图木舒克市| 广灵县| 鹤山市| 辽阳县| 独山县| 进贤县| 南木林县| 岳西县| 巴南区| 昌江| 驻马店市| 嘉义市| 吴忠市| 贵南县| 五峰| 鄂尔多斯市| 拉孜县|