2023年8月1日 星期二

老工程師的技術生活(十五) --- 一個模組板省錢方法

一般要學新的MCU 或相關開發工具平台最快的方法就是拿原廠的EV 板子平台切入。

而自從Arduino 這樣的市場產品出現後,不管你是做哪一種MCU 或是相關的周邊

電子零組件廠的,也不用管你公司有多大?你的產品有多先進或多高科技?

大家就照著 Arduino 的公版腳位出EV 平台PCB 版就對了,就連Arduino 自己也知道,

那怕他們現在再推出新一代的產品平台,也擺脫不了這樣的規範標準了。😂😂😂 

沒辦法,這個就是一種市場導向啊,你說這樣子的市場不大?這樣子的PCB 電路板的

設計也沒有符合真正產品設計的標準?但他也畢竟是一個切入市場推廣的好平台啊。

而對使用者來說呢?這樣一塊EV 板子就只有大該台幣三~五百元,還蠻物超所值的,

尤其像STM 或其他MCU EV 板子來說:板子上面還附贈你一塊STlink 或是相關下載

工具版,也還蠻合算的,EV 版玩到不想玩,還可以裁下來就成了另一套ST-Link ,

而一般玩MCU 平台最簡單也最快,也是最基礎的就是簡單的UI 介面:顯示(包括LED 或

LCD 等)、Keyboard 按鍵輸入等。所以我就發現:像STM32 的  Nucleo-64 EV 平台一開始

都會說明這樣的範例程式:


他就是使用別人家的顯示帶Key IO 的模組板:Adafruit 1.8" TFT Shield。

但很可惜這一塊模組板,已經停產且沒銷售了。官方新版是 V2.0 版

ST原廠這份說明書內所指的是 Adafruit 1.8" TFT Shield V1 版的。或是所提供的

範例程式,也是以這個V1 版為主。兩者的最大差異就在按鍵的處理方式: 

V1 版是用一組 ADC (Arduino A3) 來讀按鍵值;(這個方法稍後介紹一下)

而 V2 版是透過一顆MCU 幫你轉成 I2C 方式來讀按鍵值。

所以如果你想跑一下這個範例程式的話,就只能重新修改一下原廠的範例程式。

不過,你不擔心:網路上也有人碰過類似的問題,人家已經幫你修改完畢了,

你可以參考看看:1.8" Color TFT shield V2 -vs- V1

只能說:網路世界裡無遠弗界,甚麼人都有,我才說現在要搞這種技術問題,真的

不用太擔心,這些都只是很基礎的問題而已。但如果你不想改呢?那就自己想辦法

生一塊Adafruit 1.8" TFT Shield V1 版出來。反正人家也有公布這一片板子的電路圖。

只要照著做就可以了。剛好這一種作法對於我這一種喜歡動手DIY 老工程師來說,

也沒差啦。所以我就用手邊的零件來試試看:

另外要說明的是:因為標準的 Arduino 的MCU 平台的IO 是 5V 的,所以一般其他的擴充版

上也都會留意這一點,也會順便加上一顆邏輯準位轉換 IC的。不過,因為 Nucleo-64 本身

就是 3.3V 環境, SD Card 或 TFT 顯示板也都是 3.3V 的工作條件,所以DIY 這一塊板子

就變得比較簡單一下了。


這種簡單的PCB 手動DIY 一下也不難啊。結果也很順利。看看 TFT LCD 顯示內容就知道

這三個顯示、按鍵及SD Card 都是OK 的。(底下就是隨便一片ST 的 Nucleo-64 的EV 板子)

---

接下來我們就透過這一塊 Adafruit 1.8" TFT Shield V1 版及V2 版的差異,來說明一下

技術在產品開發上與相關產品的概念。沒有誰好?誰壞?就是一種生意手法而已。

這兩個版本的主要差異就是V2 版有多加一顆 MCU 處理案件IO 問題。

這一個概念在 Adafruit 的官方網頁上,他就是另一塊模組板的型號:Adafruit SeeSaw

當然加了一顆 MCU 之後,他在產品擴充或產品變化上就提供了另一個活潑的應用機會。

他就是一個產品型號,以我們這種喜歡DIY 又不一定甚麼都得自己弄個硬體 PCB 。

這種擴充模組板:就是迎合DIY Maker 市場。也蠻好玩的一個做法。在技術開發上沒有

多大困難點,主要問題就是零件採購庫存、生產與銷售通路等問題而已。

如果做得好,其實也都不失一個好產品,就像我們之前提到的 FT232 等系列產品一樣

你可以弄一個多組 UART(RS232) 模組或解決方案出來生產銷售。我們以前搞那顆多核心

