Progetto patch per FTDI chip

Transcript

Progetto patch per FTDI chip
Documentazione Interna
Progetto patch per FTDI
chip
Realizzazione di una patch per settare l’UART
del chip FTDI alla velocità di 31250 bps (lato
usb), rendendo così possibile un flusso midi
dalla porta USB del PC verso una periferica
midi
Generazione:
Approvazione:
Luciano Paoli
Archiviazione:
Nome file:
Data creazione:
Numero di pagine:
Indice di revisione:
\\
Doc FTDI bus.doc
15/02/2007
4
6
Progetto patch per FTDI chip
INTRODUZIONE
Il problema manifestato dal driver USB-MIDI FTDI è nella gestione del Baud rate
della Virtual COM Port (VCP) con cui Windows “vede” il chip FTDI. Gli
applicativi non riescono a dialogare direttamente con il driver FTDI, per cui è
necessario installare un ulteriore driver USB-MIDI della Roland da gestire in
uno stack con il driver FTDI. Il driver Roland “vede” così il driver FTDI come
MIDI-OUT e a quest’ultimo può trasferire una sequenza midi, che poi viene
girata al chip FTDI dal driver FTDI. Pur esistendo nel pacchetto d’installazione
FTDI il file FTDIPORT.INF, con una sezione che si occupa di stabilire il Baud
rate della porta com agganciata dal driver USB-MIDI, tale velocità non viene
trasferita correttamente all’UART di FTDI. Il risultato è che il chip FTDI non
riesce a trasferire correttamente le sequenze midi dalla propria porta USB-in
alla porta midi-out (e viceversa da midi-in a usb-out), non essendo queste tra
loro sincronizzate (vedi fig.1). L‘idea quindi è stata quella di costruire un piccolo
applicativo che rilevasse le impostazioni correnti delle porte com del PC (le
porte usb sono viste come porte com), permettendo di settarne le velocità
desiderate, specialmente sulla porta com-usb agganciata al driver USB-MIDI.
Fig.1
All’atto dell’installazione del driver FTDI, la velocità della porta USB deve
essere trasferita al PLL che pilota l’UART di FTDI dal lato USB (fig.1). In
Realizzazione di una patch per settare l’UART del chip FTDI alla velocità di 31250 bps
(lato usb), rendendo così possibile un flusso midi dalla porta USB del PC verso una
periferica midi
Pag. 2
Progetto patch per FTDI chip
particolare vi è la necessità di settare la porta USB a 31250 bps, (velocità
standard midi che consentirebbe la sincronizzazione con le porte MIDI-in/out),
evitando la sovrapposizione di Windows che impone alla porta USB la velocità
di 38400 bps.
Obiettivo dell’applicazione in oggetto è l’imposizione della velocità giusta sulle
porte com rilevate, settando il Baud Rate Generator (agganciato all’Uart
controller lato midi,fig.1) di FTDI per funzionare a 31250 bps, ed eventuali altre
porte com-usb rilevate (ad esempio quella per l’iniezione su GMX-RPX) a
38400 bps.
Realizzazione di una patch per settare l’UART del chip FTDI alla velocità di 31250 bps
(lato usb), rendendo così possibile un flusso midi dalla porta USB del PC verso una
periferica midi
Pag. 3
Progetto patch per FTDI chip
Utilizzo della patch
La patch si chiama “FTDI com-midi” e si installa aprendo il package nella cartella
“patch setup Package”, scegliendo il file “setup.exe” (vedi fig.1).
Fig.2
fig.3
Al termine della procedura, su start->programmi appare la voce “configuratore
FTDI”. La patch rileva tutte le porte com utilizzate ed è in grado di impostare le
velocità delle stesse.(si veda ’interfaccia della patch nella fig.2). Impostata la velocità
desiderata con il segno di spunta, è necessario sganciare il plug usb per poi
ripristinarlo subito dopo, re-inizializzando così il driver usb. Il nuovo valore di velocità
impostata viene letto e trasferito tramite il driver usb-midi all’ UART di FTDI. Il valore
è scritto in una chiave del registro di Windows e le prove fatte hanno evidenziato che
non è possibile la sua lettura “a caldo” da parte del driver. E’ necessaria quindi una
re-inizializzazione del driver stesso.
Realizzazione di una patch per settare l’UART del chip FTDI alla velocità di 31250 bps
(lato usb), rendendo così possibile un flusso midi dalla porta USB del PC verso una
periferica midi
Pag. 4