Ifrim Valentin Personal Web Page
 


Microcontrollori \ Bus sniffer

Bus sniffer interface

   
Dettagli costruzione
Descrizione generale
Hardware
Firmware
Il software necessario e i passi da seguire per la programmazione dell'EEPROM con il VID e PID desiderato
Utilizzo
  A che cosa serve
Download
  I file eagle 6.1
 
         
       
  Descrizione generale    
   

Il dispositivo per l'analizzazione dei bus dati è composto da due schede :
- scheda USB,
- scheda interfaccia.
La scheda USB è una scheda di sviluppo per il circuito integrato CY7C68013A prodotta da Lcsoft acquistabile su ebay a un prezzo intorno a 15€.
La scheda interfaccia può essere autocostruita seguendo i dettagli e lo schema che troverete in seguito.

 
     
       
  Hardware    
   


La scheda di sviluppo EZ-USB FX2LP CY7C68013A contiene un chip di memoria eeprom I2C AT24C128 che può essere utilizzato per memorizzare il valore VID e PID e anche il firmware per il microcontrollore CY7C68013A.
L'eeprom ha indirizzo I2C 0xA2 con il jumper J1 inserito o 0xA0 con il J1 aperto.
Quando si utilizza la scheda di interfaccia il jumper J1 deve essere inserito per non avere due componenti I2C con lo stesso indirizzo(0xA0). Personalmente ho preferito dissaldare (alzare) il pin 5(SDA) del chip U3(AT24C128).
La tensione di alimentazione della scheda è fornita dalla porta USB, tensione che è ulteriormente ridotta a 3,3 V con il regolatore U2.
La scheda di interfaccia ha bisogno anche di una tensione di +5v necessaria al chip RS485. Per questo si salda un connettore a due pin in parallelo al condensatore C11. Si può evitare questo lavoro se il chip MAX485 è sostituito con un altro che funziona a 3.3V.

 
   


Nella scheda di interfaccia sono montati due chip eeprom (24LC02) che funzionano a una tensione di 3,3V, con lo stesso indirizzo I2C - 0xA0. La selezione tra le due memorie eeprom si fa commutando la linea SDA (del bus I2C) con il jumper JP1.
Il chip IC1 - SN74LVC245A serve da interfaccia tra i segnali da analizzare e il microcontrollore CY7C68013A.
Il circuito integrato SN74LVC245A è alimentato a 3.3V, accetta segnali di ingresso fino a +5,5V e offre protezione ESD (Electrostatic Discharge).
I canali D0, D1, D3 sono condivisi con l'interfaccia RS232 e RS485 con l'ausilio di tre commutatori a slitta.

 
   

Il PCB è di tipo monofaccia con componenti SMD sul lato saldature. Sul lato componenti sono disposti i connettori P1, P3, JP5 per il collegamento con la scheda USB. Inoltre sullo stesso lato troviamo i connettori SV1,2,3 per collegamenti esterni e il chip per interfaccia RS485.
Nell'immagine sopra con la linea tratteggiata è rappresentata la scheda USB (scheda di sviluppo CY7C68013A) .

 
   
 
       
  Firmware    
   

All'accensione il chip CY7C68013A controlla la sua porta I2C per la connessione di una memoria eeprom (con l'indirizzo 0xA0/small eeprom o 0xA2/large eeprom) di cui il primo byte è 0xC0 o 0xC2.
Se trovato, utilizza i valori VID/PID letti da EEPROM, altrimenti utilizza i valori predefiniti: "VID=04B4, PID=8613".
Se il primo Byte dell'eeprom è 0xC2 il CY7C68013A carica anche il programma dall'eeprom nella ram interna.

Passi da seguire per programmare i chip EEPROM con i VID e PID da noi desiderato:

A-Installare il software per il kit di sviluppo "CY3684EZ-USB FX2LP Development Kit".

ll file CY3684Setup.exe è scaricabile da http://www.cypress.com/?rID=14321 e contiene driver , essempi, utilitare e "Cypress Suite USB 3.4.7".