MCU 的台灣第一個客戶就是利用多核心的架構做出一個多組低速 RS232 橋接界面。

(所謂低速多組RS232 ,就是工業用那一種 9600 Baudrate 以下的應用。)

所以你也可以去想想這一種MCU 的應用市場吧,只要能幫他找到應用市場的核心價值

架構,別人在系統應用可以很簡單的引用就可以了,你也可以參考一下的網頁或他的

相關文件說明就可以了。因為你還是得幫這樣子的產品整理包裝說明的啦。

東西(產品)不是技術作完就沒事了,你還是得幫這些產品附上詳細的規格與使用說明的,

當然就是要做到別人隨隨便便就可以入手使用的,否則後續的技術支援或是客戶服務,

也都是你額外的成本。如果你也不是很想做這些你過去所謂認為的鳥事,那你也可以

花薪水請別人幫你做的。

---

另外我也順便說明一下原來這塊 V1 版在處理按鍵 IO 的處理方式:利用ADC 分壓讀取

多組按鍵的方式。這個早在我二十幾年前做 MP3 SOC 時就已經用過了。

這是原來 V1 版的電路圖。我們可以看到這個按鍵模組的ADC 分壓電路設計。

與其相對應的韌體開發副程式:


這一種利用 ADC 分壓來讀取按鍵的作法,有其方便也有其限制性的問題:

方便之處呢?就是只需要一組 ADC 輸入就可以了。但也不適合切成太細,一般來說:

大概就是四、五個按鍵就行了,太多也不行。

而他最大限制性就是:不能支援多按鍵(組合按鍵的作法)

因為他永遠一次只能讀一個ADC值。所以沒辦法判斷兩個組合按鍵的條件。

分享一下我二十幾年前的作法:

會額外讀一組按鍵,那是拿來做系統喚醒與開機用的。所以這一種音樂撥放器的

按鍵就非常適合這一種設計方式。

他相對應的韌體程式也是類似的:


他的ADC 讀取的底層程式如下:


之所以要 Show 這兩張圖是要說明表示:其實很早以前我們在公司的系統開發上就已經

分工與整合各個部門與相關人員的系統開發工作。上圖左邊的許多 L1 或 L2 函數庫的

建立與開發驗證工作,公司裡都有專人配合 IC 設計部門處理的。我們在應用產品開發上

只要負責上層應用產品與客戶應用界面處理就可以了。就跟現在許多MCU 平台,原廠也

都會提供相關的標準函數庫或是 HAL (Hardware Abstraction Layer) 函數庫等。

不是說:我們不用管那些 L1/L2 的函數庫,我們若在系統應用上碰到瓶頸或問題時,

我們也是會回饋問題點,請相關部門或人員處理的。也就是要告訴大家:

早在二、三十年前,我們早就建立這一種在技術開發分工概念,不是說:甚麼技術問題

都要你一個人從頭搞到尾,你就比較厲害?很多技術問題不是我們沒辦法面對或處理。

而是真的沒時間,也沒必要的浪費自己寶貴的時間與資源去重複做同樣的事情

只要你夠資深,走過的公司或產品開發經驗一多,自然就不會對許多的技術大驚小怪了。

你說現在從事這樣的系統開發工作方不方便?談白講啦,現在電子產品的拜MCU 運算

與擴充能力來說,產品系統只會越來越複雜,像以前我們剛入門時那一種隨隨便便寫個

簡單的 I/O 或一些時序邏輯控制,大概就有一些產品或生意就可以做了。相對來說:

越是核心或是基礎技術概念大多都回到原廠或是相關模組開發商手上了。我們在系統上

所要做的也只不過像我以前那樣子整合大公司內部資源所做的事而已。

當然啊,對老闆來說:你們要怎麼架構這些開發環境?或是要採用怎樣的開發平台?

他真的不在乎,也不太關心的啦~只要你們方便快速,而且也不用花公司太多人事或材料

成本就可以了。這一點有許多搞技術的工程師或基層主管,有時都會因為這種事情,

非常不諒解老闆,也覺得老闆都只是出一張嘴而已。那只是每個人的看事情的角度不同,

而人家現在許多解決方案平台,也懂得這種觀念落差,所以誰能提供這種開發平台服務的,

誰就比較有機會切入市場的。市場競爭的結果,工程師講太多屁話也沒啥建設性啊。

而你所要認知與學習的觀點差別在哪?

就是你要如何從產品應用市場或是客戶需求來整合你所要的資源而已。而你對於這樣的

資源所能掌握的資源有多少?可能就決定你所能存活的條件了。不管是領薪水上班或創業。

譬如:客戶所委託的產品除了你核心專業知識以外,你還可不可以提供配套的系統支援

