Non mi sono mai avvicinato alla USB con i PIC, anche se, devo dire il vero, tempo addietro avevo dato una sbirciatina, lo avevo trovato molto macchinoso nel software, tanto da prendere buona parte delle risorse, almeno per un PIC16. Ma è anche vero che da allora ne è passata di acqua sotto i ponti.
Vengo al dunque: sono dietro a un mio progetto che dialoga col PC tramite seriale. Tuttavia, mentre vado benissimo se la seriale è integrata col PC, con i convertitori USB/232 faccio una fatica enorme e, pur avendoci speso parecchie ore, sono giuto alla conclusione che non ci sia soluzione.
Ho fatto tutte le prove immaginabile, ho passato praticamente quattro giorni di prove, ma nulla, non trovo il modo di far funzionare i convertitore USB/232 per lungo tempo, senza che il sistema vada nel pallone, mentre, come dicevo, le seriali integrate lavorano a meraviglia. (Nel mio caso sembra che dopo un quantità variabile di byte trasmessi, i buffer interni al sistema del convertitore vadano in crisi e si perdano i pacchetti dati in ingresso).
E' tutto molto suscettibile alla regolazione delle dimensioni dei buffer e dei timeout; ma non è risolvibile. Tanto più che con le recenti API di windows, l'uso della seriale è versamente ristretto e, nel caso dei convertitori c'è di mezzo anche il driver di terze parti che non è affatto accessibile; quindi resta un ostacolo insuperabile.
Detto questo, vorrei allora farmi un processore di coumincazione per interfacciare il PC con il bus dati seriale, passando si tramite USB, ma con tutto un mio software.
Ecco allora la domanda:
Siete in grado di aiutarmi e fornirmi il codice lato PIC/PC per parlare via USB ?
Ovviamente su PIC che hanno la porta USB, è pacifico.
Mi fareste un grosso favore, perché altrimenti devo prendere la cosa in mano e studiarla dall'inizio, che è l'ultimo dei problemi che vorrei mi capitasse in questo momento.
Allora, una notizia: il progetto che ho in mente potrebbe essere interessante per tutta la comunità EY in futuro.
PIC ed USB: cosa si può fare ?
Moderatore:
Paolino
9 messaggi
• Pagina 1 di 1
0
voti
L' Application Library della Microchip e' strapiena di software per USB, e c'e' anche il software per il convertitore USB/seriale.
Scaricala e dai uno sguardo a:
- USB device - CDC - basic demo
- USB device - CDC - serial emulator
E' gia' fatto, applicabile ai PIC18/24/32
Scaricala e dai uno sguardo a:
- USB device - CDC - basic demo
- USB device - CDC - serial emulator
E' gia' fatto, applicabile ai PIC18/24/32
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Ok, grazie, l'ho trovata.
Non farò un convertitore USB/seriale, ma un interfaccia col mio bus, in modo che il PC diventi a tutti gli effetti un nodo, giusto da non avere più il problema che si presentava con la seriale, non potendo gestire i tempi e le regole del bus semplicemente con windows.
Non farò un convertitore USB/seriale, ma un interfaccia col mio bus, in modo che il PC diventi a tutti gli effetti un nodo, giusto da non avere più il problema che si presentava con la seriale, non potendo gestire i tempi e le regole del bus semplicemente con windows.
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
Salve,
leggo "non trovo il modo di far funzionare i convertitore USB/232 per lungo tempo, senza che il sistema vada nel pallone", che tipo di convertitore stai utilizzando?
leggo "non trovo il modo di far funzionare i convertitore USB/232 per lungo tempo, senza che il sistema vada nel pallone", che tipo di convertitore stai utilizzando?
0
voti
Uso un Manhattan, (credo si scriva). In effetti Internet pullula di discussioni simili alla mia e, sembra un problema non risolvibile.
Purtroppo ho perso i due convertitori basati su FTDI che sapevo andare molto meglio e, quindi, non ho un elemento di confronto, mentre, per certo, (avendone ancora uno), con un PC che ha la seriale integrata, tutto bene.
Ho notato parecchie differenze regolando e cercando di ottimizzare al meglio i timeout e le dimensioni dei buffer; (anche in altre discussioni se ne parlama), ma nulla, passato un certo numero di pacchetti ricevuti in modo serrato, il sistema va nel pallone. (Parliamo di circa 250 kB ricevuti in circa 10 minuti).
Ora, per completare: non mi sto preoccupando di recuperre altri convertitori con il famigerato FTDI, perché in fin dei conti con la seraile collegata al PC non risolvo molto di più. Quando ho scritto questa e-mail stavo cercando di misurare l'affidabilità di una rete di trasmissione dati concepita in un modo particolare che sto progettando e, siccome ricevevo errori che non mi tornavano, ho speso parecchio tempo per capire che la causa di tutto è il convertitore.
Non so se il chip od il driver, (driver che ho anche aggiornato). Ma tutti i problemi sono in quel componente.
Purtroppo ho perso i due convertitori basati su FTDI che sapevo andare molto meglio e, quindi, non ho un elemento di confronto, mentre, per certo, (avendone ancora uno), con un PC che ha la seriale integrata, tutto bene.
Ho notato parecchie differenze regolando e cercando di ottimizzare al meglio i timeout e le dimensioni dei buffer; (anche in altre discussioni se ne parlama), ma nulla, passato un certo numero di pacchetti ricevuti in modo serrato, il sistema va nel pallone. (Parliamo di circa 250 kB ricevuti in circa 10 minuti).
Ora, per completare: non mi sto preoccupando di recuperre altri convertitori con il famigerato FTDI, perché in fin dei conti con la seraile collegata al PC non risolvo molto di più. Quando ho scritto questa e-mail stavo cercando di misurare l'affidabilità di una rete di trasmissione dati concepita in un modo particolare che sto progettando e, siccome ricevevo errori che non mi tornavano, ho speso parecchio tempo per capire che la causa di tutto è il convertitore.
Non so se il chip od il driver, (driver che ho anche aggiornato). Ma tutti i problemi sono in quel componente.
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
L' implementazione della classe CDC sui PIC e' valida. Non da problemi.
Ho investito molto tempo in questo ed i risultati sono buoni. La classe CDC utilizza il driver usbser.sys e mettere le mani per adattare i programmi gia' forniti da Microchip e' abbastanza facile.
Personalmente l' ho implementato su diverse MPU di diverse famiglie eliminando tutti i vari #ifdef e compilazioni condizionate per tendere il sorgente piu' leggibile.
E' un po' un lavorone ma ... funziona. Ci vuole pazienza ma poi funziona.
Ho investito molto tempo in questo ed i risultati sono buoni. La classe CDC utilizza il driver usbser.sys e mettere le mani per adattare i programmi gia' forniti da Microchip e' abbastanza facile.
Personalmente l' ho implementato su diverse MPU di diverse famiglie eliminando tutti i vari #ifdef e compilazioni condizionate per tendere il sorgente piu' leggibile.
E' un po' un lavorone ma ... funziona. Ci vuole pazienza ma poi funziona.

"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Effettivamente il prodotto manhattan non è proprio il massimo, non ti fidare, io mi orienterei sull'FTDI, a me lavora benissimo e ti metti al sicuro, ma nel caso vuoi riscrivere l'interfaccia mi associo al consiglio di TD, è un ottimo prodotto.
0
voti
Quindi, fatemi capire: con la CDC io vedrei il mio PIC, collegato USB, alla stregua di una "falsa" seriale ? E per il PC ? resta una seriale ? O viene indicato come hardware diverso ?
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
La vedi come una vera seriale!
Anzi, il firmware ti permette anche di gestire RTS, CTS velocita', parita' e compagnia cantante se lo vuoi. Se non t' interessa non lo implementi (lasci il firmware cosi' com' e') e tutto funziona a meraviglia.
Ho provato, ho realizzato e riprovato. Funziona bene.
Anzi, il firmware ti permette anche di gestire RTS, CTS velocita', parita' e compagnia cantante se lo vuoi. Se non t' interessa non lo implementi (lasci il firmware cosi' com' e') e tutto funziona a meraviglia.
Ho provato, ho realizzato e riprovato. Funziona bene.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
9 messaggi
• Pagina 1 di 1
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 7 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)