B- Installare i driver per la scheda di sviluppo.

1-- collegare la scheda al PC con il jumper J1(scheda USB) desinserito e il jumper JP1(scheda interfaccia) desinserito. Se il SO chiede di installare il driver per il dispositivo andate direttamene al punto 5.

2-- in dispositivi e stampanti (o in device manager) fate doppio clik sul vostro dispositivo (Ha il ID Hardware "USB\VID_04B4&PID_8613 ..." - in finestra proprietà/dettagli)

3-- selezionare il tab Driver nela finestra Proprietà

4-- click su aggiorna driver

5-- scegliere l'opzione "Cerca il software del driver nel computer"

6-- click su "Sfoglia" per indicare la cartella con i file driver. Nella cartella C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Drivers\cyusbfx1_fx2lp\ troviamo i driver per diversi sistemi operativi.
Esempio: per Win7 a 64bit la cartella è "C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Drivers\cyusbfx1_fx2lp\wlh-win7\x64" .

7-- click sul tasto "Avanti", e dopo l' installazione del driver il nostro dispositivo sarà riconosciuto come "Cypress EZ-USB FX2LP No EEPROM(3.4.5.000)"

C- Programmare le memorie eeprom con i nostri valori per VID e PID.

Per questo utilizzeremo il programmino FxEEPROM.exe installato al punto A ("C:\Cypress\Cypress Suite USB 3.4.7\CyAPI\examples\FxEEPROM\FxEEPROM.exe").

1-- per programmare la memoria che si trova sulla scheda di sviluppo (con il jumper J1 inserito e senza scheda interfaccia conessa) è utilizzato il tasto "Program Large EEPROM" che ci chiede il file con l'estensione "*.iic" preparato con i nostri valori del VID e PID (vedi il punto D).

2-- per programmare una delle memorie eeprom trovate sulla scheda interfaccia, scelta con il jumper JP1 (J1-scheda USB inserito o il chip U3 eeprom dissaldato), è utilizzato il tasto "Program Small EEPROM" che poi chiederà di scegliere il file "*.iic" desiderato.

3-- Al momento dell' accensione della scheda, la memoria eeprom deve essere vuota o scollegata (J1-desinserito) per fare in modo che il programma "FxEEPROM.exe" riconosca la scheda come "Cypress EZ-USB FX2LP No EEPROM(3.4.5.000)". Dopo il riconoscimento della scheda da parte del sistema operativo si può abilitare la mem. eeprom desiderata (con J1 l' eeprom sulla scheda usb e con JP1 l'eeprom sulla scheda interfaccia).

D- Preparare Il file *.iic con il valore VID e PID.

Per creare un file per EEPROM in formato hex si deve utilizzare un editor esadecimale. Può essere utilizzato HxD - programma free scaricabile da " http://mh-nexus.de/en/downloads.php?product=HxD ".


Il file di prova EEPROM_test.iic.

Nell'immagine di sopra con il file EEPROM_test.iic i valori che saranno scritti in eeprom ("C0 25 09 81 38 00 00 00") rappresentano:
- C0 - indica al microcontrollore che la memoria contiene i valori VID/PID;
- 25 09 - valore VID che in questo esempio è 0x0925;
- 81 38 - valore PID che in questo esempio è 0x3881;
- 00 00 00 - valore DID.
Siccome nell'eeprom i dati sono a 8bit, il valore a 16bit viene scritto con il byte meno significativo prima del byte più significativo (0x0925 -> 0x25 seguito da 0x09).

 
       
  Utilizzo    
    All'indirizzo http://sigrok.org/wiki/Fx2lafw si possono trovare inforrmazioni dettagliate su diversi prodotti hardware che utilizzano questo microcontrollore, compresi i loro VID e PID. In questo modo si può clonare uno di questi prodotti e testare il loro software.  
       
  Download    
         
    Il file zip con lo schema e il PCB realizzato con il programma Eagle 6.1  
         

 

Inizio della pagina
Termini e condizioni
Copyright ©2013 Ifrimv    Site designed by Ifrim Valentin