Debug Board v2/it

From Openmoko

Revision as of 23:48, 22 August 2008 by DolfjeBot1 (Talk | contribs)

Jump to: navigation, search

La pagina Debug Board fornisce informazioni sull'architettura della seconda versione della Debug Board per il Neo1973.

Architecture Diagram
Annotated PCB Photograph


Contents

Panoramica

La debug board fornisce i seguenti componenti chiave.

Hub USB

Questo hub alimentato dal bus

  • si connette al laptop usando la porta di upstream
  • si connette all'FT2232D per la JTAG e per la console seriale sulla porta di downstream 1
  • si connette ad una porta USB-A libera usando la porta di downstream 2
  • si connette al telefono usando la porta di downstream 3

Usando l'hub, è possibile avere accesso al telefono, alla JTAG ed alla seriale simultaneamente, attraverso un unico cavo USB.

È possibile ricaricare il telefono (carica lenta a 100mA) anche usando la porta di downstream.

Per le funzionalità ISB hub, viene utilizzato l'integrato TUSB2046B.

JTAG attraverso l'FT2232

Fondamentalmente, abbiamo integrato un adattatore USB-JTAG simile a quello [Amontec JTAGkey-tiny]. Il design di riferimento utilizzato (Grazie a Joern!) si può trovare su http://www.oocdlink.com

In questo modo abbiamo ottenuto la possibilità di debugging tramite JTAG, circa 150 volte più veloce della wiggler

La porta JTAG è attaccata con

  • il telefono (attraverso il cavo flessibile di debug)
  • Un connettore a 20-pin usando il pinout ARM-JTAG standard
    • questo permette all'utente di utilizzare questo dispositivo come un adattatore JTAG anche con altri dispositivi basati su ARM

Porta Seriale

Invece di utilizzare una vera porta RS232, abbiamo voluto utilizzare un integrato per convertite l'USB in seriale, come l'FT232 o il PL2303.

Appena si accende, possiamo anche usare la seconda porta dell'FT2232 contemporaneamente alla JTAG. Quindi non sono necessari altri FT232 o PL2303.

Porta Seriale Tri-State

La porta seriale necessita di driver tri-state (alta impedenza), dal momento che e' connessa contemporaneamente sia al modem GSM sia all debug board. Pilotiamo il driver tri-state driver attraverso il negato del segnale GSM_EN (pin 7 del connettore FPC).

Istruzioni di utilizzo

Prerequisiti

EEPROM FT2232D

La tua Debug Board contiene una piccola EEPROM seriale che dovrebbe essere stata programmata correttamente in fase di produzione. In ogni caso, alcune schede sono state programmate in modo non corretto od incompleto durante l'assemblaggio e pertanto ci si dovrebbe assicurare della corretta programmazione.

Se la scheda possiede l'USB ID 1457:5118, tutto e' corretto.

Solo se la tua scheda possiede l'USB ID 0403:6010, allora occorre riprogrammare la scheda!

Riprogrammarla con Linux
NOTE: FIC lo ha già fatto per te, nel caso in cui ti sia stata ufficialmente fornita la scheda. In ogni caso, se sei uno dei primi sviluppatori, le configurazioni dell'USB vendorID / productID potrebbero non essere state configurate correttamente.


Per effettuare tale operazione, è possibile usare il programma ftdi_eeprom scaricabile dal sito http://www.intra2net.com/de/produkte/opensource/ftdi/. Sfortunatamente, l'ultima versione (0.2) sembra non supportare ancora la nostra FT2232D, pertanto dovrai prima applicare la patch scaricabile dal sito http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/ftdi_eeprom-0.2-moko.patch

Potrebbe inoltre essere necessario applicare la seguente patch alla libreria libftdi: http://people.openmoko.org/werner/libftdi-c56-strings-dirty-hack.patch (Vedi http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=321 per ulteriori dettagli.)

Inoltre, si avrà bisogno della configurazione dell'EEPROM: http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/neo1973_debug_board_v2.ftdi

Dopo che si è compilato ftdi_eeprom, è possibile eseguire

