顯示具有 單晶片 標籤的文章。 顯示所有文章
顯示具有 單晶片 標籤的文章。 顯示所有文章

2020年11月23日 星期一

充電一下 -- 安裝 E1 Emulator遇到 [Renesas E-Series USB Driver 驅動程式並不預期在這個平台上工作] 的問題

 這是一個非常令人沮喪的問題

最終也是令人十分振奮的結果

故事是這樣子的:

============================================================

因為系統不斷更新且新裝置對電腦的要求越來越高

公司裡在經過幾輪的電腦更換後

發生了 E1 下載器無法安裝的問題

在瑞薩官網下載了 E1USBDRIVER.exe 進行安裝

卻無論如何都無法安裝成功

安裝好 USB driver 後將 E1 接上電腦

最後總是出現 Renesas Emulator (無法辨識) 的裝置

不管重新插拔裝置或是改變安裝流程(先插E1再安裝驅動程式)

都無法改變 <<Renesas Emulator (無法辨識) 的裝置>> 這個結果

網路上有人說是裝置衝突

也有人說是BIOS版本問題

更有人說是安裝了虛擬光碟的緣故

可是都跟我的故障原因一點關係也沾不上邊

官網也找不到有人討論這樣的問題

只好自己想辦法

============================================================

先假設因為官方提供的驅動程式版本太新

導致我的 E1 無法被新版本的驅動程式辨別

那麼改用舊版本的驅動程式是不是可以呢?

找了一下電腦裡 Program Files (x86)\Renesas\ 資料夾內

還有一個 FDT4.09 的資料夾

這是瑞薩的官方燒錄軟體

裡面有個 Drivers\for_64bit 的資料夾

竟然就是 E1 舊版本的驅動程式

於是我就直接從這裡重新安裝驅動程式 (執行dpinst.exe)

發現竟然安裝成功了!

本來開心地以為 E1 已經安裝好了

但是到裝置管理員查看時發現

還是 <<Renesas Emulator (無法辨識) 的裝置>> 這個結果

============================================================

我不信邪 (我姓李 Xp)

用了 Driver Booster 這套工具

將所有 Renesas USB 裝置資料全部清除

然後又重新安裝了 Program Files (x86)\Renesas\FDT4.09\driver\for 64bit\dpinst.exe

這一次依然是顯示安裝成功的訊息

但不一樣的是:

系統竟然找到了 E1 並真的安裝成功

我找了片有 RX62T MCU 的板子進行下載

HEW環境提示我 E1 的韌體版本太舊需要更新

更新後就是活龍一尾啦!

可喜可賀~~

============================================================

雖然只有短短幾行文字

卻是奮戰一整個上午的結果 (約三~四小時)

如果有人跟我遇到一樣的問題

希望能幫你縮短一些除錯的時間

讓你的 E1 早日復活


2013年3月11日 星期一

MCU -- 戰利品

1977649521



去年花很多時間在嘗試新東西

這些是比較偏官方的板子

私下買的就不放上來了......



上排都是瑞薩的板子

由左到右分別是RX62N、RX62T、RL78

其中RL78不是32位元的產品

是NEC併入瑞薩後的新產品



下排是ARM陣營的板子

由左到右是freescale、ST、NXP三大廠



要說到對板子的熟悉度

ARM系列應該就屬ST算稍微熟一點

因為他在市場上的產品最多元

價格也最漂亮

很多3C手持式產品的主架構都是它

我手上有人稱的葉問板, 詠春板, 奮鬥板, 野火板......

而這些有的沒的板通通都是M3的架構

只是差在IO數不同

連接的周邊不同

核心是完全一樣的



但或許是ARM實在太夯了

公司裡反而不傾向使用這種夯到爆的產品線

那在某種程度上等於告訴大家可以照著抄的意思

因此目前都只是研究他的架構跟控制原理

在其它家的MCU上去實現



然而還能抗拒ARM多久並不曉得

隨著MCU周邊的複雜化

多元的人機介面與通訊

讓MCU同時要做的事越來越多

