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

Σκεύη, εξαρτήματα

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.

Microcontroller

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.

Παροχή ηλεκτρικού ρεύματος

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Οι αντιστάσεις 0K (R10, R11 παραπάνω) διαιρέστε την τάση εισόδου στο μισό, καθιστώντας δυνατή τη μέτρηση έως 6,6Volts με τον μικροελεγκτή φωτογραφιών 3.3Volt.

Ο πειρατής λεωφορείων έχει τέσσερις οθόνες τάσης. Οι προμήθειες ισχύος 3.3Volt και 5volt παρακολουθούνται, όπως και η εξωτερική τάση που τροφοδοτείται στις αντιστάτες έλξης. Μια τέταρτη οθόνη συνδέεται με το PIN 9 της κεφαλίδας εξόδου για να δημιουργηθεί ένας ανιχνευτής τάσης.

Pcb

Κάντε κλικ για ένα διάγραμμα τοποθέτησης πλήρους μεγέθους (PNG). Το συμβούλιο είναι υποτιθέμενο σχεδιασμό μονής όψης, χαράξαμε τις δικές μας στο εργαστήριο σε μια μονόπλευρη PCB PCB. Στην κορυφή, κοντά στο C13, δύο καλώδια jumper συναντιούνται σε ένα μόνο μέσω. Συζητήσαμε ένα καλώδιο jumper στο άλλο στο πίσω μέρος του σκάφους.

Λίστα εξαρτημάτων

Μέρος
αξία

Ic1
Pic24fj64ga002 (cooic)

