2014年11月23日 星期日

自製USB to UART

 這其實是很久以前做好的,從這DIP混SMD的風格大概可以看的出來....
當然還有堆積的灰塵
總之,這是用Atmega32U2做成的USB轉UART,基本上就是UNO的那一個電路
連Fuse我也保留了
至於為啥那麼晚PO,主要的原因是因為當時我做完之後,發現出來的UART都是亂碼
那時候還沒有LA,所以找不到原因,用了之後就發現UART的時脈有問題,波形比正常的還要大三倍多然後就從震盪器開始追,最後發現了....AVR的FUSE沒有跟動過,當時燒錄的時候用的是Flip,沒有設定過新的,所以系統時脈有問題

基本上這個HEX檔案在Arduino的Hardware裡面有.也有附上FUSE設定的說明,之後用Avrdude+Arduino as ISP設定過就沒問題了

AVRDUDE(Arduino\hardware\tools\avr\bin)和他的config file(Arduino\hardware\tools\avr\etc\)
還有剛剛那個HEX file (Arduino\hardware\arduino\firmwares\atmegaxxu2\)copy到一個新的地方之後,就可以用CMD下指令
avrdude -p 改成你MCU的版本代號(m32u2,m16u2) -P Arduino的COMPORT -b 19200 -c avrisp -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

2014年11月6日 星期四

Linkit one 電路解說


決定來把一些Linkit one的電路做一些介紹
   
        首先從供電電路來看,板子的正面供有兩組DC-DC,分別是5V降4.2V以及3.7V升5V
由於Linkit one 的主要SOC MT2502,其實是為了行動裝置用的,原先IC的設計上就是可以直接將鋰電池接進去,所以供電最高就是4.2V,因此電腦的5V接進來之後就需要經過降壓的DC-DC供電
給MT2502,

 又因為鋰電池運作的時候,為了5V的輸出,板子上另外有一個3.7V升壓到5V的DC-DC電路,

有意思的是鋰電池的充電其實是MT2502所控制的,並不需要一個獨立的IC去充鋰電池

       除了主要的供電迴路以外,其實還有兩個Backup的電池,就是左上角的兩個3V可充電鋰電池
一個是給MT2502做RTC,另一個是GPS的RTC,Seeedstudio應該是沒有上件,但是他所需要的一些限流電阻都有,所以可以直接拿一個3V的焊接上去,注意不能用3V鈕扣電池,因為這個電路接上電之後是會充電的,還有因為新的鋰電池需要充電,Seeedstudio設定的限流電阻還頗大的,所以需要一點時間充飽,好了之後內建的RTC就有斷電計時了

由左上角開始的IC:MT2502, 韌體存放的Flash, TXS0108與他快樂的MOS們, GSM RF IC ,WIFI IC,GPS IC

        在來就是最有意思的GPIO電路了,由於SOC的電平是2.8V準位,還有些是1.8V,所以需要準位轉換電路,最剛開始的時候用的是TXB系列,不過遇到Pull-up的電路就會失效,所以之後就改用TXS系列,剩下有另外一部分的IO是用MOS做電平轉換,好處就是其實每隻腳都是Pull-up的,所以對於一些按鈕的就不用另外設定或是外接上拉電阻,
        但是問題就是TXS的推力非常小,沒甚麼辦法供電給LED,如果你可以接受2.8V準位的話,其實是可以直接把TXS拿掉然後直接接到GPIO,他的供電電流就可以恢復變成15mA左右.不然的話就是直接用一個電晶體放大也是不錯的方案.而且在MCU直接接耗電量高的設備也是危險.

By the way,如果你想要5V的電平的話,其實也是可以把TXS的其中一個供電改成5V就成了,記得把別和3.3V的電線短路就好

    另外有趣的部分大概就是ADC電路了,其實MT2502內部的ADC準位是2.8V,而不是5V,為了能夠支援一些電壓可能會大於2.8V的狀況,所以電路板上其實是有一個分壓電阻的,直接將電壓除以2.也就是說,實際上1024位階對應到的是0~5.6V,但是又為了要支援Arduino的5V是1023的問題,於是就出現了底下這段程式碼:

他會將5V的重新MAP回去0~1024,所以對於需要精準ADC的人,可以將這段程式碼去掉,但是要注意他的電壓範圍將會變成0~5.6V

以上大概是Linkit one 的一些基本周邊電路的介紹了






2014年11月2日 星期日

升壓模組

摁,就只是個升壓模組,其實沒什麼特別的....

IV-18 真空管時鐘 beta2.0

總之這是第二版的試做,這是大概50%的beta版,主要是IV-18的holder加上他所需要的升壓板
這次我加了一個Attiny44來控制MAX6921,專門拿來掃描,這樣一來Arduino就不需要一直去掃描,使得程式速度不一樣而影響到亮度,
所以這次Holder就多了兩個IC,Attiny+MAX6921
不過下次應該還會再做一次,把升壓模組也放上去,因為空間還滿大的,不用白不用
另外就是應該有人發現了,這真空管亮度有點問題,這主要是燈絲的電壓造成的,我一來電阻搞太大,二來這又是用直流電,所以就悲劇了.下一版會用一個MAX628做燈絲電源的極性切換

LMX9838 breakout board

總之就是個藍芽模組

特色就是....底下這張圖
最高一對七,不過我手上的藍芽模組沒那麼多,和別人借了兩個測三個一起上
潮猛der,我還真沒看過可以同時一打七的藍芽2.0模組


不過我還在考慮它可以拿來做甚麼XD,想說要不把USB to UART放上去做一個超強的USB藍牙棒給Raspberry Pi 用