價格又要好,上市又要快,體積又要小,性能要穩定

這並不是一個從無到有的MCU可以輕鬆辦到的

只有越多人用且範例與應用夠多的MCU才有辦法做到

而ARM就是挾帶著這樣的趨勢在壯大中



換個角度思考

如果我們的產品

不需要價格比人好

不需要上市比人快

不需要體積比人小

只要夠穩定且不易被取代

選擇哪一家的MCU似乎都不是問題

因為在這個時代的新MCU製程都很恐怖

性能也都很震撼

只剩下跨過使用門檻花不花時間的問題而已



電子產品的春天

並不在生產多快

也不在數量多大

而是這個產品的使用夠不夠簡單直覺

創意親不親民,新不新鮮

如此而已......



越花俏的東西往往生命週期越短

實在一點比較走得長遠~~

2009年5月5日 星期二

MCU -- Renesas 的龍頭策略

目前MCU市佔率世界排名第一的瑞薩科技(Renesas)

已經與NEC合併

更加鞏固自己在MCU界的龍頭地位

然而Renesas的MCU到底有何吸引人的地方?



在小弟實際使用過後

這才發現Renesas深植人心的行銷策略

**************************************************************************



1. 產品兼具功能導向及應用彈性



使用單晶片的人都曉得MCU的內部架構

不外乎記憶體, 計時器, 數位類比間轉換, 通訊功能, IO點, 指令集等規劃

要做馬達控制, 先得了解馬達的動作原理

要做溫濕度量測, 先得了解溫濕度感測器的工作方式

要做LED亮度控制, 先得了解LED是怎麼變亮變暗的.....



對一個不會寫程式的人來說

又或者對控制理論不懂的人來說

這是選用MCU時最大的顧慮



萬一投入那麼多的精力去學MCU

可是到最後還是做不出想要的成品

那不是很嘔?



所以如果要使用在特定場合時

一定會先問有沒有專用IC (成本低, 時效高)

再問有沒有MCU的應用範例

這就叫功能導向



再來

如果有了應用範例

甚至找到了專用IC

可是受限於硬體設計

而調不出自己想要的特性

那就更嘔了!!

所以除了功能導向還必須兼備很高的彈性

讓大多數的相關應用都可以相容

不然MCU就只能針對特定市場行銷

大大縮小了戰鬥力.....



Renesas的MCU

就同時兼備了這兩項優點

這是很難能可貴的!!





2. 專人指導,  輕鬆入門



很少見過一家MCU公司經常地派人到府指導

在你對datasheet非常不熟悉的階段

他們會不厭其煩的協助您如何操作

對應的參考資料放在什麼地方

並親自帶著你完成每一個動作~~~

有問題只要發個mail

就可以得到很完整的回應



再者官網上有很多資源提供下載

曾經提到過所有的datasheet中

就屬Renesas的內容寫得最好

不僅僅教會您如何使用MCU

更教會您如何將MCU發揮到極限





3. 低階工具全Free, 開發成本大節省



64K的C編譯器全功能開放

對大多數應用來說

應該跟Free沒有兩樣



Keil C還有4K的限制

超過要付費



Hitec C也有最佳化版本的限制

沒付費只能用效能較差的版本



IAR C根本就必須付費才能用

囧rz.......



再來一個E8A下載工具

搞定所有R8C與M16C的MCU

連H8都通吃

沒道理大家不愛用~~~

重點是

E8A只要申請就幾乎永久免費使用

(雖說是借的, 也跟給的差不多了, 除非您真的都沒在用)



**************************************************************************



最近用了Renesas的MCU後

才深深體會到Renesas在MCU市佔率的龍頭老大

絕非浪得虛名呀!!!



2008年12月16日 星期二

MCU -- ATmega64的怪問題

話說最近在用AVR開發系統

遇到了一些很不可思議的問題

到目前還是無解的狀態

提供給大家參考看看~~~





1. Reset 的不穩定



ATmega64大概是我目前用到過reset最不正常的MCU

或許是因為內部架構太複雜的關係

也或許是我還沒把硬體與軟體完全搞懂的關係