Ic2
Max3232cse (coic-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 TANTALUM CAPACITER (SMC Α)

R1
2000 Ohm Αντίσταση (0805)

R2,3
Αντίσταση 390 Ohm (0805)

R4-13
10000 Ohm Αντίσταση (0805)

R20-23
2.2k-10k Ohm Αντίσταση (μέσω οπής)

Led1,2
LED (0805)

J1
2.1mm Υποδοχή ισχύος

X2, x4
Σφιγκτήρας βιδών (2 ακροδέκτες) * Μη δοκιμασμένη

X3
DB9 θηλυκό συνδετήρα σειριακής θύρας * Μη δοκιμασμένη

Icsp
0,1 “κεφαλίδα καρφίτσας, ευθεία

Sv4
0,1 “κεφαλίδα ακίδων ή περιβόριστη κεφαλίδα

Sv5
0,1 “κεφαλίδα καρφίτσας, ευθεία

Υλικολογισμικό

Το υλικολογισμικό γράφεται στο C χρησιμοποιώντας την δωρεάν έκδοση επίδειξης της φωτογραφίας C30 Compiler. Μάθετε όλα σχετικά με την εργασία με αυτή τη φωτογραφία στην εισαγωγή μας στη σειρά φωτογραφιών 24F.

Το πιο πρόσφατο firmware δημοσιεύεται στο hack μια PIRATE DAY PIRATE BUS. Η τρέχουσα πηγή είναι στο αποθετήριο SVN κώδικα Google.

Χρησιμοποιώντας το

Το διάγραμμα παραπάνω δείχνει το pinout Pirate Bus.

Κάναμε ένα καλώδιο με κλιπ αλλιγάτορα στο τέλος και πρόσθεσε ετικέτες σε κάθε σύρμα, ώστε να μην χρειάζεται να αναφερθούμε σε αυτόν τον πίνακα κάθε φορά που διενεργούμε ένα νέο τσιπ.

Εάν γνωρίζετε για τυχόν καταπληκτικές συνδέσεις ή καλώδια, παρακαλούμε συνδέστε μαζί τους στα σχόλια.

LTC2640 SPI Ψηφιακό για αναλογικό μετατροπέα τάσης

Η γραμμική τεχνολογία LTC2640-LZ8 είναι ένας ψηφιακός δίσκος 8bit για αναλογικό μετατροπέα (DAC) που έχει προγραμματιστεί μέσω SPI. Ένα DAC είναι ουσιαστικά ένα προγραμματιζόμενο διαχωριστικό τάσης. Είναι επωφελείς για την αναδημιουργία κυματομορφών, όπως ηχητικά σήματα. Ένα 8bit DAC έχει 255 ακόμη και μεταξύ 0 και την τάση αναφοράς, το τμήμα L χρησιμοποιήθηκε έχει εσωτερική αναφορά 2.5Volt.

Το LTC2640 έρχεται μόνο σε ένα μικρό πακέτο SOT223-8, οπότε κάναμε έναν προσαρμογέα Breadboard στο προφίλ ενός τσιπ DIP-8. Το αποτύπωμα LTC2640 μας περιλαμβάνεται στο αρχείο του έργου που επισυνάπτεται στο τέλος αυτού του άρθρου.

Το σχηματικό παραπάνω δείχνει το κύκλωμα δοκιμής μας για το LTC2640. Απαιτεί μια τροφοδοσία 2,7-5 ιντσών, χρησιμοποιήσαμε την τροφοδοσία 3.3volt του Pirate 3.3volt. Το C1 είναι ένας πυκνωτής παράκαμψης μεταξύ του πείρου ρεύματος και της γείωσης. Το PIN 8 είναι ένα PIN ενεργής χαμηλής επαναφοράς, συνδέστε το υψηλό για κανονική λειτουργία. Το PIN 7 είναι η έξοδος DAC, συνδέστε τον αισθητήρα μέτρησης τάσης πειρατών (ADC) εδώ.

Πειρατής λεωφορείων
LTC2640 (PIN #)

Μόση
SDI (3)

ΡΟΛΟΪ
SCK (2)

Cs
CS / LD (1)

Adc
(7)

+ 3.3Volts
CLR (8)

+ 3.3Volts
VDD (5)

ΓΕ
GND (4)

Συνδέσαμε τον πειρατή του λεωφορείου στο LTC2640 όπως φαίνεται στο τραπέζι. Το LTC2640 δεν έχει PIN εξόδου δεδομένων, αυτή η σύνδεση SPI παραμένει αχρησιμοποίητη.

Η βιβλιοθήκη Hardware Spi Pirate Pirate και η βιβλιοθήκη Raw3wire του λογισμικού είναι συμβατά με τη διασύνδεση SPI του LTC2640. Χρησιμοποιήσαμε τη βιβλιοθήκη SPI. Εάν χρησιμοποιείτε τη βιβλιοθήκη RAW3Wire, βεβαιωθείτε ότι έχετε επιλέξει την κανονική έξοδο PIN.

HIZ> M <-Επιλέξτε τη λειτουργία 1. Hiz 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 <-Test σε χαμηλή ταχύτητα ... 102 SPI έτοιμο Spi>

Πατήστε M για το μενού λειτουργίας Pirate Bus, επιλέξτε 5 για λειτουργία SPI. Υπάρχει μια δέσμη επιλογών διαμόρφωσης για τη μονάδα SPI, χρησιμοποιήστε τις προεπιλεγμένες επιλογές για όλα αυτά. Αφού η λειτουργία SPI είναι έτοιμη, πρέπει να διαμορφώσουμε την παροχή ρεύματος.

Spi> p <-power setup τροφοδοσίας W / W Ανταλλαγή 3.3Volt Παροχή; 1. όχι 2. Ναι Λειτουργία> 2 <-us use 3.3volt W / W Ανταλλάξτε την παροχή 5volt; 1. όχι 2. Ναι Λειτουργία> 1 <-Δεν χρησιμοποιείτε τροφοδοσία 5volt 9xx τροφοδοσία διαμορφωμένου, χρησιμοποιήστε w / w έως εναλλαγή Παρακολούθηση τάσης 9xx: 5V: 0.0 | 3.3V: 0.0 | VPullup: 0.0 | Spi>

Το P ανοίγει το μενού τροφοδοσίας Pirate Power. Χρησιμοποιούμε την τροφοδοσία 3.3volt αλλά όχι την παροχή 5volt. Η οθόνη τάσης επαληθεύει ότι τα τροφοδοτικά είναι απενεργοποιημένα.

Το SPI> W <-Capital W (SILLY CSS) επιτρέπει την τροφοδοσία ρεύματος 9xx 3.3volt Παροχή SPI> V <-Voltage Monitor Παρακολούθηση τάσης 9xx: 5V: 0.0 | 3.3V: 3.3 | VPullup: 0.0 | Spi>

Το Capital ‘W’ επιτρέπει σε οποιεσδήποτε προμήθειες τροφοδοσίας που επιλέγονται στο προηγούμενο μενού, ένα μικρό «W» τους απενεργοποιεί. V Εμφανίζει την οθόνη τάσης τροφοδοσίας, η οποία δείχνει τώρα έξοδο 3.3Volts από την παροχή 3.3volt.

Τώρα που ολοκληρωθεί η διαμόρφωση, μπορούμε να στείλουμε εντολές στο LTC2640 πάνω από το λεωφορείο SPI. Το LTC2640 διαθέτει πρωτόκολλο διεπαφής 24bit (3byte). Το πρώτο byte είναι μια εντολή, ακολουθούμενη από δύο byte δεδομένων. Το LTC2640 είναι διαθέσιμο σε εκδόσεις 8,10 και 12bit. Η έκδοση 8bit χρησιμοποιεί το πρώτο byte για να ρυθμίσει την αξία DACe, and ignores the second byte.

SPI>[0b00110000 255 0]<–set DAC to full 110 SPI CS ENABLED 120 SPI WRITE: 0x30<–write DAC command 120 SPI WRITE: 0xFF<–DAC value 120 SPI WRITE: 0x00<–don’t care 140 CS DISABLED Spi>

Every SPI command begins by enabling the chip select pin ([). The first byte is the command to update the DAC (0b00110000), followed by the value to output (255), and a third byte that’s ignored (0). The command ends by disabling chip select (]).

We used an 8bit DAC with 255 even voltage steps, output set to 255 is 100%. We can use the Bus Pirate voltage probe to measure the output.

SPI>d<–measure voltage 9xx VOLTAGE PROBE: 2.5VOLTS<–DAC output Spi>

D triggers a voltage measurement. The DAC output voltage is 100% (255/255) of the internal reference, 2.5volts.

SPI>[0b00110000 0 0] d
110 SPI CS ENABLED
120 SPI WRITE: 0x30<–write DAC command 120 SPI WRITE: 0x00<–DAC value 120 SPI WRITE: 0x00<–don’t care 140 CS DISABLED 9xx VOLTAGE PROBE: 0.0VOLTS<–DAC output Spi>

The same command with a DAC value of 0 outputs 0% (0/255) of 2.5volts; 0volts.

SPI>[0b00110000 128 0] d
110 SPI CS ENABLED
120 SPI WRITE: 0x30<–write DAC command 120 SPI WRITE: 0x80<–DAC value 120 SPI WRITE: 0x00<–don’t care 140 CS DISABLED 9xx VOLTAGE PROBE: 1.2VOLTS<–DAC output Spi>

A DAC value of 128 is about 50% (128/255) of the reference voltage, 1.2volts.

SPI>[0b01000000 0 0] d
110 SPI CS ENABLED
120 SPI WRITE: 0x40<–power down command 120 SPI WRITE: 0x00<–don’t care 120 SPI WRITE: 0x00<–don’t care 140 CS DISABLED 9xx VOLTAGE PROBE: 0.0VOLTS<–DAC off Spi>

The LTC2640 has a low power mode, triggered by the command 0b01000000 and two bytes that are ignored. After the power down command we can verify that there’s output from the DAC. write any DAC value to exit low power mode.

Taking it further

What’s the next step for the Bus Pirate? We’ll eventually make a final update to the design that includes USB on a professionally made, double-sided PCB. Power supply indicator LEDs were slated for this version, but didn’t get included. It would also be helpful to have an AT  keyboard connector for debugging without a PC. check out the roadmap and wishlists on the Hack a Day Bus Pirate page.

Download: buspirate.v1a.zip

Leave a Reply

Your email address will not be published. Required fields are marked *