ftdi_eeprom --flash-eeprom neo1973_debug_board_v2.ftdi
WARNING: Assicurarsi di non avere altri dispositivi basati sull'FTDI FT232 / FT2232 connessi all'USB mentre si esegue ftdi_eeprom. Potrebbe essere saggio disconnettere tutti i dispositivi tranne la debug board


Se tutto è andato a buon fine, si dovrebbe ottenere qualcosa di simile a:

FTDI eeprom generator v0.2
(c) Intra2net AG <opensource@intra2net.com>
FTDI init: 0
Unable to find FTDI devices under given vendor/product id: 0x1457/0x5118
Retrying with default FTDI id.
Used eeprom space: 102 bytes
FTDI write eeprom: 0
Writing to file: neo1973_debug_board_v2.eeprom
FTDI close: 0

Una volta che la procedura di riprogrammazione è terminata, semplicemente disconnettete e riconnettete la scheda, e dovreste vedere

$ lsusb -v -d 0x1457:                                                                                                                                                                                               
Bus 005 Device 009: ID 1457:5118  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1457 
  idProduct          0x5118 
  bcdDevice            5.00
  iManufacturer           1 Openmoko
  iProduct                2 Debug Board for Neo1973
  iSerial                 0 
  bNumConfigurations      1
  [...]
Riprogrammarla con Windows
NOTE: FIC lo ha già fatto per te, nel caso in cui ti sia stata ufficialmente fornita la scheda. In ogni caso, se sei uno dei primi sviluppatori, le configurazioni dell'USB vendorID / productID potrebbero non essere state configurate correttamente.


Per effettuare questa operazione, è possibile usare il programma FTDI Mprog scaricabile da http://www.ftdichip.com/Resources/Utilities/MProg3.0_Setup.exe

Avrai bisogno del

Drivers

Linux

Assicurarsi di avere la libreria libftdi-0.8 o superiore. È noto che versioni antecedenti creano incompatibilità.

Inoltre, dovrai fare:

opzione sul modulo ftdi_sio
rmmod ftdi_sio
modprobe ftdi_sio vendor=0x1457 product=0x5118

o analogamente nel tuo modules.conf

regola udev

È necessario installare le seguenti regole da http://people.openmoko.org/laforge/misc/debug_board_v2/udev_rules/

Windows

Utilizzare i driver da http://people.openmoko.org/laforge/misc/debug_board_v2/windows_drivers/

Connessione hardware

Attualmente in uso

Su Linux

Porta Seriale

Il kernel di Linux della tua macchina host creerà un dispositivo seriale virtuale chiamato /dev/ttyUSBx dove 'x' e' un numero assegnato in modo sequenziale. Se non avete nessun altro convertitore USB seriale connesso alla vostra macchina, il nome del dispositivo sarà /dev/ttyUSB0.

Potete utilizzare il vostro emulatore di terminale preferito (minicom, cu, zc, ...) proprio come qualsiasi altra vera porta seriale.

JTAG

Una volta installata la libreria libftdi >= 0.8 e configurata OpenOCD con il corretto openocd.cfg scaricato da OpenOCD#openocd.cfg, dovrebbe funzionare immediatamente.

Per ulteriori informazioni fare riferimento a OpenOCD#OpenOCD e la Debug Board .

Cronologia

Prima utilizzavamo la Debug Board v1

Cambiamenti dalla v1 alla v2

  • ci siamo sbarazzati dell'ethernet
    • non ne abbiamo bisogno, e
    • non vogliamo proprio un bus parallelo a 40pin a 66MHz tra due PCB
  • ci siamo sbarazzati del display a sette segmenti
    • non ce n'era veramente bisogno. Abbiamo una porta seriale e
    • può essere sostituito da uno o due LED GPIO (General Purpose I/O)
  • ci siamo sbarazzati della wiggler integrata
    • quasi nessuno oggigiorno ha una porta parallela sul proprio portatile
  • ci siamo sbarazzati della batteria a ioni di litio (insieme al caricatore)
    • il dispositivo può essere completamente alimentato dall'usb del portatile