總覺得好像哪裡怪怪的



從一開始用M64

就發現它在reset時有時候會成功

有時又reset不起來!!



由reset信號去觀察

發現reset信號很穩定

因為有用reset IC的緣故

所以0電位有確實拉到0

石英晶體也有起振

但系統就是沒有reset起來



用mkII去reset也OK

獨獨Power_ON reset就是很不順

不曉得是哪裡出了問題??!!



(赫然發現, Arduino所有版本都有用reset key, 難不成是因為這個問題??)





2. EEPROM 之"隨它高興"存取



這是最詭異的問題

抓了整整一天還沒抓到問題



WinAVR有內建eeprom的函式

一個是eeprom_read_word();

另一個是eeprom_write_word();



使用write再用Studio把資料read回來

OK~~~

確定資料都有順利填入



可是一用了read功能

災難就來了

read 0~7的值OK (該Byte的儲存值是0x00~0x07)

read 8~F的值系統就當掉!!! (該Byte的儲存值是0x08~0x0F)

而且不管換到哪一個位址都一樣

這是相當詭異的!!

而且匪夷所思!!!



連老闆也愛莫能助

只說可能是編譯器版本的問題

用免費的開發工具就是有這樣的缺點

Orz........





ps.

剛剛找到一個解決方案

還沒試過

明天來試一下看看

http://lysoft.g4soft.net/article.asp?id=46



ps2.

上面的方案確定可行

不過建議在函式的最後要加上sei();



因為系統所有的中斷資源都被關掉了

如果不恢復

很多動作都會不正常唷~~~



比較快的解決方法是

直接呼叫原來eeprom.h的內建函式

只是呼叫前加上cli();

呼叫後加上sei();

這樣就不會出問題了~~~

(2008/12/17 更新)

2008年12月6日 星期六

MCU -- AVR DATABOOK 1997

手邊有一本很早期的DATABOOK

放一些相片給大家瞧瞧



1977649486

這是書本的正面

簡潔有力

反正就是讓大家知道是AVR就好了



1977649487

Atmel的招牌

標明了1997年出的

都過了十幾年了!!!



1977649488

翻開書的最前面

一樣是廠牌宣告



1977649489

索引的地方

標示了四顆早期在推的MCU型號

最棒的部分

就是把整個指令集都寫在書裡了!!

另外還有開發工具的介紹



1977649490

這就是開發工具的樣子

跟現在小小一台的mkII比起來

真的是壯觀多了!!!





公司裡的第一顆AVR

就是書中所提到的第一個型號AT90S1200

跟AT89C2051一樣

是20pins的DIP包裝

連腳位都幾乎是pin to pin!!

功能也很相近





所以當我剛要學MCU時

我也在猶豫要先投靠哪一邊

後來會投靠51

最重要的因素就是參考資源豐富

不過AVR也一直放在心上

畢竟在硬體架構上

就像前一篇文章提到的

AVR真的比8051好很多





其次就是燒錄工具

在我要切入MCU的當時

已經有比較便宜的燒錄器可以用了

只是沒有USB界面的燒錄器而已

一般都還是LPT埠的燒錄器

而碰巧公司又正開發推出了USB燒錄器(for 8051)

就在我剛進公司的時候

所以順理成章就從8051開始學起~~~





Edison大大問過我很多次

為啥我們對AT89C2051這麼情有獨鍾?

對我來說

它是我的第一個MCU

這樣的說法

或許可以透露出個中的端倪





您對AVR很有興趣嗎?

千萬不要只是有興趣唷~~~

現下很多高精度的儀器

其內部所使用的MCU正是AVR

快點找個有興趣的型號上手吧!!

個人挺推薦Arduino的(雖然還沒入手....^+++++^)

可以試試看唷!!!

2008年12月5日 星期五

MCU -- AVR ATmega64

上次介紹過AVR的蝴蝶套件

這次來談談我最近在忙的板子吧!!



1977649484

ayu大大問我說

我是不是打算用AVR做機器人呀?!

或許會吧!

