以前啊...或是說幾年前啊..


一般MCU(尤其是台製的!),要產生一些系統應用周邊介面時,像是SPI..I2C...或是PWM等!


都是很辛苦的...因為台灣這些IC設計公司都有點過份的CostDown...


他們的MCU都不提供這些介面!


然後呢?!...就拗工程師們利用一般I/O 搭配僅有的 Timer 啊...


硬是要搞出一個PWM或是I/O 型的UART....!


而且因為要搶執行效能(因為台製的MCU就算是OTP...他們的執行效能也都侷限在16 MHz以下,


甚至只有8 MHz 而已!),所以,堅決要求工程師們用組合語言寫程式...


這也不能怪這些老闆或是工程師們...這畢竟是死馬當活馬醫的『權衡之計』啊!


因為很簡單...就是便宜啊-----這是所有這些人嘴巴講出來的藉口!


所以,往往這種現象就是發生在一些量比較少,或是一時緊急需求的案例!


只好從一些比較成熟,而大家比較熟悉的MCU去搞這些啊...


像是8051 硬是要從Timer 中去擠出一些PWM 應用功能...


----


但是呢?!...以真正的一些標準大宗應用市場呢?!或是以目前IC晶圓技術來說...


應該還是講求所謂的 ASSP IC ,就是儘量的包進一些系統應用周邊回路!


之前,在部落格裡有舉例過...現在因為大家儘量走高階晶圓代工,


所以以IC設計來說...


要達到一定的經濟規模來說:可能要進塞一些回路以達到Core Limit/與Pad Limit 平衡!


所以啊....這幾年來:國外這些MCU 大廠...也都盡量在一些MCU裡塞一些所謂的 I2C/SPI...等回路!


因為他們就是以大角度的市場分析來看:從晶圓代工到市場操作...


我MCU量越大,我就可爭取更好的晶圓代工條件...我就又可以提高MCU與豐富MCU周邊支援!


就算價格比一般台製高一點...但人家卻可以支援比較豐富的應用條件...縮短系統應用開發時間!


都是在在的顯示市場操作條件之不同的思維模式!


----


如果大家還體會不到這樣子的應用感覺的話...我就舉一個簡單的範例:


之前我有舉過那個三相馬達應用的例子嗎?!...有提過有關用軟體造PWM之系統瓶頸嗎?!


...


大家可以想像一下:如果您要用一般MCU 的軟體造PWM...您可以"ㄍㄧㄥ"到多快?!


這一點就不必再一次強調了。...也更不用說:您用組合語言要花多少時間整理排序您的Timer...


這些辛苦的工作...換來的....只是被客戶吐嘈一句:您的系統跑起來怪怪的哩!


(結果呢?!一棵小小的MCU 才幾K的ROM Size 就被這些指令快擠爆了!)


但是呢?...如果您是用那些直接支援周邊回路的ASSP MCU呢?!...


...


void PCA_Init()
{
   PCA0CN    = 0x00;        // PCA Counter/Timer enabled.
    PCA0MD    = 0x08;        // PCA Timebase Input Options:
                                             // 0x00 : System clock divided by 12
                                            // 0x02 : System clock divided by 4
                                           // 0x04 : Timer 0 overflow
                                          // 0x08 : SYSCLK
                               
    PCA0CPM0  = 0x42;        // PWM Enable, Comparator Function Enable.
    // Configure initial PWM duty cycle = 30%
    PCA0CPH0 = 256 - (256 * 0.3);



    PCA0CPM1  = 0x42;        // PWM Enable, Comparator Function Enable.
    // Configure initial PWM duty cycle = 70%
    PCA0CPH1 = 256 - (256 * 0.7);


    PCA0CPM2  = 0x42;        // PWM Enable, Comparator Function Enable.
    // Configure initial PWM duty cycle = 50%
    PCA0CPH2 = 256 - (256 * 0.5);


   // Start PCA counter
   CR = 1;


}
...


您看就不到十個指令...還是用C寫的...答案一目了然....


結果我們從示波器看結果:



就是三組 分別為30% 、50%及70% 的PWM訊號...


這不就是現在所謂講求IC 設計評價化與平易近人的作法嗎?!...


您還要養多少工程師?!請工程師花多少時間來熟悉您的MCU啊?!


...


------


       我為什麼要提這樣子的例子呢?!...因為上回我有提過:...


您是要賣零件呢?!還是要賣技術(系統應用整合技術?!)...


您哪有那麼多時間在玩這些小細節呢?!...人家IC賣給您,就是要讓您簡單上手啊...


您搞了老半天還不能出貨?!...還想賣零件賺錢?!...搞不懂呢....


更何況...人家IC零件賣給您...也會賣給大陸人...那您自認您自己的價值在哪?!


>>>>


這是上回去大陸出差時,在機場巧遇一位昔日IC 設計大公司的大業務...


人家很關心的問一下以前我在玩那個多核心的觀點...


當然,解釋起來就是前述那種類似系統應用的看法....結果:這位資深的大業務只說了一句:


人家開IC,目的就是出大量,賺錢啊...人家客戶要什麼?!...就直接開一棵給客戶就對了。


還要客戶用MCU寫什麼介面?! ...根本在害客戶而不是在幫客戶!


>>>


剎那間有點提醐灌頂...對啊...人家現在搞電子的價值...應該要提升到系統整合價值...


我們以系統觀點來看:我們的技術門檻應該不是用哪一家的IC?!...


而是我們用IC兜出怎樣價值的系統....


因為現在連客戶都很精了!


 他們都跟您說:您就用哪家IC啊~或是哪家IC啊...就好了啊!


我都說:您都知道誰的IC...那幹嘛還找我啊?! ...


他們還煞有其事的說:....當然還是要看我們可以從系統應用觀點可以創造出怎樣的價值啊!


----


下回,我在舉一個例子來說明這樣子的觀點!


 


 


 

arrow
arrow
    全站熱搜

    賈老師的真老公 發表在 痞客邦 留言(4) 人氣()