Debug Board v2/it

From Openmoko

Revision as of 19:21, 9 July 2007 by SergioTota (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

Overview

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, e' possibile avere accesso al telefono, alla JTAG ed alla seriale simultaneamente, attraverso un unico cavo USB.

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

Per le funzionalita' 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 reference design che abbiamo utilizzato (Grazie a Joern!) puo' essere trovato su http://www.oocdlink.com

In questo modo abbiamo ottenuto la possibilita' di debugging tramite JTAG, a circa 150 volte la velocita' della wiggler

La porta JTAG e' 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 gia' 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, e' 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 avra' bisogno della configurazione dell'EEPROM: http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/neo1973_debug_board_v2.ftdi

Dopo che si e' compilato ftdi_eeprom, e' 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


Si dovrebbe ottenere qualcosa di simile se tutto e' andato a buon fine:

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 e' 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 gia' 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, e' possibile usare il programma FTDI Mprog scaricabile da http://www.ftdichip.com/Resources/Utilities/MProg3.0_Setup.exe

Avrai bisogni del

Drivers

Linux

Assicurarsi di avere la libreria libftdi-0.8 or successiva. E' noto che versioni antecedenti creano incompatibilita'.

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

E' 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/

Personal tools

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

Architecture Diagram
Annotated PCB Photograph


Overview

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, e' possibile avere accesso al telefono, alla JTAG ed alla seriale simultaneamente, attraverso un unico cavo USB.

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

Per le funzionalita' 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 reference design che abbiamo utilizzato (Grazie a Joern!) puo' essere trovato su http://www.oocdlink.com

In questo modo abbiamo ottenuto la possibilita' di debugging tramite JTAG, a circa 150 volte la velocita' della wiggler

La porta JTAG e' 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 gia' 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, e' 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 avra' bisogno della configurazione dell'EEPROM: http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/neo1973_debug_board_v2.ftdi

Dopo che si e' compilato ftdi_eeprom, e' 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


Si dovrebbe ottenere qualcosa di simile se tutto e' andato a buon fine:

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 e' 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 gia' 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, e' possibile usare il programma FTDI Mprog scaricabile da http://www.ftdichip.com/Resources/Utilities/MProg3.0_Setup.exe

Avrai bisogni del

Drivers

Linux

Assicurarsi di avere la libreria libftdi-0.8 or successiva. E' noto che versioni antecedenti creano incompatibilita'.

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

E' 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/