不過這一片的功能並不是機器人用途的唷~~

是公司裡目前要完成系統的一小部分

名稱是八通道溫度量測器



板子偏右側所卯上的最多腳位的IC

就是ATmega64的MCU

腳位數量剛好就是64隻~~~



由於目前還在測試階段中

所以先賣個關子

但大概可以提一下的是

上面有一個20bits的AD

量電壓目前可以準確到的100uV

換算成溫度

如果選用的感測電阻夠準

溫度是可以準確到0.1C以內的

未來上市還請大家多多捧場~~





1977649485

這個就是傳說中的mkII

早期想學就是沒有這玩意

所以一直都只是看看

現在有工具了

總算可以好好玩一下~~~





話說AVR已經在MCU的世界中行之有年了!!

很多對51失望的人

轉用的MCU中以AVR最為普遍

因為不論在硬體空間

或是IO與中斷的規劃

都超越51太多太多了!!!





可惜的是

在台灣一直沒有正式支援

賣MCU的經銷商很多

卻沒有專屬的FAE或是原廠的工程師在推

會使用AVR的人

多半是已經有MCU底子之後

再自己摸索跳過去的!!!





而AVR之所以會在台灣流行

原因跟Linux一樣

因為它的程式編輯工具光是free的就超好用

(AVR studio + WINAVR)

只要有C概念的人就可以輕鬆上手

如果能熟悉組語

看到精簡的程式碼與強大的硬體支援

沒有不心動的啦!!!

而且連USB的韌體程式

都有高手free丟在網路上供人下載

不需要特地選用搭配USB功能的MCU

只要程式碼一掛就能擁有USB

這就是AVR最讓人驚豔的地方~~~

底下是參考連結

http://www.obdev.at/products/avrusb/index.html







價格上

AVR也是很有競爭性的

只是定位上比較模糊

因為效能上跟DSP還有一段差距

可是拿來當MCU又覺得有點大材小用

或許是我所應用的場合沒有很迫切需要AVR的地方吧

真正用過之後

就是讚不絕口

好用!!!





不過AVR還是有些缺點的

因為系統比51複雜得多

很多設定對剛要使用的人來說

是一個不小的門檻

光是程式編輯界面

就一大堆設定搞不清楚

更別提AVR的硬體設定

整個就是亂成一團





好在有一套軟體叫ICCV7

它可以快速幫你產生硬體設定檔

只要開啟Application Builder(暫時翻譯做硬體設定精靈)

然後從晶振一路勾選到Timer, Uart

再按OK

所有的暫存器你通通不用去查datasheet

它就全部幫你設定好產生對應的程式碼

當然

如果你要讓設定變得有彈性

還是得自己K一下datasheet比較好

但對一個剛要上手的使用者來說

這樣的功能就太好用啦~~~





若您用過其它的MCU

改用AVR只需不到三天的時間

就可以開始開發您的產品了!!!

(我大概花了一天半....)

當然您還是要有一些程式範例可以參考

瞎子摸象一定是會浪費不少時間的!!!

2008年11月25日 星期二

MCU -- 2007市占率十大排行

這是最近參加研討會之後

才花了點時間了解一下現在MCU的市場分布狀況

以前一直知道在台灣以8051, PIC, AVR各佔苗頭

但全球的分布就不是很清楚

這個統計一出來

才發現台灣算是小眾市場

有一些市佔率很高的MCU

我們連聽都沒聽過

更别說用過了!!!





先來看一下排行榜吧

1. Renesas  瑞薩科技

2. Freescale 飛思卡爾

3. Microchip

4. NEC

5. Infineon 英飛凌

6. Toshiba 東芝

7. Atmel

8. samsung 三星

9. NXP

10. ST 意法半導體





看過瑞薩的datasheet

我一點都不意外它的市佔率達世界第一(23%)

因為從精準而詳盡的規格裡

我看到了有條不紊而且沒有模擬兩可的文字

那是我所看過最精采的datasheet



而Microchip與Atmel都上榜了

這說明8051, AVR, PIC 應該都榜上有名

