嵌入式系統開發7: 閱讀 Datasheet

更新於 發佈於 閱讀時間約 6 分鐘

閱讀數據表(Datasheet)

在產品開發的過程中,面對發佈壓力,往往會讓我們無法慢下來仔細閱讀元件的數據表、手冊以及應用說明。更糟糕的是,儘管我們可能已經翻遍了這些文件,卻發現什麼也沒記住,因為這些文件中的專業術語對我們來說就像外語一樣陌生。而當我們的程式無法運作時,便會忍不住抱怨硬體出了問題。

對於軟體工程師來說,可以將每個芯片視作一個單獨的軟體庫。例如,你需要花費多少時間來學習一個軟體庫(如 Qt、OpenCV、Zephyr、Unity 或 TensorFlow)?同樣的時間大約也是你熟悉處理器及其外設所需要的時間。處理器甚至有類似 API 的方法來與外設進行通信。和軟體庫一樣,你通常只需閱讀文檔的一部分便能開始工作,但最好的做法是先知道哪些部分最重要,避免無意中陷入不必要的細節中。

數據表就像是外設的 API 手冊。確保你擁有最新版本的數據表(可以檢查製造商的網站或進行在線搜尋)。接下來,我將告訴你該重點閱讀哪些部分,又有哪些部分可以等到需要時再看。

硬體元件數據表的基本概念

硬體元件由其數據表來描述,而數據表常常充滿了密集的信息,令人望而卻步。閱讀數據表是一門藝術,這需要經驗和耐心。首先要了解的是,數據表並不是為你而寫的,而是為電氣工程師寫的,更確切地說,是為那些已經熟悉這個元件或類似元件的電氣工程師準備的。

某種程度上,閱讀數據表就像進入了一場技術對話的中途。比方說,如果你已經熟悉了三到四個加速計或類似的元件,那麼當你面對下一個元件時,便可以只讀其概述部分,迅速了解這個元件和你以往的經驗有何不同。但如果你是個新手,數據表可能就顯得過於簡略了,並且往往假設讀者已經有一定的背景知識。

因此,在閱讀數據表時,概述部分可以跳過(或者至少稍後再看)。相較於概述,描述部分更值得關注。它通常占據數據表的前幾頁,密集而精煉,是理解這個元件的關鍵部分。你應該詳細閱讀這段描述,甚至可以大聲讀出來,畫出重要信息,或者試著向別人解釋這些內容。

數據表中需要注意的部分

閱讀數據表時,應注意哪些部分可以忽略,而哪些部分則是關鍵。以下幾個部分通常在第一遍閱讀時可以跳過,但當出現問題時,它們可能會提供解決方案:

  • 引腳分佈圖:當你進行故障排除時,如果需要探測芯片的某些引腳,這部分資料就變得至關重要。引腳分佈圖提供了每個引腳的功能和狀態,特別是那些使用 NAME 或加有修飾符的引腳,可能表示低電平有效信號。
  • 性能特徵:這些表格和圖表詳細描述了元件的性能特徵。在第一次閱讀時,這些信息可能顯得過於細節化,但當你遇到元件無法正常運作時,這些數據可以幫助你確認是否存在溫度或電壓問題。
  • 樣本電路圖:這些樣本電路圖可以與驅動代碼類比,當元件出現問題時,檢查樣本電路圖是否與你的實際電路相匹配,這有助於發現潛在的設計問題。

實例分析

例如,假設你在使用一個新型加速計,但發現它在某些情況下數據讀取不穩定。你可以查看數據表中的性能特徵部分,可能會發現該加速計的精度在一定電壓範圍之外會下降,這可能是問題的根源。同樣,當你遇到引腳信號異常時,查閱引腳分佈圖可以幫助你確認信號的高低電平是否符合預期,從而進一步進行排查。

總的來說,閱讀數據表並不是一件簡單的事情,它需要耐心和對細節的關注。但是,掌握這項技能對於解決硬件與軟件之間的問題是至關重要的,這將幫助你在開發過程中更快地找到解決方案並提升產品質量。


適用於軟體開發者的數據表部分

