= VäyläPiraatti aka Bus Pirate = {{attachment:buspiratev3a.jpg||width=480 height=384}} <> Bus Pirate (http://dangerousprototypes.com/docs/Bus_Pirate) eli kotoisammin VäyläPiraatti on ''"an open source hacker multi-tool that talks to electronic stuff"''. VäyläPiraatilla voi jutella helposti ja vaivattomasti älyllisen elektroniikan kanssa käyttäen esimerkiksi I2C, JTAG, 1-Wire, jne. väyliä. = 1-Wire väylää piratoimassa = 1-Wire laite kytketään Bus Pirateen seuraavasti: || '''Bus Pirate''' || '''1-Wire''' || || GND || GND || || MOSI || DQ || || 3.3V || Vdd || || VPU || Vdd || Tätä tekstiä kirjoittaessa on käytössä Bus Pirate v3a firmwaren versiolla 5.10, kuten alta näkyy: {{{ HiZ> i Bus Pirate v3a Firmware v5.10 (r559) Bootloader v4.1 DEVID:0x0447 REVID:0x3043 (24FJ64GA002 B5) http://dangerousprototypes.com }}} Bus Piratelle juttelu tapahtuu sarjakonsolin kautta. Rivit, jotka tässä esimerkissä alkavat {{{HiZ>}}} tai {{{1-WIRE>}}} ovat komentokehotteita, joiden perässä on annettu yleensä yhden tai useamman merkin mittainen komento. Sen jälkeen tulevat rivit ovat vastaus Bus Piratelta. Bus Piratella on useita moodeja. Ensimmäinen moodi, johon piraatti käynnistyy on HiZ (high impedance). Tässä moodissa kaikki väylät ovat jännitteettömiä ja suuri-impedanssisessa tilassa. Muita tiloja on firmwaren mukaan tarjolla useita. Siirrytään 1Wire moodiin: {{{ HiZ> m2 1WIRE routines (C) 2000 Michael Pearce GNU GPL Ready }}} Bus Piraten käynnistyessä jännitelähteet ovat pois päältä. Tämä voidaan tarkastaa seuraavasti: {{{ 1-WIRE> v Pinstates: 1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk) GND 3.3V 5.0V ADC VPU AUX - OWD - - P P P I I I I I I I GND 0.00V 0.00V 0.00V 0.00V L L L L L }}} Mutta piraatista irtoaa kyllä sähköä sitä haluaville: {{{ 1-WIRE> W Power supplies ON 1-WIRE> v Pinstates: 1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk) GND 3.3V 5.0V ADC VPU AUX - OWD - - P P P I I I I I I I GND 3.36V 5.00V 0.00V 3.22V H L L L H }}} Huomionarvoista on jännite viitospinnissä (VPU). VPU ja 3.3V on oikosuljettu, jolloin voidaan käyttää Bus Piraten pull-up vastusta 1-Wire väylän sähkönsyöttöön. Ja piraatin jännitemonitori huomaa jännitteen. Jännitteet sammutetaan seuraavasti (huomaa komennot {{{w}}} jännite pois ja {{{W}}} jännite päälle): {{{ 1-WIRE> w Power supplies OFF 1-WIRE> v Pinstates: 1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk) GND 3.3V 5.0V ADC VPU AUX - OWD - - P P P I I I I I I I GND 0.00V 0.00V 0.00V 0.00V H L L L H }}} Mutta nyt halutaan jutella 1-Wire laitteelle. Joten jännitteet ylös, pull-up vastus esiin ja Bus Pirate magiaa käyttöön! {{{ 1-WIRE> W Power supplies ON 1-WIRE> P Pull-up resistors ON 1-WIRE> v Pinstates: 1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk) GND 3.3V 5.0V ADC VPU AUX - OWD - - P P P I I I I I I I GND 3.23V 5.01V 0.00V 3.26V H H H H H 1-WIRE> (0xF0) SEARCH (0xF0) Macro 1WIRE address 1.0x22 0x8B 0xDA 0x03 0x00 0x00 0x00 0xEC *DS1822 Econ Dig Therm Device IDs are available by MACRO, see (0). }}} Komento {{{(0xF0)}}} (sulut oleelliset!) on Bus Piraten firmwaresta löytyvä makro, jolla suoritetaan 1Wire antureiden tunnistus väylästä. Ja sieltähän sitä löytyi Dallasin valmistama DS1822 lämpöanturi. 1-Wire laitteen kanssa oikea juttelu: {{{ 1-WIRE> { 0x55 (1) 0x44 &:750 { 0x55 (1) 0xBE r:9 BUS RESET OK # "{" merkki komennon alussa WRITE: 0x55 # 0x55 (ROM command: MATCH ROM) ADDRESS MACRO 1: 0x22 0x8B 0xDA 0x03 0x00 0x00 0x00 0xEC # Makro "(1)". 1-Wire anturin oma osoite WRITE: 0x44 # 0x44 (Function command: CONVERT T) DELAY 750us # &:740 (& = 1ms, toistetaan 750 kertaa) BUS RESET OK # "{" merkki komennon alussa WRITE: 0x55 # 0x55 (ROM command: MATCH ROM) ADDRESS MACRO 1: 0x22 0x8B 0xDA 0x03 0x00 0x00 0x00 0xEC # Makro "(1"). 1-Wire anturin oma osoite WRITE: 0xBE # 0xBE (Function command: READ SCRATCHPAD) READ: 0x63 0x01 0x4B 0x46 0x7F 0xFF 0x0D 0x10 0x15 # 8 tavua scratchpadin sisältöä + CRC }}} = Varrella Väylän (Piratoidaan UART:ia) = Vastapäänä Buffalon WZR-HP-G300NH wlan-tukiasema. Buffalosta kannet aukaisemalla löytyy liitin J1, jonka pinout on seuraava: || '''Nasta''' || '''Selitys''' || || 1 || DC 3.3V || || 2 || GND || || 3 || TX || || 4 || RX || VäyläPiraatti kytketään UART:iin kiinni seuraavasti: || '''Bus Pirate''' || '''UART''' || || GND || GND || || MOSI || RX || || MISO || TX || Bus Pirate alkaa jutella UART:ia komentamalla: {{{ HiZ> m3 Set serial port speed: (bps) 1. 300 2. 1200 3. 2400 4. 4800 5. 9600 6. 19200 7. 38400 8. 57600 9. 115200 10. BRG raw value (1)> 9 Data bits and parity: 1. 8, NONE *default 2. 8, EVEN 3. 8, ODD 4. 9, NONE (1)> 1 Stop bits: 1. 1 *default 2. 2 (1)> 1 Receive polarity: 1. Idle 1 *default 2. Idle 0 (1)> 1 Select output type: 1. Open drain (H=Hi-Z, L=GND) 2. Normal (H=3.3V, L=GND) (1)> 2 Ready UART> }}} Kiinnostavin ominaisuus UART-moodissa lienee bridge, mikä löytyy makrojen takaa: {{{ UART> (0) 0.Macro menu 1.Transparent bridge 2. Live monitor 3.Bridge with flow control }}} {{{ UART> (1) UART bridge Reset to exit Are you sure? y # # uname -a Linux AP001D73B3EBDD 2.6.15 #1 Thu Oct 14 11:02:39 JST 2010 mips unknown # cat /proc/cpuinfo system type : Atheros AR9100 processor : 0 cpu model : MIPS 24K V7.4 BogoMIPS : 265.21 wait instruction : yes microsecond timers : yes tlb_entries : 16 extra interrupt vector : yes hardware watchpoint : yes ASEs implemented : mips16 VCED exceptions : not available VCEI exceptions : not available }}} hacker:: [[oherrala]] started:: 2011-09-02 ---- <> ---- CategoryProjekti