比較意外的是Motorola不見了

(Freescale好像是由Moto所分出來的MCU部門)

(另外ON也是Moto的分支, 不過比較偏邏輯數位與被動元件)



很多人在用的飛利浦8051

看起來也不在榜單上....



而那些不太熟悉的廠商名字

有蠻多是應用在車用市場的!!!

這說明了什麼?



我唯一的感想是

台灣真的很小

雖然很厲害

但還是很渺小

在這樣一個渺小的地方

還搞一堆紛爭與分裂

真的是很丟臉



學學瑞薩

學學那些在商場上屹立不搖的鉅子們

我們連進步的時間都不夠用了

哪裡還有時間退步呢??



最後

有沒有人要預測一下2008年的排名?

如果猜中的有精美小禮物一份

只要前三名就好

範圍太大可能比樂透還難猜!!

截止日到聖誕節為限

請大家把握機會~~~





*********************************************

好像參加的人沒有很熱絡呀?!

放到置頂好了

免得都忘了這件要送禮物的事~~~~

(2008/12/9 更新)

2008年11月19日 星期三

MCU -- Silicon Labs MCUs (2)

今天去參加了PIC的研討會

就像Edison所說的

真的收穫很多

然而這樣多的收穫裡

讓我更確定當初選用Silicon Labs的MCU是很明確的選擇!!

不過這並不是在說PIC不好唷~~

而是證明PIC很好很用心

看下去就知道為什麼了~~~





先來幾張研討會戰利品的特寫

1977649448

這個是有獎徵答的小禮物

挺有質感的計算尺

大廠在做廣告都不會手軟~~~

這很讓人欽佩!!



1977649449

這是研討會的主角 -- mTouch

我也買了一片~~~



1977649450

背面卯上了兩個PIC

這是mTouch的專用MCU



1977649451

這是debugger用的MCU





言歸正傳

話說近年來

PIC的8 bits MCU享有市佔率的龍頭老大地位

打破了Motorola長年來的領導地位

而且還持續在成長

小道消息說

ATxxx牌是即將收併的對象

這代表PIC是卯足了勁在衝

對使用者來說

是一項利多~~~



然而在8 bits MCU系列裡

PIC最近才打算進入量產的幾個時代性產品中

有幾項功能是Silicon Labs在一推出MCU時

就已經全系列通通都具備了

當然這不能怪PIC後知後覺

而是Silicon Labs出生得比PIC晚

所以PIC有的包袱他沒有而已

讓我依序說明這些內容吧!!





1. Low Pincount Serial Function (小包裝串列通訊功能)



PIC早期的MCU

只要是腳位不足20 pins的

應該都沒有串列功能

對於串列有重度使用的我來說

這是完全沒辦法接受的事實~~~

那就等於是一代武林高手被費了武功一樣痛不欲生



然而PIC最近announce的小包裝MCU

在明年第一季會正式量產的編號裡

串列已經被列進來了~~~

這證明PIC了解自己的市場弱點

並加以強化的第一彈





2. 硬體debug線路



這個功能也是最近幾年才被大量使用

最早期的名稱叫JTAG

是一種埋在MCU裡的硬體中斷電路

它可以透過通訊與硬體中斷的方式

即時抓取正在動作中的暫存器資料

這項技術在以往只存在高階的MCU中

一般8 bits的MCU根本就不可能有



所以開發者往往必須買價格昂貴的ICE來進行除錯

特別是針對剛入門的人來說

這是一個很重的負擔

過去幾年

我們公司都在教育使用者如何不透過ICE進行除錯的技巧

而UART就是我們最常用的功能之一



再回到主題



為了縮小開發成本

所以在MCU裡內建debug功能就變成了產品的優勢

一來大量降低下載工具的成本

二來縮短除錯的時程

這樣的硬體電路

在Silicon Labs的小包裝MCU中

是自家開發的叫做C2功能

換句話說

Silicon Labs的MCU也是全系列內建硬體除錯電路



有人質疑

這樣不是會增加die的成本

難怪MCU都賣得比人家貴?!

個人覺得