最終,在數據表的中途,你會遇到一些文本,標題可能是「應用資訊」或「操作原理」。或者,數據表可能會從表格和圖表轉換為文本和示意圖。這部分就是你需要開始詳細閱讀的地方。雖然可以先略讀以找出你所需要的資訊位置,但最後還是要從頭到尾細讀這部分。作為額外的好處,這裡的文本可能會連結到一些有價值的應用說明和用戶手冊。

閱讀這部分數據表時,應該思考如何在你的系統中實現這個元件的驅動。它如何通信?如何初始化?你的軟體需要做什麼才能有效使用該元件?是否有嚴格的時間要求?你的處理器能夠處理這些要求嗎?

分析數據表對程式碼的影響

在閱讀數據表的過程中,標記可能會影響程式碼的部分,這樣你可以稍後回到這些部分進行深入研究。時間圖是很好的停頓點,讓你可以喘口氣並消化信息。時間圖可以幫助你將文本與預期實現結合起來。例如,這些圖表會顯示信號的變化順序及其時間間隔,這對於處理和協調硬體與軟體之間的通信至關重要。

此外,確保你擁有該元件的最新數據表,並檢查製造商的網站是否有 errata(勘誤表),這會提供數據表中的錯誤更正。勘誤表可能針對數據表中的錯誤或元件本身的缺陷。大多數元件都會有某種類型的勘誤,這些錯誤有時候會直接影響你對驅動的實現。

開發驅動的過程

當你完成數據表的閱讀並開始編寫驅動時,通常會發現需要反覆回顧數據表的某些部分。最常見的流程是先實現與芯片的接口,再進一步開發通信方法,最後實際使用芯片。在這個過程中,你可能需要重新閱讀數據表,以便更好地理解芯片的特性及其在不同情況下的行為。

這是一個需要耐心的過程,像烏龜和兔子賽跑一樣,耐心細讀才能更好地掌握這些資訊。一旦驅動程式完成並且運行正常,你可以再回到數據表的頂部閱讀功能摘要,因為此時你已經熟悉了該類型的元件,對摘要部分的理解也會更深。

即使如此,在處理類似的元件時,你仍然需要重新閱讀數據表的某些部分。不過,經驗的積累會讓你更快速地掌握關鍵資訊,並且你會發現數據表首頁的摘要提供了更多的幫助。

其他資源

在處理外設時,還有其他資源可以幫助你更好地使用元件:

  • 如果芯片有用戶手冊,一定要查看它。
  • 應用說明 通常會提供具體的使用案例,這些案例往往伴隨有廠商提供的示例程式碼。還可以搜尋廠商的代碼庫。
  • 可以在 GitHub 或網絡上搜尋該元件的相關信息。其他開發者的示例程式碼可以為你提供參考,展示應該如何正確使用該元件。

在深入研究之前,先環顧四周,答案可能就在你還未發現的地方。例如,你在使用某款晶片時遇到的問題,可能其他開發者也遇到過,他們的經驗與解決方案將大大減少你的探索時間。

留言
avatar-img
留言分享你的想法!
avatar-img
Will 進步本
5會員
240內容數
歡迎來到「Will 進步本」!我們將探索計算機科學、商用英文和生成式AI。從基礎到前沿,共同學習和交流,拓展知識視野,啟發創新思維
Will 進步本的其他內容
2024/08/28
評估元件時使用數據表的步驟 評估元件是一項進階技能,通常是你在實現系統的驅動程序之後才會培養的能力。
2024/08/28
評估元件時使用數據表的步驟 評估元件是一項進階技能,通常是你在實現系統的驅動程序之後才會培養的能力。
2024/08/26
電壓與電流 我們測量電量時使用電壓和電流,但這兩者都源於更基本的物理原理。
Thumbnail
2024/08/26
電壓與電流 我們測量電量時使用電壓和電流,但這兩者都源於更基本的物理原理。
Thumbnail
2024/08/24
設計變更的應對策略 當我們手中已有了不同的架構圖時,下一步該如何進行?
Thumbnail
2024/08/24
設計變更的應對策略 當我們手中已有了不同的架構圖時,下一步該如何進行?
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
註解 & Print & 變數型態
Thumbnail
註解 & Print & 變數型態
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
本文整理了有關技術文件寫作的重要觀念,包括 docs as a product、內容優先,並說明如何構思文件架構。
Thumbnail
本文整理了有關技術文件寫作的重要觀念,包括 docs as a product、內容優先,並說明如何構思文件架構。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News