Personal tools

La pagina Debug Board fornisce informazioni sull'architettura della seconda versione della Debug Board per il Neo1973.

Architecture Diagram
Annotated PCB Photograph


Panoramica

La debug board fornisce i seguenti componenti chiave.

Hub USB

Questo hub alimentato dal bus

  • si connette al laptop usando la porta di upstream
  • si connette all'FT2232D per la JTAG e per la console seriale sulla porta di downstream 1
  • si connette ad una porta USB-A libera usando la porta di downstream 2
  • si connette al telefono usando la porta di downstream 3

Usando l'hub, è possibile avere accesso al telefono, alla JTAG ed alla seriale simultaneamente, attraverso un unico cavo USB.

È possibile ricaricare il telefono (carica lenta a 100mA) anche usando la porta di downstream.

Per le funzionalità ISB hub, viene utilizzato l'integrato TUSB2046B.

JTAG attraverso l'FT2232

Fondamentalmente, abbiamo integrato un adattatore USB-JTAG simile a quello [Amontec JTAGkey-tiny]. Il design di riferimento utilizzato (Grazie a Joern!) si può trovare su http://www.oocdlink.com

In questo modo abbiamo ottenuto la possibilità di debugging tramite JTAG, circa 150 volte più veloce della wiggler

La porta JTAG è attaccata con

  • il telefono (attraverso il cavo flessibile di debug)
  • Un connettore a 20-pin usando il pinout ARM-JTAG standard
    • questo permette all'utente di utilizzare questo dispositivo come un adattatore JTAG anche con altri dispositivi basati su ARM

Porta Seriale

Invece di utilizzare una vera porta RS232, abbiamo voluto utilizzare un integrato per convertite l'USB in seriale, come l'FT232 o il PL2303.

Appena si accende, possiamo anche usare la seconda porta dell'FT2232 contemporaneamente alla JTAG. Quindi non sono necessari altri FT232 o PL2303.

Porta Seriale Tri-State

La porta seriale necessita di driver tri-state (alta impedenza), dal momento che e' connessa contemporaneamente sia al modem GSM sia all debug board. Pilotiamo il driver tri-state driver attraverso il negato del segnale GSM_EN (pin 7 del connettore FPC).

Istruzioni di utilizzo

Prerequisiti

EEPROM FT2232D

La tua Debug Board contiene una piccola EEPROM seriale che dovrebbe essere stata programmata correttamente in fase di produzione. In ogni caso, alcune schede sono state programmate in modo non corretto od incompleto durante l'assemblaggio e pertanto ci si dovrebbe assicurare della corretta programmazione.

Se la scheda possiede l'USB ID 1457:5118, tutto e' corretto.

Solo se la tua scheda possiede l'USB ID 0403:6010, allora occorre riprogrammare la scheda!

Riprogrammarla con Linux
NOTE: FIC lo ha già fatto per te, nel caso in cui ti sia stata ufficialmente fornita la scheda. In ogni caso, se sei uno dei primi sviluppatori, le configurazioni dell'USB vendorID / productID potrebbero non essere state configurate correttamente.


Per effettuare tale operazione, è possibile usare il programma ftdi_eeprom scaricabile dal sito http://www.intra2net.com/de/produkte/opensource/ftdi/. Sfortunatamente, l'ultima versione (0.2) sembra non supportare ancora la nostra FT2232D, pertanto dovrai prima applicare la patch scaricabile dal sito http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/ftdi_eeprom-0.2-moko.patch

Potrebbe inoltre essere necessario applicare la seguente patch alla libreria libftdi: http://people.openmoko.org/werner/libftdi-c56-strings-dirty-hack.patch (Vedi http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=321 per ulteriori dettagli.)

Inoltre, si avrà bisogno della configurazione dell'EEPROM: http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/neo1973_debug_board_v2.ftdi

Dopo che si è compilato ftdi_eeprom, è possibile eseguire