如果你把一萬支一元手機跟一支萬元手機比

那一支手機的性價比較高?



因為這樣的大環境趨勢

PIC也把這個功能加入全系列新推出的MCU裡

這也是大家現在可以用到很便宜的download工具的主要原因

因為電路通通利用半導體製程塞到MCU裡面去了



PIC唯一甩不開的包袱

是OTP的MCU

因為OTP只能燒寫一次

即便能抓bug也沒辦法修改

所以在OTP系列裡就沒有這樣的功能了

只有flash base的才有





3. Peripheral Pin Support(PPS) VS. Crosebar (XBR)



PIC在小包裝MCU中強力推打的重點功能裡

有一項PPS的功能

他是針對MCU功能夠多但IO pin無法靈活應用時

對這樣的需求進行補救的一項技術

它可以將有需要的功能指定到期望的腳位上

比方說

原來pin3的功能是UART-TX與SPI-DATA腳共用

如果我拿來當UART

SPI就被犧牲掉

但其它多餘的腳卻又用不上.....



此時透過PPS可以彌補這樣的缺憾

因為PPS可以把需求的功能

指定到自己想要的腳位上

充分應用每一隻IO



然而這樣的技術

Silicon Labs的MCU應該是首創先例

以Crossbar的技術將這樣的功能導入MCU裡

在已經慣用Silicon Labs的我來說

對這樣的功能並沒有特別的新意

卻有一種英雄所見略同的感受!!

大廠懂得積極將市面上最受歡迎的主流技術引入自己的產品線

用來確保自己的身家地位

這證明PIC是有心要做好MCU

像我這樣忠實的51使用者

都很心動想試試看

更別提可能是第一次聽過的初心者~~~





4. 無可比擬的超高速 25MIPS ~ 100MIPS



研討會中提到PIC在小包裝的MCU裡

已經有高達16MIPS的RISC MCU

對這樣的數據

在長時間被25MIPS的MCU洗禮過後

其實感受不到震撼

雖然PIC最高階的MCU有號稱高達80MIPS的超高時脈

但改版過的51(Silicon Labs MCUs)

推出之初就有亮眼的100MIPS MCU系列

雖然要價不菲

但卻是一個很強烈的指標展示

因為這樣的MCU

強悍度直逼DSP!!!





5. 開發工具超共用特好用



其實開發工具對每一個工程師所忠實的MCU來說

應該都是很好用的

但是Silicon Labs擺明不想賺你download工具的錢

因為現下一條USB download cable要價不到NT$1000

且全系列MCU通用

(PIC也做不到, 還是老話一句, 他有舊的包袱但Silicon Labs沒有)

除錯功能全部在IDE介面裡

而且C compiler還是老牌老字號的Keil C

處理出來的code超精簡

幾乎跟用組語寫的不相上下!!!

缺點是試用版有空間限制

但想必大家早就有正式版的在用了

直接把路徑順過去就好了



這就是MPLAB稍微落後一點的

因為程式的最佳化......

不覺得寫PIC的人

超多還是用組語在寫嗎?

特別是小包裝的......





*******************************************

好啦!!

看到這裡

PIC的愛用者請不要罵我

我說過

這不是PIC的錯

是因為PIC在MCU的亂世時代就已經在打滾

被Moto與Intel踢來踢去

好不容易才踏穩一條路

而且一直在堅持

一直在成長

這樣用心的公司

值得我們去投資

不是嗎?



然而對一個51的愛用者來說

長久以來被詬病的諸多缺點

在Silicon Labs裡找到了一條天堂之路

當然要好好表揚一下!!!





最近也會考慮投靠一下PIC

價格上

Silicon Labs的競爭性還是稍嫌不足呀!!





(2008/11/23更新)

再根據不可靠內部消息透露

收購ATxxx的計畫破盤

好像是價碼談不攏的原因

PIC在高階MCU的發展

果然還是會有點坎坷~~~~

2008年11月12日 星期三

MCU -- AVR之蝴蝶套件

1977649418



這個套件是我最早接觸的AVR

