HOW-TO:總線Pirate V1,改進的通用串行接口

September 20, 2022 0 By ojn

我們使用總線海盜接口新芯片而無需編寫代碼或創建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.