工具?譬如系統驗證測試或生產工具平台,你總不能說:你把你的核心專業包成一個

黑盒子,然後就丟給客人自己驗證測試,出了問題或是造成客戶在生產管理或是客戶市場

服務支援上困擾時,你還反過來怪客人不懂技術?一個小小的委託案,要求這麼多?

是個"奧客"?真的是這樣子嗎?就跟你碰我這次所需要的一塊TFT LCD shield 板一樣,

人家已經停產不賣了, ST 原廠又不配合更新支援新版的TFT LCD shield 板,幸好我們

還懂得 DIY 生一片出來,要不然你對兩家供應商來說:就為了你這麼小小的一要求,

人家還非得配合你不可嗎?那你自己不就也成為人家口中的"奧客"嗎?

所以我現在年紀大一點了,人生歷練也多一點了。如果還要跟著涉世不深的"奧客"整天

抱怨這個?抱怨那個的?何苦呢。

天下之大與未來日子還要過的情形下,就多想想自己要如何面對與克服自己所掌握的

資源不足的地方努力。反正也不是我們在技術開發能力上不足,而是如何讓自己跟市場

客戶之間的良性互動或是找到一個屬於自己可以發揮並輕鬆變現的方法。

其他的~只要你自己走過或看多了,自然就比較能隨遇而安了吧。

分享給各位,也祝福各位都可以順利的找到屬於自己的一片天地吧。