之前雖然有碰過AT90S1200(真的用手碰到唷! 哈哈~~)

但從來沒入門過!!!

因為當時我的MCU觀念還沒建立起來

學51才剛起步不久

所以我也沒有很貪心一次要學一堆

按步就班地專心學51





一次偶然的機會

看到circuit cellar有辦比賽

廠商提供Free的Kit供申請者使用

像我這種志在參加不在得獎的人

馬上就去申請

過往申請總是申請不到

所以我也沒抱太大的希望





沒想到兩週後

我收到一個來自美國的FedEx信件

一打開

......





沒有爆炸







但是有很大的驚喜

因為裡面是一套全新的AVR Butterfly套件

全部的內容物

就是照片裡所show給大家看的

這對當時的我來說

是一個很大的鼓舞





因為FedEx的郵資很貴

AVR Butterfly也不便宜

光是這樣的誠意

就讓我感動好久

我常常在想

台灣有沒有這麼捨得花錢教育自己國家人民的企業

甚至照顧"國外人民"?





沒有!!!





能教自己企業內的就偷笑了

還教到全國

還國外勒......





興高采烈地拆開了包裝

把所有的功能都給他玩了好幾遍

想說應該可以開始AVR的入門了

結果......

沒有DOWNLOAD CABLE!!!

當時一組CABLE要好幾千

所以

還是乖乖繼續玩51吧

並不是我捨不得花錢

而是沒時間分神再花這樣的錢





不過

托蝴蝶的福

我的C語言有了長足的進步

大家可能以為我的C語言是從51學的(Keil C)

其實不然

我的語法概念很多是在K蝴蝶套件的範例程式時建立起來的

這也是為什麼我跟AVR一直藕斷絲連無法割捨的主要原因





最近DOWNLOAD CABLE的價格很便宜

公司買了好幾條

又是我該好好用功的時候了





給各位看看蝴蝶的英姿吧

1977649419

這是正面的樣子

有跑馬燈從display晃過

有光敏電阻可以測光照(左上)

有搖桿可以選擇功能



1977649420

這是背面的樣子

有水銀電池

熱敏電阻

喇叭(不是蜂鳴器唷)

MCU(mega169)

開到音樂的項目

還能聽土耳其進行曲

2008年11月8日 星期六

MCU -- 8051的故事

1977649402

圖中左邊是ISP系列的51

右邊是精簡版的51

有看到洞洞板的是手工焊接的ISP燒錄板

也是我的第一個51燒錄工具

它的上面是後來公司改版出售的ISP板

右邊那台就是鼎鼎大名的PGM2051

應該也是全台灣第一台USB介面的51燒錄器

(在PGM2051剛出來時, 市售的燒錄器都是LPT或是COM介面的)






說到MCU

就不能不提到8051

然而為什麼8051的地位在台灣這樣根深柢固?

說個歷史故事給大家聽吧~~~

這當然不是我經歷的年代

只是由我口中轉述罷了.....





早期台灣的MCU有三大龍頭

Zilog--Z80

Intel--8051

Motorola--68xx





相信有在玩MCU的人應該不陌生

然而後來的Intel走進了學術界

透過老師及教授的力量

大量撰寫教材與教具

經過一兩個世代的輪替後

市場的分布開始起了變化

這種操作的手法

跟微軟其實很像

就是先教育使用者

然後自然習慣這樣的產品

相信大家都不難發現

市面上幾乎清一色是8051的教材

聰明的你會選擇有詳盡參考資料的MCU上手

還是資源少得可憐又沒人可以問的MCU呢?





然而讓8051真的奠定穩固地位的

是個人電腦的興起

微軟和Intel的結合

創造了IBM相容電腦的規格

進而開啟了8051的輝煌時代

當時的電腦BIOS

鍵盤掃描

周邊IO

很多都是用8051所做的





而Z80與68xx就在這樣的趨勢中敗陣下來

退居二線

這絕對不是技術底子不好

也絕對不是MCU不夠穩定

只是市場要不要你的簡單答案





市場的老大

並不是企業本身

