Bit Banging su FT2232: il doping delle comunicazioni seriali.

FT2232H

Sebbene non sia un tool completo come il Bus Pirate o il Bus Blaster, anche l'FT2232H ha molte applicazioni, alcune delle quali piuttosto interessanti. Ecco perchè utilizzare il bit banging è una scelta valida se lo si vuole potenziare.

Il “Bit banging” è una tecnica, utilizzata nelle comunicazioni seriali, con cui si utilizza il software piuttosto che l'hardware dedicato. Senza scendere troppo nei dettagli, alcuni dei quali potete trovarli in questo articolo di qualche tempo fa oppure in quest'altro, diciamo, però, che il bit banging è una tecnica che permette di raggiungere prestazioni più elevate rispetto alle limitazioni dell'hardware; pertanto, può essere implementato anche in sistemi embedded.

In conseguenza, l'hardware non ha bisogno di essere aggiornato per poter funzionare “meglio”.

L'emulazione software, comunque, richiede un maggior consumo di potenza ed il micro-controllore “passa la maggior parte del suo tempo” a smistare traffico tra i pin.

In applicazioni che lavorano su segnali digitali veloci è possibile che si verifichi il problema del maggior jitter, specie quando il processore è impegnato in altre operazioni di comunicazione.

Per capire meglio perché può essere utile questa tecnica, riassumiamo brevemente le caratteristiche della scheda.

Si tratta di un convertitore USB/Serial di 5a generazione che implementa: USB 2.0 High-Speed (480Mb/s), 2 porte USB-to-serial indipendenti, due moduli MPSSE con I2C, SPI, e JTAG, pin di I/O general purpose (e quindi programmabili), supporto per il debugger JTAG ed altre piattaforme.

Lo schematico della scheda è quelo che trovate qui di seguito.

 

La domanda, pertanto, diventa: come si usa questa tecnica con l'FT2232H?

Un esperimento, di cui si parla qui, mostra come sia possibile pilotare uno shift register grazie alla FT2232H sotto Linux.

Si tratta di un'applicazione piuttosto elementare che può, però, essere utile per progetti più “demanding” in termini di risorse.

Le principali funzioni alle quali prestare attenzione quando si inizia a lavorare in questa applicazione sono: ftdi_usb_open, ftdi_set_bitmode, per decidere se attivare il bit banging, e ftdi_write_data, per modificare lo stato di ciascun pin.

Il codice di riferimento è, comunque, consultabile qui.

Se siete rimasti abbastanza incuriositi e volete provare, non vi resta che fare un giro sul sito di Seeedstudio oppure trovare i componenti sul sito di Farnell; a fronte di una spesa irrisoria, potrete iniziare da subito a fare delle prove.

2 Comments

  1. Emanuele 9 luglio 2012
  2. slovati 11 luglio 2012

Leave a Reply