6 則留言:

  1. 功能展示是很快。我很快拼裝出功能原型,老闆也成功的接下案子。再來就是問題了,我被要求系統Sleep電流不可超過0.1mA,這個不光是電路問題,還要考驗軟體的省電管理。這個我都處理好了。但時程...客戶要求接案到交機只有三個月。沒有前案程式可以拿來用,老闆又弄了一堆新元件。光是我弄好新元件驅動已過二個半月。然後老闆竟然說二週後我不交機就要扣住我薪水,我就和老闆翻臉,直接丟辭呈,但我會做完這個案子。中間還寫爆MCU,又重新換MCU,第五個月我交機出去了。同時老闆和我說公司要收了。老闆也是有壓力,但和案子無關的事不要出氣在我身上啊! 我還做了變速省電,這個客戶是不會關心。不過這些技術可能我無法到下一家公司用。離開最後一天我有簽競業條款,前老闆現在沒事在家可能在看我有沒有就業用這些MCU技術,要是被抓到可以罰我一百萬。我在想要不要先轉非技術工作等時間過了才能再回技術。這次弄得連我老婆都生氣了,連本業都要封閉一年,收入大減。

    回覆刪除
  2. 能力不足就去創業,然後公司倒了,一堆朋友反目成仇,我還被盯上(因為我是唯一沒有入股的)。然後現在回頭看,前老闆連公司要如何獲利都沒有搞清楚。市場也沒有評估好,公司金流也沒有弄好。前老闆也是日以繼夜的在弄技術。我以為他有管理好,結果沒有,只是花時間在趕技術。一個很典型的工程師創業失敗。

    回覆刪除
  3. 公司收了才知道帳有問題,這是反目成仇的原因。創業對於會計要有點概念。前老闆以前都待大公司研發,對金錢使用的概念不是很好。沒資金又亂縮。然後管理就更亂。

    回覆刪除
  4. 很難過得聽到這樣子的事情。
    不過也驗證了我平常在文章中所一直闡述的現實職場或商場的情節。
    這些都不是我憑空捏造出來的,也都是曾經遇過、看過或聽過的真實故事。

    分析這樣子的故事演進與脈絡。
    第一:就是這兩天也剛好跟好友 @GodSpeed 聊到關於 Open Source 平台
    往往都會造成老闆(客戶) 或工程團隊一個美好的錯覺:是的~我們的確可以
    很快地架設出初步的系統架構,也可以做出一點展示成果出來。
    但這並不代表這個就是大家最終所期待的產品樣子。這就跟我常說的:
    技術會做,也只不過代表產品完成的 30 %,甚至更低的百分比而已。
    因為後續還要產品驗證測試平台工具與生產製造治具等等。你接了案子,
    要做到甚麼地步?該收多少百分比的款項?你抓得準嗎?
    產品沒放量生產製造,老闆與客人都是雙輸的啦。大家吵到最後都沒飯吃了。
    該怪誰?現實的問題就是誰還有錢?誰就繼續玩啊。沒錢的就Say Goodbye !

    第二、 至於那個甚麼競業條款的問題,如果他公司收了,也就沒有所謂法人
    代表了。就跟有股份有限公司一樣,公司玩到沒錢,就是沒錢收了,董事長
    家裡就算還有家財萬貫,也不用自己掏腰包出來賠的啦。公司法人歸公司法人。
    所以你還是要搞清楚一點:他要用甚麼名義告你?你簽的是與公司法人關係。
    又不是跟老闆個人法律問題?另外,說真的啦,要告這一種競業條款,以後
    在法律攻防上,真的很難舉證說明的啦。以前我在園區也看多了,頂多就是
    拿出來嚇嚇工程師的啦。工程師又沒錢...人家之所以會拿這種東西出來是:
    因為工程師跳槽,跑到競爭對手去,造成原公司利益受損。要嚇嚇對方公司
    的啦(因為就是競爭對手啊)。很多都是私底下談談就算了...真的玩起來,
    最後錢都會被律師賺走的啦。
    當然這也是告誡我們工程師們:有些技術玩玩,還是要多留意一下技術以外
    的東西,平常也要多懂一點技術以外的東西,來保護一下自己的啦。
    像我自己一樣:不做車用電子,我又不會餓死,有些技術或產品市場,
    除非真的是自己掌握客戶與市場,否則啦,就算你自己當老闆接案子,
    有些領域涉入太深就容易衍生類似的問題。沒有說一定不行,就是會搞到
    你很煩的啦。

    最後,還是奉勸一下諸位工程師們,尤其是像這一種只是一頭熱的自認為
    自己技術多了得的工程師老闆們:公司財務與資源管理永遠是你創業的
    首要功課,不是你技術拿出來擺在桌上,就代表有多少價值?這個價值
    不用這麼辛苦地接案子來證明自己,有本事就是去跟投資法人說。
    像這樣子搞到最後:賠了夫人又折兵。
    自己掏腰包,又辛苦投入技術開發,以為東西產品賣了以後,錢全都自己
    賺了爽歪歪...看看人家張忠謀只佔了tsmc 小小不到 1% 股權,一樣又有錢
    又有好名聲。技術越好、觀念要更好:市場是大家努力創造出來的,
    錢要分一點給別人賺,自己才能有美好的技術人生啊。

    回覆刪除
    回覆
    1. 我被盯上不主要是錢的問題,前老闆要交代不是他弄倒公司。就將矛頭全指向唯一的員工。就做錯了又不承認護面子。只要有一點點機會他就要我上法院來和其他股東交代,能不能拿到錢不是他主要目標。原以為他年過60做事比較沉穩沒想到格局如此小。

      刪除
    2. 你是股東嗎?還是你擁有多少持股或董監事啊?
      沒有?那就不管你的事,你又不用參加董事會,小股東也沒啥話語權的啦。
      是他要跟出錢的股東(或董監事)交代,又不是你。
      如果我是他的董監事,我會問他說:公司是你在掌管的,我們當然
      唯你是問啊。把經營公司的失敗都推給員工?這算哪門子的企業經營管理?
      那如果這樣也不怪CEO ?那出錢的董監事也只能鼻子摸一摸自認倒楣。
      識人不足啊。
      真的也不用把自己當成那麼偉大啊。萬一你們成功了,你又沒股份可以
      多分一點,激勵獎金也是看老闆心情與臉色給的,那為什麼出事了,
      公司玩不起來就全算你的?這是哪門子的經營管理概念?
      這種人你就不用再理他了啦,董事會(你應該沒資格參加)或股東會也不用
      出席,這在法律上完完全全合法的,他也沒資格要求你。
      喔~我突然想起來了,如果是公司你因為公司收了,而被遣散的,
      在勞基法上:你是可以要求遣散費的,而且你還可以要求公司出具
      非自願離職證明,你還可以拿這張去申請半年的失業勞工補助的。
      ...當你去跟他要這些時,他自然就會乖乖跟你談的啦。不談也可以:
      你可以去政府機關勞工處申訴,由勞工處出面協調處理,
      放心好了,現在公務機關也很乖的啦,只要民眾申訴就會立案追蹤,
      自然就會有人幫你出面的。---- 我小姨子在市政府勞工處服務,
      這些我都很清楚的啦。真的不用怕他的啦...
      只有員工一人,又怎樣?我沒有繳勞保嗎?如果沒有,那老闆也會
      有問題的啦。既然有繳勞保,自然就有你的權利,不要讓你的權利
      受損了。工程師不要以為人生就只有寫程式、弄產品研發而已。
      去接觸一下這些東西,以後你會懂很多事情的啦。
      上法院打官司?沒那麼簡單容易的啦。你會找律師,我就不會找嗎?
      這根本不用理他,只要他去找律師,肯定會被噹回去的啦。
      你還是多想想你的下一步要怎麼走比較重要吧,他六十幾了,
      你還年輕,光這一點你就贏他多了啦。
      加油吧。

      刪除