而是使用者

當產品的擁護者越多

企業就越茁壯

要有越多的擁護者

經營理念是相當重要的

很多市場上的成敗

往往一開始就已經決定了

MCU -- Silicon Labs MCUs (1)

1977649395

這一家公司出的MCU

是我目前用得最順手的

以往的8051總是給人不太好的印象



比方說

保密性不好

抗干擾不好

相容性不好

穩定度不好

周邊功能不足

運算速度太慢

.....





而我第一次接觸單晶片

也是從51開始的

用的是Atmel的AT89C2051

個人覺得並沒有很大的問題

可能它已經精簡了89C51的p0與p2埠

進而少了很多外接周邊的問題

對我來說

這是一個很順利的開始

當然這一切都要感謝引領我進入這領域的神人-- 林伸茂 先生

他是我的老闆

更是我電子技術上的啟蒙老師

很多我不知道的東西

都是他給我方向和概念

然後親自動手實作

才慢慢把技術建立起來



就因為如此

所以當我把51學得有點進階的時候

發現51有很多先天上的限制

為了突破這些限制

我們無所不用其極地思考電路上的組合與排列

為學習打了不錯的基礎



後來因為應用的東西越來越複雜

51真的有點沒辦法勝任了

才開始思索是不是該換換MCU了



當時有考慮的MCU

包括AVR, R8/M16, PIC.....

(後來這些MCU也都有加入設計線, 只是用得不多)

適逢Cygnal的F300與F310在台灣已經漸入佳境

我們決定嘗試看看

一用便上癮了

1977649394





就在我開始用Cygnal的晶片沒多久

該公司與Silicon Labs 有合併的動作

後來就正式改由Silicon Labs 接手

本來很擔心才剛覺得好用的MCU就被併購了

未來會不會就中斷開發了?!



然而這樣的疑慮很快就得到了解答

Silicon Labs 不但全面更新原來的技術文件

更將其本來的專業強項加入了MCU當中

推出了史上最強的超高時脈8051

並整合了多項周邊

一次搞定相容性的問題



本來一直都用組語寫程式的我

對C的好感其實並不高

原因是編譯器的技巧還不純熟

無法有效將程式精簡

直到我用了搭配F310的Keil C之後

才開始對C完全改觀



事實上

這有一部分是受到老闆的影響

因為當初寫C要除錯

真的是相當辛苦

同樣的邏輯概念要一直嘗試不同的語法對它進行最佳化

演算式也不能說要加就加要乘就乘

順序上的差別就可能讓程式相差好幾十個Byte

所以才會對C有很大的排斥感

原因其實也在於用組語寫的每一個Byte都是自己加的

程式大小完完全全可以受到自己控制

在開發上不會有太大的誤差



說來可憐

當初的51

就是要在這少少的空間裡

盡可能地擠完它的每一寸資源

讓材料成本降到最低

而現今的大多數程式根本就不考慮這樣的問題

因為MCU空間都超大(不限51)

以前2K空間就不覺得不夠用

現在的16K, 64K, 甚至256K, 1M的都有

大家寫程式都只要求快速開發

已經不講究程式精簡了.....

題外話!!





1977649396

這一個是F340的官方板

來看看它的規格

64K Flash

48 Mips

4K SRAM

2 UART

1 USB

10bits ADC

SMBus

PWM

......


真的是太強了~~~



1977649397

MCU特寫

拍得不好

沒把雷射Mark照出來





1977649398

另外一個重大突破

就是這一系列的MCU有硬體debug功能

換句話說

每一個MCU自己就是ICE

下載程式跟除錯只要透過照片上的Download工具就搞定了

這張照片有兩個版本

左邊的是RS232介面的(上一代)

右邊是USB介面的(新一代)

不過偷偷告訴大家一個秘密

最原始的RS232介面工具才是最值錢的(Cygnal版本)

因為裡面栽了一顆F120(要價NT$1200)

USB版本如果是官方的還要上千元

若不是官方的

好像幾百塊就買得到了

現在要學MCU真的是比以前的環境好太多啦!!!