ftdi_eeprom --flash-eeprom neo1973_debug_board_v2.ftdi
WARNING: Assicurarsi di non avere altri dispositivi basati sull'FTDI FT232 / FT2232 connessi all'USB mentre si esegue ftdi_eeprom. Potrebbe essere saggio disconnettere tutti i dispositivi tranne la debug board


Se tutto è andato a buon fine, si dovrebbe ottenere qualcosa di simile a:

FTDI eeprom generator v0.2
(c) Intra2net AG <opensource@intra2net.com>
FTDI init: 0
Unable to find FTDI devices under given vendor/product id: 0x1457/0x5118
Retrying with default FTDI id.
Used eeprom space: 102 bytes
FTDI write eeprom: 0
Writing to file: neo1973_debug_board_v2.eeprom
FTDI close: 0

Una volta che la procedura di riprogrammazione è terminata, semplicemente disconnettete e riconnettete la scheda, e dovreste vedere

$ lsusb -v -d 0x1457:                                                                                                                                                                                               
Bus 005 Device 009: ID 1457:5118  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1457 
  idProduct          0x5118 
  bcdDevice            5.00
  iManufacturer           1 Openmoko
  iProduct                2 Debug Board for Neo1973
  iSerial                 0 
  bNumConfigurations      1
  [...]
Riprogrammarla con Windows
NOTE: FIC lo ha già fatto per te, nel caso in cui ti sia stata ufficialmente fornita la scheda. In ogni caso, se sei uno dei primi sviluppatori, le configurazioni dell'USB vendorID / productID potrebbero non essere state configurate correttamente.


Per effettuare questa operazione, è possibile usare il programma FTDI Mprog scaricabile da http://www.ftdichip.com/Resources/Utilities/MProg3.0_Setup.exe

Avrai bisogno del

Drivers

Linux

Assicurarsi di avere la libreria libftdi-0.8 o superiore. È noto che versioni antecedenti creano incompatibilità.

Inoltre, dovrai fare:

opzione sul modulo ftdi_sio
rmmod ftdi_sio
modprobe ftdi_sio vendor=0x1457 product=0x5118

o analogamente nel tuo modules.conf

regola udev

È necessario installare le seguenti regole da http://people.openmoko.org/laforge/misc/debug_board_v2/udev_rules/

Windows

Utilizzare i driver da http://people.openmoko.org/laforge/misc/debug_board_v2/windows_drivers/

Connessione hardware

Attualmente in uso

Su Linux

Porta Seriale

Il kernel di Linux della tua macchina host creerà un dispositivo seriale virtuale chiamato /dev/ttyUSBx dove 'x' e' un numero assegnato in modo sequenziale. Se non avete nessun altro convertitore USB seriale connesso alla vostra macchina, il nome del dispositivo sarà /dev/ttyUSB0.

Potete utilizzare il vostro emulatore di terminale preferito (minicom, cu, zc, ...) proprio come qualsiasi altra vera porta seriale.

JTAG

Una volta installata la libreria libftdi >= 0.8 e configurata OpenOCD con il corretto openocd.cfg scaricato da OpenOCD#openocd.cfg, dovrebbe funzionare immediatamente.

Per ulteriori informazioni fare riferimento a OpenOCD#OpenOCD e la Debug Board .

Cronologia

Prima utilizzavamo la Debug Board v1

Cambiamenti dalla v1 alla v2

  • ci siamo sbarazzati dell'ethernet
    • non ne abbiamo bisogno, e
    • non vogliamo proprio un bus parallelo a 40pin a 66MHz tra due PCB
  • ci siamo sbarazzati del display a sette segmenti
    • non ce n'era veramente bisogno. Abbiamo una porta seriale e
    • può essere sostituito da uno o due LED GPIO (General Purpose I/O)
  • ci siamo sbarazzati della wiggler integrata
    • quasi nessuno oggigiorno ha una porta parallela sul proprio portatile
  • ci siamo sbarazzati della batteria a ioni di litio (insieme al caricatore)
    • il dispositivo può essere completamente alimentato dall'usb del portatile