2014年3月28日 星期五

PCM5102a DAC for Raspberry pi


這次版本就直接接上Raspberry Pi 了,不過我的接頭左右顛倒...所以反過來接
首先來介紹一下版本差異,我把電源供應的選項增加分為三個電源分述:
1.Digital VCC: Raspberry Pi 3.3V
2.CPVDD: Raspberry pi 3.3V or REG101-3V3 with or without external power
3.Analog VCC:REG101-3V3 with or without external power
相比之下之前的三電源要分開供應省下不少麻煩
然後就是這一版把OPA BUFFER拿掉了,原因就是我生不出來一個負電壓給OPA阿...
所以就拿掉了,反正這也只是個前級,如果要推重量級的設備自然會接耳擴(然後就是我的音量控制器也整合了OPA Buffer所以也不需要再放一個了
再來就是我把GND的舖銅再次改進,把三"點"共地改成三地共"面"
把PCM5102a底下的鋪滿GND

PCB的圖可以看到Jumper滿天飛...
其他的就沒什麼改變了,LPF沒變化,耳機接頭不用SMD的等等...
我應該還再洗接頭朝內的PCB

======Update========
洗完惹,這次順便並幾個電解電容上去





2014年3月18日 星期二

IN-9 Nixie tube 溫度計 PCB 製作

總之是做完了~
PCB Layout如下,基本上就是上次搭棚的那個電路
目前的設定是
LM34(10mV/度C) x 放大11倍
控制的電路電阻是750歐姆
目前經由測量通過IN-9的電流,或者是測量放大後的電壓都可以知道LM34所測得的溫度
進而畫出溫度計的刻度

測量結果如下:
4cm = > 0.0042A => 28.6度C
4.4cm = > 0.0045A => 30.6度C
假設都是線性的狀況,0.4cm=>2度C
雖然只有兩個點有點悲劇,但是目前我能加熱的方式就只有用手惹

值得一提(或者說值得一婊)的是
LM34受到了旁邊的OPA加熱,需要想一下改進的方法 = ="
==================================================
UPDATE: 目前解決方法如下....但是我發現銅線還是熱熱的 = ="
已經訂了TO-220的LM34,等等再換吧


TO-220的版本來了ㄏㄏ
=========================================================
接下來就是該怎麼做外殼,還有該做一個新的高壓板給他了.......
(By the way 我搭棚做升壓板很悲劇的都沒成功過QAQ


UPDATE:
我發現冰櫃裡面還有幾塊冰塊,所以藉由測量LM34的電壓輸出來校正溫度計

2014年3月14日 星期五

PGA2311 Arduino 音量控制PCB

上次的PGA2311搭棚版做完後,有大大來找我畫電路板XD
於是上圖就出現惹~~~
基礎架構基本上和搭棚版差不多,但是另外在輸入源後面新增了一個OPA Buffer,這樣就不用考慮PGA2311的輸入阻抗了
另外就是把i2C的接頭拉出來,方便增加功能
另外非常重要的一點,他是白色的!!!他是白色的!!!他是白色的!!!
因為很重要所以要說三遍
然後台灣的PCB製程品質真的還不錯
接下來來檢討一下這次的Layout
首先還是一個毛病,零件的密度太高了,比方說PGA2311數位電源的輸入的bypass電容未免以太接近了 = =",我在焊接的時候還頗緊張的,不過焊接完仔細一看其實還是有空隙在(等等,沒有的話不就悲劇了
然後就是有些零件會卡,這次是編碼器和Arduino mini pro會互卡,可能要讓Arduino 焊死板子上降低它的高度
然後就是螺絲孔.......這是2.0mm的規格...不是常見的銅柱寬度 = =
其他就沒什麼問題,使用上都OK


2014年2月19日 星期三

IN-9 nixie tube

這次從ebay買了六支IN-9.俄羅斯運來的(☆_☆)等了快四周
至於為什麼一次買那麼多支呢?沒辦法,單買一支的話運費都比較貴了QAQ
原本想要買IN-13的,不過電路都差不多複雜,於是就買便宜的吧


這次的真空管是顯示長條型的,電源需求140V,藉由改變電流來控制顯示的長度
電路圖如下:
這個電路有兩個作用,第一是當作溫度計,第二是他可以藉由DAC讓Arduino來控制
上面的LM34出來後,用OPA放大十倍,直接送入IN-9的電流控制區
下面的是用DAC7571輸出送入IN-9的電流控制區
電路先用麵包版驗證:
目前驗證成功啦~~旁邊有兩台三用電表,一個是顯示DAC輸出電壓(V),一個是顯示IN-9的電流(mA)
可以看出來目前的設定是Vin / 500 = I

電路還需要一些的細部調整,主要是Vin和I的比值,這是藉由電路圖中的R1所調整,還在想說要不要用IN-9上端得比較沒那麼線性的部分(大概10mA UP)
至於DAC7571,這是一個非常簡易的DAC IC,基本上就是一個12bit的可變電阻配上一個內建的Rail-to-Rail OPA buffer,溝通方式是i2C,而且這一切都濃縮在一個SOT-6的封裝裏
6支針腳已經是最精簡了,一組電源一個輸出兩個溝通一個位置選擇
放在Layout的電路板上真是省空間Y(^_^)Y
以下是控制DAC7571的CODE:

#include <Wire.h>
void setup() {

  Serial.begin(9600);
  Wire.begin();
  Serial.println("ADC Test");
}


void loop() {
  for (int i = 0;i<=4096;i++){ //12bit = 4096 step
    writeADC(i);
    Serial.println(i);
    delay(3);
  }
}
int writeADC(int value){
  byte a = value%256;                   //Wire send one byte at a time so use this to split a int
  byte b = value/256;
  Wire.beginTransmission(0x4C);  //A0=LOW
  Wire.write(b);
  Wire.write(a);
  Wire.endTransmission();  

}