Attiny45 是一個 8-pin 的晶片,因為體積小而且功能強大且內建 4K 的 flash rom,對於簡單的一些練習是再好不過的晶片。但是這幾天為了想作一些關於 ADC 的實驗,於是就拿了它來做,結果呢? 它本身內建的功能沒有所謂的 UART (也就是在接腳圖上看不到 TxD 與 RxD ),而且手邊的Attiny2313 卻只有 on-chip Analog Comparator 兩支接腳作為類比比較用。一個有 ADC 卻沒硬體 UART,一個有 UART 卻只有一組 Analog Comparator 也不夠用 ......真是羚羊趕不完!
不過既然 Attiny45 有 USI 功能,想必可以用軟體實作的方式做出來!
上網 google 的一下,在 Atmel 官網中的一份文件( AVR307: Half Duplex UART Using the USI Module on tinyAVR and megaAVR devices) 有解決方案(如果找不到這份文件請 Google 一下,Updated 10/03,打文時又檢查了一遍連結發現ATEML官網最近有大改版)。不過事情卻沒想像中這麼容易,文件中所使用的晶片是 Attiny26,編譯器是 IAR Workbench。跟我用的都不一樣,所以如果要使用 Attiny45 內的 USI 做出 UART 的功能,必定要經過一番苦讀與修改。
首先要做的就是下載 AVR307所附的範例程式,把 Attiny26 相關的暫存器設定,修改為Attiny45,最後再修改整個 IAR 的程式碼讓它可以符合並通過 AVR Studio 編譯器的語法檢查,這樣才能產生所需要的Attiny45 UART 程式碼。
我的目的是要使用 ATtiny45 實現兩個 ADC 的監控。當然需要兩個 UART 功能的也可利用這個方法來做實現。
硬體線路:
硬體線路可以分為兩個部份,第一部分是Attiny45的線路部分,需要注意的是:當使用三線USI模式時,PB1(pin6) 是設定為 output 而且是一個open-drain output,所以必須要加上一個pull-up電阻。如圖中所示,加上了一個 1K 電阻,經實際測試是OK的!
2011年3月3日 星期四
實作 UART 功能使用 Attiny45 USI
第二部份是一個 RS232 準位準換電路,Attiny45 所標示的的 Tx 與 Rx 分別接到 232 晶片的 pin11 和 pin12,由於輸出已經直接跳線到 D-Type 母接頭,因此在與電腦連接時並不需要特別購買 9-pin 的 RS232跳線,直接用一般的線就好。圖中所使用的晶片為 MAX232 和 HIN232,若你使用的晶片代號不一樣時,請查閱一下晶片手冊。對於簡單應用與測試來講這個線路很足夠了,不但簡單而且零件很容易取得,價錢又便宜!
2011年2月27日 星期日
利用家中廢棄的省電燈泡,自製 LED 燈泡 (使用阻容降壓)
還記得 "淺談 LED 驅動連接方式" 裡所談的,現在我們要利用其中的 LED 並聯連接方式來實際動手做一個 LED 燈炮,但這可不是測試喔!是真的可以用的家用燈泡,利用家中廢棄的省電燈泡所做的一個 AC 電源驅動的 LED 燈,來取代那一顆壞掉的省電燈泡!
硬體線路:
淺談 LED 驅動連接方式
,LED (Light-Emitting Diode) 發光二極體是現在很夯的東西,省電、顏色多樣,現在外面很多的霓虹燈 (看檳榔攤就知道) 幾乎都被汰換成 LED了,以後連我們所用的照明設備也會開始進入到 LED 稱霸的世界;但是驅動 LED 一般都是使用直流電 (直流電就是頻率為"0"的電壓,而交流電就是會隨時間做週期性變化的電壓,LED 可直接使用交流電壓,但是必須符合其特性下所使用),可直接使用交流電的 LED 應該在不久的將來就可以看到了。
NOKIA 說"科技始終來自於人性",上面講的其實在未來就有可能被人性化的需求所取代,等一下文中所要講的 LED 驅動方式,或許在不久的將來就會變的不一樣了,誰也說不定吧!
廢話不多說!本文中所要談的是現在大家常用的 LED 驅動連接方式,因為驅動電路的設計與選擇和 LED 所選用的排列方式一定的關連性,這關係到 LED 的可靠度與亮度穩定性。
標籤:
LED
訂閱:
文章 (Atom)