HOW-TO:總線Pirate V1,改進的通用串行接口
我們使用總線海盜接口新芯片而無需編寫代碼或創建PCB。根據您的反饋,我們使用原始總線海盜的經驗展示各種部分,我們使用新功能和更實惠的組件更新了設計。
Bus Pirate硬件版本也有一個固件更新,帶有錯誤修復和鍵盤解碼器的PC。查看新的Hack A Day Bus Pirate頁面,並在我們的Google Code SVN存儲庫中瀏覽總線海盜源代碼。
我們介紹了下面的設計更新和接口數字到模擬轉換器。
概念概述
總線海盜作為一系列代碼片段的集合,我們用於測試新芯片而無限制編譯程序運行開發週期。我們在如何釋放它,用它釋放它來展示我們的零件帖子中的一堆串行接口IC。這篇文章介紹了一個更新的設計,具有新功能和一堆改進。
表面貼裝設計
具有外部電壓源的所有總線上的上拉電阻
軟件可複位3.3伏和5件電源
所有電源的電壓監控
外部電壓測量探頭
更便宜的部分
硬件
單擊全尺寸原理圖(PNG)。電路和PCB使用Cadsoft Eagle的免費軟件版本創建。此項目的所有文件都包含在文章末尾鏈接的項目歸檔中。
微控制器
我們在該項目中使用了Microchip PIC24FJ64GA002 28Pin Soic MicroController(IC1)。電源引腳具有0.1UF旁路電容到地(C1,2)。 2.5Volt內穩壓器需要10UF鉭電容器(C20)。芯片通過五個引腳標頭(ICSP)編程。在PIN 1上的MCLR功能需要2K上拉電阻(R1)。在PIC24F介紹中讀取了更多關於此芯片的更多信息。
RS-232收發器
經濟型MAX3232CSE RS232收發器(IC2)將照片界面到PC串口。該芯片替換了先前版本的總線海盜中使用的昂貴的通孔MAX3223EEPP +。串行接口將使用USB->串行適配器。
巴士上拉電阻
原始總線海盜在2個引腳上有3.3個上拉電阻,但我們的大量測試需要額外的外部電阻。更新的設計在三個主總線信號(數據中,數據輸出,時鐘)和芯片選擇(CS)引腳上具有上拉電阻(R20-23)。
一排跳線(SV5)將每個電阻連接到通過Vext終端(X4)提供的外部電壓。通孔電阻器用作跳線電線,使PCB在家中更容易蝕刻。
我們找不到一種複雜的方法來控制3.3伏微控制器的任意電壓上拉電阻器。如果您有任何想法,請在評論中分享。
電源
VR1是微控制器和RS232收發器的3.3伏電源。 VR2是5閥電源。兩者都需要兩個0.1uf旁路電容(C3-C6)。 J1是一個用於共同的2.1mm DC桶塞的電源插孔。 7-10Volts DC可能是最佳電源範圍。
原始總線海盜有雙電源,3.3 volts和5volts,因此在沒有額外電源的情況下可以接地很多IC。主要滋擾是缺乏連接芯片的電源重置。如果需要循環的錯誤配置IC,我們必須斷開電線。我們在這個例程中獲得瞭如此磨損,我們將軟件控制重置添加到更新的設計中。
VR3(3.3Volts)和VR4(5Volts)是Ti TPS796xx電壓穩壓器,具有啟用開關。銷釘1上的高電平使穩壓器能夠。下拉電阻(R13,R12)確保當照片不主動驅動線路時,穩壓器熄滅,例如在加電初始化期間。數據表指定輸入(C23,C21)和輸出(C24,C22)引腳上的大電容,我們使用了我們在任何地方使用的相同的10UF鉭。另外的可選0.1UF電容(C12,C11)可以改善調節。
可切換穩壓器由VR2,5閥電源供電。我們這樣做是因為VR3和VR4的最大輸入是6Volt,使設備具有窄5.2-6伏電源範圍。 VR2將高於10 volts,為其他調節器提供適當的電源。
VR3(3.3Volts)有充足的餘量,可以從5伏電源運行。 VR4(5Volts)將丟失約0.2 volt,但4.8Volts仍然在可接受的範圍內,為大量的5件5個碎片。在實踐中,在輕度載荷下,我們看到從VR4掉落的小於0.1Volts。
電壓監控
電壓監控是一個新功能,我們真的很欣喜若狂。由於偶然的短路,您的項目是否有理由停止響應?總線海盜的電源配備電壓監控,可以發現功率電平的變化。
每個受監控的信號通過電阻分壓器連接到模數轉換器(ADC)。兩個10K電阻(R10,R11上方)將輸入電壓分成兩半,使得可以使用3.3Volt照片微控制器測量高達6.6Volts。
總線海盜有四個電壓監視器。監控3.3Volt和5Volt電源,外部電壓送到上拉電阻的外部電壓也是如此。第四顯示器連接到輸出報頭的引腳9以進行電壓探頭。
PCB.
單擊全尺寸放置圖(PNG)。該板是一個據說單面設計,我們在單面光電PCB上蝕刻了我們的實驗室。在頂部,近C13,兩根跳線在一個通孔中相遇;我們在板後面焊接一個跳線。
零件清單
部分
價值
IC1.
pic24fj64ga002(SEIC)
IC2.
max3232cse(SOIC-N)
VR1.
LD1117S33 3.3Volt調節器(SOT223)
VR2.
LD1117S50 5Volt調節器(SOT223)
VR3.
TPS79633 3.3Volt調節器(SOT223-6)
VR4.
TPS79650 5Volt調節器(SOT223-6)
C1-13
0.1UF電容(0805)
C20-24
10UF鉭電容器(SMC A)
R1.
2000歐姆電阻(0805)
R2,3
390歐姆電阻(0805)
R4-13
10000歐姆電阻(0805)
R20-23
2.2K-10K歐姆電阻(通孔)
LED1,2
LED(0805)
J1.
2.1mm Power Exp.
x2,x4
螺釘夾(2端子)*未經測試
X3
DB9母串口連接器*未經測試
ICSP.
0.1“引腳標頭,直線
SV4.
0.1“銷釘或籠罩的頭部
SV5
0.1“引腳標頭,直線
固件
固件是使用照片C30編譯器的免費演示版本中的C.了解我們在我們的照片24F系列介紹中使用這張照片的所有內容。
最新的固件發佈在一天巴士海盜頁面上。當前源位於我們的Google代碼SVN存儲庫中。
使用它
上圖顯示了總線海盜引腳。
我們終結了一根鱷魚夾,並向每根電線添加標籤,以便每當我們接口新芯片時,我們不必在此表中引用此表。
如果您知道任何驚人的連接器或電纜,請在評論中鏈接到它們。
LTC2640 SPI Digital達模數電壓轉換器
線性技術LTC2640-LZ8是一種以SPI編程的8位數字轉換器(DAC)。 DAC基本上是可編程分壓器。它們有利於重新創建波形,例如音頻信號。 8位DAC在0和參考電壓之間具有255個間隔,我們使用的L部分具有內部2.5Volt參考。
LTC2640僅採用小型SOT223-8封裝,因此我們在DIP-8芯片的配置文件中製作了一個麵包板適配器。我們的LTC2640佔地面積包含在本文末尾的項目存檔中。
上面的示意圖顯示了我們的LTC2640的測試電路。它需要2.7-5伏電源,我們使用了總線海盜的3.3伏電源。 C1是電源引腳和地之間的旁路電容。引腳8是一個有效的低復位引腳,將其綁定為正常操作。引腳7是DAC輸出,在此連接總線海盜電壓測量探頭(ADC)。
公共汽車海盜
LTC2640(PIN#)
莫斯利
SDI(3)
鐘
SCK(2)
CS
CS / LD(1)
ADC
VOUT(7)
+ 3.3Volts.
CLR(8)
+ 3.3Volts.
VDD(5)
GND.
GND(4)
我們將總線海盜連接到LTC2640,如表所示。 LTC2640沒有數據輸出引腳,該SPI連接保持未使用。
總線海盜的硬件SPI庫和軟件RAW3WIRE庫與LTC2640的SPI接口兼容。我們使用SPI庫;如果使用RAW3Wire庫,請務必選擇正常引腳輸出。
hiz> m <-select模式 1.艾特 2. 1線 3. UART. 4. I2C. 5. SPI. 6. JTAG. 7. Raw2wire. 8. Raw3wire. 9.鍵盤上的PC 模式> 5 <-SPI或RAW3WIRE 900模式集 設置速度: 1. 30khz. 2. 125khz. 3. 250khz. 4. 1MHz. 速度>低速下的1 < - 最低 ...... 102 spi準備 SPI>
按M用於總線海盜模式菜單,為SPI模式選擇5。 SPI模塊有一系列配置選項,請使用所有的默認選項。 SPI模式已準備就緒後,我們需要配置電源。
SPI> P <-Power供應設置 w / w切換3.3 volt電源? 否 2.是的 模式> 2 <-ES 3.3燈電源 w / w切換5 volt電源? 否 2.是的 模式> 1 < - 不要使用5VOLT電源 9xx供電配置,使用w / w切換 9xx電壓監控:5V:0.0 | 3.3V:0.0 | vpullup:0.0 | SPI>
P打印出總線海盜電源菜單。我們使用3.3閥電源但不是5伏電源。電壓監視器驗證電源已關閉。
SPI> W <-Capital W(Silly CSS)啟用電源 9xx 3.3燈電源 SPI> V <-VOLTAGE監視器 9xx電壓監控:5V:0.0 | 3.3V:3.3 | vpullup:0.0 | SPI>
首都’W’允許在上一個菜單中選擇的任何電源,小小的“w”禁用它們。 v顯示電源電壓監視器,現在顯示3.3伏電源輸出的3.3Volt。
現在,配置完成,我們可以通過SPI總線向LTC2640發送命令。 LTC2640具有24位(3字節)接口協議。第一個字節是一個命令,後跟兩個數據字節。 LTC2640有8,10和12位版本提供; 8bit版本使用第一個字節來設置DAC值e,並忽略第二個字節。
spi> [0b00110000 255 0] < - 設置dac full 啟用了110個SPI CS 120 SPI寫入:0x30 <-Write DAC命令 120 SPI寫入:0xFF <-DAC值 120 SPI寫:0x00 < - 不在乎 140 CS禁用 SPI>
每個SPI命令都開始啟用芯片選擇引腳([)。第一個字節是更新DAC(0B00110000)的命令,然後是輸出(255)的值,以及忽略的第三個字節(0)。該命令通過禁用芯片選擇(])結束。
我們使用了8位DAC,帶有255個偶數電壓步驟,輸出設置為255為100%。我們可以使用總線海盜電壓探頭來測量輸出。
SPI> D <-MEASURE電壓 9xx電壓探頭:2.5Volts <-DAC輸出 SPI>
D觸發電壓測量。 DAC輸出電壓為100%(255/255)的內部參考,2.5Volts。
spi> [0b00110000 0 0] d
啟用了110個SPI CS
120 SPI寫入:0x30 <-Write DAC命令
120 SPI寫入:0x00 <-DAC值
120 SPI寫:0x00 < - 不在乎
140 CS禁用
9xx電壓探頭:0.0VOLTS <-DAC輸出
SPI>
具有0%(0/255)的DAC值為2.5Volt的相同命令; 0volts。
spi> [0b00110000 128 0] d
啟用了110個SPI CS
120 SPI寫入:0x30 <-Write DAC命令
120 SPI寫入:0x80 <-DAC值
120 SPI寫:0x00 < - 不在乎
140 CS禁用
9xx電壓探頭:1.2VOLT <-DAC輸出
SPI>
DAC值128的參考電壓為1.2Volts約50%(128/255)。
SPI> [0b01000000 0 0] d
啟用了110個SPI CS
120 SPI寫入:0x40 <-power下降命令
120 SPI寫:0x00 < - 不在乎
120 SPI寫:0x00 < - 不在乎
140 CS禁用
9xx電壓探頭:0.0volts <-dac關閉
SPI>
LTC2640具有低功耗模式,由命令0B01000000和忽略的兩個字節觸發。掉電命令後,我們可以驗證來自DAC的輸出。寫下任何DAC值以退出低功耗模式。
進一步選擇
公共汽車海盜的下一步是什麼?我們最終將最終更新到設計,其中包括專業製作的雙面PCB上的USB。電源指示燈LED為此版本的亮起,但未被包括在內。在沒有PC的情況下,在沒有PC的鍵盤連接器中將有助於調試。查看攻擊日巴士海盜頁面上的路線圖和願望清單。
下載:buspirate.v1a.zip.