We use the Bus Pirate to interface a new chip without writing code or creating a PCB. based on your feedback, and our experience using the original Bus Pirate to demonstrate various parts, we updated the design with new features and more affordable components.
There’s also a firmware update for both Bus Pirate hardware versions, with bug fixes, and a PC AT keyboard decoder. check out the new Hack a Day Bus Pirate page, and browse the Bus Pirate source code in our Google code SVN repository.
We cover the design updates and interface a digital to analog converter below.
Concept overview
The Bus Pirate started as a collection of code fragments we used to test new chips without limitless compile-program-run development cycles. We released it in a how-to and used it to demonstrate a bunch of serial interface ICs in our parts posts. This post introduces an updated design with new features and a bunch of improvements.
Surface mount design
Pull-up resistors on all bus lines with external voltage source
Software resettable 3.3volt and 5volt power supplies
Voltage monitoring of all power supplies
An external voltage measurement probe
Cheaper parts
Phần cứng
Click for a full size schematic image (PNG). The circuit and PCB are created using the freeware version of Cadsoft Eagle. All the files for this project are included in the project archive linked at the end of the article.
Vi điều khiển.
We used a Microchip PIC24FJ64GA002 28pin SOIC microcontroller (IC1) in this project. The power pins have 0.1uF bypass capacitors to ground (C1,2). The 2.5volt internal regulator requires a 10uF tantalum capacitor (C20). The chip is programmed through a five pin header (ICSP). A 2K pull-up resistor (R1) is required for the MCLR function on pin 1. read a lot more about this chip in our PIC24F introduction.
RS-232 transceiver
An economical MAX3232CSE RS232 transceiver (IC2) interfaces the photo to a PC serial port. This chip replaces the expensive through-hole MAX3223EEPP+ used in the previous version of the Bus Pirate. The serial interface will work with a USB->serial adapter.
Bus pull-up resistors
The original Bus Pirate has 3.3volt pull-up resistors on 2 pins, but a lot of of our tests required additional external resistors. The updated design has pull-up resistors (R20-23) on the three main bus signals (data in, data out, clock) and the chip select (CS) pin.
A row of jumpers (SV5) connects each resistor to an external voltage supplied through the Vext terminal (X4). Through-hole resistors are used like jumper-wires to make the PCB much easier to etch at home.
We couldn’t find an sophisticated way to control an arbitrary voltage pull-up resistor variety from a 3.3volt microcontroller. If you have any ideas, please share them in the comments.
Nguồn cấp
VR1 is a 3.3volt supply for the microcontroller and RS232 transceiver. VR2 is a 5volt supply. Both require two 0.1uF bypass capacitors (C3-C6). J1 is a power supply jack for a common 2.1mm DC barrel plug. 7-10volts DC is probably the optimal power supply range.
The original Bus Pirate had dual power supplies, 3.3volts and 5volts, so a lot of ICs could be interfaced without an additional power supply. A major nuisance was the lack of a power reset for connected chips. If a misconfigured IC needed to be power-cycled, we had to disconnect a wire. We got so worn out of this routine that we added a software controlled reset to the updated design.
VR3 (3.3volts) and VR4 (5volts) are TI TPS796XX voltage regulators with an enable switch. A high level on pin 1 enables the regulator. A pull-down resistor (R13,R12) makes sure that the regulators are off when the photo isn’t actively driving the line, such as during power-up initialization. The datasheet specifies a large capacitor on the input (C23, C21) and output (C24, C22) pins, we used the same 10uF tantalum we use everywhere. An additional, optional, 0.1uF capacitor (C12,C11) can improve regulation.
The switchable regulators are powered by VR2, a 5volt supply. We did this because the maximum input for VR3 and VR4 is 6volts, leaving the device with a narrow 5.2-6volt power supply range. VR2 will work well above 10volts, and supplies an appropriate supply for the other regulators.
VR3 (3.3volts) has plenty of headroom to operate from a 5volt supply. VR4 (5volts) will lose about 0.2volts, but 4.8volts remains well within the acceptable range for a lot of 5volt chips. In practice, and under light loads, we see less than 0.1volts drop-out from VR4.
Voltage monitoring
Voltage monitoring is a new feature we’re really ecstatic about. has your project ever mysteriously stopped responding because of an accidental short circuit? The Bus Pirate’s power supplies are equipped with voltage monitoring that can discover a change in power levels.
Each monitored signal is connected to an analog to digital converter (ADC) through a resistor voltage divider. two 1Điện trở 0K (R10, R11 ở trên) Chia một nửa điện áp đầu vào, giúp có thể đo tối đa 6.6Volts với vi điều khiển ảnh 3.3Volt.
Cướp biển xe buýt có bốn màn hình điện áp. Bộ nguồn 3.3Volt và 5Volt được theo dõi, cũng như điện áp bên ngoài được cho đến các điện trở kéo lên. Màn hình thứ tư được kết nối với chân 9 của tiêu đề đầu ra để tạo đầu dò điện áp.
PCB.
Nhấp vào Sơ đồ vị trí kích thước đầy đủ (PNG). Hội đồng quản trị là một thiết kế được cho là một mặt, chúng tôi đã khắc chúng ta trong phòng thí nghiệm trên một PCB chống lại một mặt. Ở trên cùng, gần C13, hai dây Jumper gặp nhau tại một thông qua; Chúng tôi hàn một dây nhảy sang một dây khác ở mặt sau của bảng.
Một phần danh sách
Phần
Giá trị
IC1.
Pic24fj64ga002 (SOIC)
IC2.
MAX3232CSE (SOIC-N)
VR1.
Điều chỉnh LD1117S33 3.3VOLT (SOT223)
VR2.
Bộ điều chỉnh 5Volt LD1117S50 (SOT223)
VR3.
Bộ điều chỉnh TPS79633 3.3Volt (SOT223-6)
VR4.
Bộ điều chỉnh 5Volt TPS79650 (SOT223-6)
C1-13.
0,1UF tụ điện (0805)
C20-24.
Tụ Tantalum 10UF (SMC A)
R1.
Điện trở 2000 ohm (0805)
R2,3.
Điện trở 390 ohm (0805)
R4-13.
10000 ohm điện trở (0805)
R20-23.
Điện trở 2.2K-10k Ohm (thông qua lỗ)
LED1,2.
LED (0805)
J1.
Jack Power 2.1mm
X2, x4.
Kẹp vít (2 thiết bị đầu cuối) * chưa được kiểm tra
X3.
Đầu nối cổng nối tiếp DB9 * chưa được kiểm tra
ICSP.
Tiêu đề pin 0,1 “, thẳng
SV4.
Tiêu đề pin 0.1 “hoặc tiêu đề bị che chắn
SV5.
Tiêu đề pin 0,1 “, thẳng
Firmware
Phần sụn được viết bằng C bằng phiên bản trình diễn miễn phí của trình biên dịch ảnh C30. Tìm hiểu tất cả về làm việc với bức ảnh này trong phần giới thiệu của chúng tôi về loạt ảnh 24F.
Phần sụn mới nhất được đăng trên trang Cướp biển Bus một ngày. Nguồn hiện tại nằm trong kho lưu trữ SVN của Google Code của chúng tôi.
Sử dụng nó
Sơ đồ trên cho thấy Pedout cướp biển xe buýt.
Chúng tôi đã tạo một sợi dây với các clip cá sấu ở cuối và thêm nhãn vào mỗi dây để chúng ta không phải tham khảo bảng này bất cứ khi nào chúng ta giao tiếp chip mới.
Nếu bạn biết về bất kỳ đầu nối hoặc cáp tuyệt vời nào, vui lòng liên kết với chúng trong các bình luận.
LTC2640 SPI Bộ chuyển đổi điện áp tương tự sang Analog
Công nghệ tuyến tính LTC2640-LZ8 là bộ chuyển đổi analog kỹ thuật số 8 bit (DAC) được lập trình trên SPI. Một DAC về cơ bản là một bộ chia điện áp lập trình. Chúng có lợi cho việc tái tạo các dạng sóng, chẳng hạn như tín hiệu âm thanh. Một DAC 8 bit có 255 khoảng thời gian thậm chí giữa 0 và điện áp tham chiếu, phần L chúng tôi sử dụng có tham chiếu 2.5Volt bên trong.
LTC2640 chỉ có gói SOT223-8 nhỏ, vì vậy chúng tôi đã thực hiện bộ chuyển đổi Breadboard trong hồ sơ của chip DIP-8. Dấu chân LTC2640 của chúng tôi được bao gồm trong kho lưu trữ dự án kèm theo vào cuối bài viết này.
Sơ đồ ở trên cho thấy mạch thử nghiệm của chúng tôi cho LTC2640. Nó đòi hỏi nguồn cung cấp năng lượng 2,7-5Volt, chúng tôi đã sử dụng nguồn cung cấp 3.3Volt của Pirate của Bus. C1 là một tụ điện bỏ qua giữa pin và mặt đất. PIN 8 là mã PIN thiết lập lại hoạt động thấp, buộc nó cao cho hoạt động bình thường. PIN 7 là đầu ra DAC, kết nối đầu dò đo điện áp cướp biển (ADC) tại đây.
Bus Pirate.
LTC2640 (PIN #)
Mosi.
SDI (3)
CÁI ĐỒNG HỒ
SCK (2)
Cs.
CS / LD (1)
Adc.
Vout (7)
+ 3.3Volts.
CLR (8)
+ 3.3Volts.
VDD (5)
Gnd.
GND (4)
Chúng tôi đã kết nối tên cướp biển đến LTC2640 như trong bảng. LTC2640 không có mã PIN đầu ra dữ liệu, kết nối SPI này vẫn chưa được sử dụng.
Thư viện SPI phần cứng của Bus Pirate và phần mềm RAW3Wire Thư viện tương thích với giao diện SPI của LTC2640. Chúng tôi đã sử dụng thư viện SPI; Nếu bạn sử dụng thư viện RAW3Wire hãy chắc chắn chọn đầu ra pin bình thường.
HIZ> M <-Chọn chế độ 1. HIZ. 2. 1-dây 3. UART. 4. I2C. 5. SPI. 6. JTAG. 7. Raw2wire. 8. Raw3wire. 9. PC ở bàn phím Chế độ> 5 <-SPI hoặc RAW3Wire Bộ 900 chế độ Chỉnh tốc độ: 1. 30kHz. 2. 125kHz. 3. 250kHz. 4. 1 MHz. Tốc độ> 1 <-Test ở tốc độ thấp ... 102 SPI sẵn sàng SPI >.
Nhấn M cho menu Chế độ Pirate Bus, chọn 5 cho chế độ SPI. Có một loạt các tùy chọn cấu hình cho mô-đun SPI, sử dụng các tùy chọn mặc định cho tất cả chúng. Sau khi chế độ SPI sẵn sàng, chúng ta cần cấu hình nguồn điện.
SPI> P 2 <-use Cung cấp 3.3Volt W / w toggles cung cấp 5volt? 1. Không 2. Có. Chế độ> 1 <-Không sử dụng nguồn cung cấp 5Volt Cấu hình cung cấp 9xx, sử dụng w / w để chuyển đổi Màn hình điện áp 9xx: 5V: 0,0 | 3.3V: 0,0 | Vpullup: 0,0 | SPI >.
P Mở menu cung cấp năng lượng cướp biển xe buýt. Chúng tôi sử dụng nguồn cung cấp 3.3Volt nhưng không phải là nguồn cung cấp 5Volt. Màn hình điện áp xác minh rằng nguồn cung cấp điện bị tắt.
SPI> W <-Capital W (CSS ngớ ngẩn) cho phép cung cấp năng lượng Cung cấp 9xx 3.3Volt trên SPI> V .
Vốn ‘W’ Cho phép bất kỳ nguồn cung cấp điện nào được chọn trong menu trước đó, một ‘W’ nhỏ sẽ vô hiệu hóa chúng. V Hiển thị màn hình điện áp cung cấp, hiện hiển thị đầu ra 3.3Volts từ nguồn cung cấp 3.3Volt.
Bây giờ cấu hình đã kết thúc, chúng tôi có thể gửi các lệnh đến LTC2640 qua bus SPI. LTC2640 có giao thức giao diện 24bit (3byte). Byte đầu tiên là một lệnh, theo sau là hai byte dữ liệu. LTC2640 có sẵn trong phiên bản 8,10 và 12 bit; Phiên bản 8 bit sử dụng byte đầu tiên để đặt DAC Value, và bỏ qua byte thứ hai.
SPI> [0B00110000 255 0] <- Đặt DAC đầy đủ 110 SPI CS Đã bật 120 SPI VIẾT: 0x30 <-nguệ lệnh DAC 120 SPI VIẾT: 0xFF <-DAC giá trị 120 SPI Viết: 0x00 <-Không phải chăm sóc 140 Cs bị vô hiệu hóa SPI >.
Mỗi lệnh SPI bắt đầu bằng cách kích hoạt mã PIN Chọn chip ([). Byte đầu tiên là lệnh cập nhật DAC (0B00110000), theo sau là giá trị cho đầu ra (255) và một byte thứ ba bị bỏ qua (0). Lệnh kết thúc bằng cách vô hiệu hóa chip chọn (]).
Chúng tôi đã sử dụng DAC 8 bit với 255 bước điện áp, đầu ra được đặt thành 255 là 100%. Chúng ta có thể sử dụng đầu dò điện áp cướp biển xe buýt để đo đầu ra.
SPI> D <-Measure điện áp Đầu dò điện áp 9xx: 2.5Volts <-DAC đầu ra SPI >.
D kích hoạt một phép đo điện áp. Điện áp đầu ra DAC là 100% (255/255) của tham chiếu nội bộ, 2,5Volts.
SPI> [0B00110000 0 0] D
110 SPI CS Đã bật
120 SPI VIẾT: 0x30 <-nguệ lệnh DAC
120 SPI VIẾT: 0x00 <-DAC giá trị
120 SPI Viết: 0x00 <-Không phải chăm sóc
140 Cs bị vô hiệu hóa
Đầu dò điện áp 9xx: 0,0Volts <-DAC đầu ra
SPI >.
Lệnh tương tự với giá trị DAC là 0 đầu ra 0% (0/255) là 2,5Volts; 0volts.
SPI> [0B00110000 128 0] D
110 SPI CS Đã bật
120 SPI VIẾT: 0x30 <-nguệ lệnh DAC
120 SPI VIẾT: 0x80 <-DAC giá trị
120 SPI Viết: 0x00 <-Không phải chăm sóc
140 Cs bị vô hiệu hóa
Đầu dò điện áp 9xx: 1.2Volts <-DAC đầu ra
SPI >.
Giá trị DAC 128 là khoảng 50% (128/255) của điện áp tham chiếu, 1.2Volts.
SPI> [0B01000000 0 0] D
110 SPI CS Đã bật
120 SPI Viết: 0x40 <-Power XUỐNG XUỐNG
120 SPI Viết: 0x00 <-Không phải chăm sóc
120 SPI Viết: 0x00 <-Không phải chăm sóc
140 Cs bị vô hiệu hóa
Đầu dò điện áp 9xx: 0,0volts <-dac off
SPI >.
LTC2640 có chế độ công suất thấp, được kích hoạt bởi lệnh 0B01000000 và hai byte bị bỏ qua. Sau lệnh tắt nguồn, chúng tôi có thể xác minh rằng có đầu ra từ DAC. Viết bất kỳ giá trị DAC nào để thoát chế độ năng lượng thấp.
Lấy thêm nữa
Bước tiếp theo cho Pirate Bus là gì? Cuối cùng chúng tôi sẽ thực hiện cập nhật cuối cùng cho thiết kế bao gồm USB trên PCB hai mặt chuyên nghiệp. Đèn LED chỉ báo cung cấp năng lượng đã được dự kiến cho phiên bản này, nhưng không được bao gồm. Nó cũng sẽ hữu ích để có một đầu nối bàn phím để gỡ lỗi mà không cần PC. Kiểm tra lộ trình và danh sách mong muốn trên trang tiarate bus một ngày.
Tải xuống: buspirate.v1a.zip.