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