Pages: 1 2 3 [4] 5 6 7   Go Down
Author Topic: Economica stand alone programmabile USB  (Read 11709 times)
0 Members and 1 Guest are viewing this topic.
Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12542
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

guardate proprio ieri ho fatto il mio primo PCB provando con il metodo dell'acido muriatico + H2O2 più carta patinata (strappata dalla catalogo di futura elettronica smiley-yell) è uscito abbastanza bene considerando che era il primo PCB e che non ho mai provato la soluzione con percloruro di ferro. allora avendo a casa 5 atmega 328 (con i rispettivi condensatori, quarzi e socket) volevo provare a fare il PCB monofaccia dell'arduino che per un principiante come me è abbastanza complicato, grazie a Niki77 non avrei, se il tutto funziona smiley-evil, più il problema dell'adattatore USB->Seriale. Appena arrivo a casa provo realizzare il PCB.
Spiegatemi una cosa, a che serve il jumper6 ? sinceramente non sò neanche a che servano i jumper  smiley-red
Ciao, scusami ma temo che tu sia molto confuso su questo progetto, o almeno così io capisco quando tu definisci il lavoro di Niki77 un Arduino monofaccia; forse è il caso che tu rilegga attentamente TUTTO il Topic, ad iniziare dal primo post che peraltro ti spiega anche la funzione del jumper; magari chiedi approfondimenti più evoluti del solo jumper; questa scheda NON è un Arduino. smiley-wink
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 328
Posts: 22747
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vorrei fare chiarezza su una cosa, che magari ai più può essere sfuggita.

La Metaboard può anche funzionare per quel che è, ossia un bootloader modificato che permette di programmare la flash prendendo lo sketch in arrivo dalla seriale senza chip intermedi. In questo non ci vedo nulla di trascendentale, la metaboard usa il firmware USBaspLoader per fare ciò ma non è neanche il primo e unico chip che fa una cosa del genere. Il programmatore USBasp è capace di gestire una connessione USB e di flashare il firmware in arrivo su un chip. L'USBtinyISP usa il firmware USBtiny per fare la stessa cosa.

Il problema sorge quando si vuole aprire una comunicazione bidirezionale. In questo caso ci si scontra con diversi problemi. La Metaboard non permette di spedire dati al PC I miei test invernali con l'Avr-cdc avevano messo in luce il fatto che la cosa poteva funzionare, ma i fattori in campo erano molti ed alle volte la comunicazione non avveniva.

La Leonardo ha ripreso l'Avr-cdc (difatti collegata al mio Linux io la vedo come tale) ma con in più dalla sua una periferica USB integrata in hardware. Funziona sicuramente, il protocollo è gestito non via software.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12542
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, mi pare che ora sia stata scritto in tutte le salse questa cosa del bidir; a questo punto chi vuole continuare a crederci lo faccia; io farò il mio bravo esperimento "copia" e poi tenterò di eseguire alcune prove che avevo in serbo dai tempi in cui  smiley-twist ma non gli dedicherò oltre i 10 minuti. Domani dovrebbe/potrebbe essere il gran giorno. smiley-grin
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Taranto, Puglia
Offline Offline
God Member
*****
Karma: 1
Posts: 758
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vorrei fare chiarezza su una cosa, che magari ai più può essere sfuggita.

La Metaboard può anche funzionare per quel che è, ossia un bootloader modificato che permette di programmare la flash prendendo lo sketch in arrivo dalla seriale senza chip intermedi. In questo non ci vedo nulla di trascendentale, la metaboard usa il firmware USBaspLoader per fare ciò ma non è neanche il primo e unico chip che fa una cosa del genere. Il programmatore USBasp è capace di gestire una connessione USB e di flashare il firmware in arrivo su un chip. L'USBtinyISP usa il firmware USBtiny per fare la stessa cosa.

Il problema sorge quando si vuole aprire una comunicazione bidirezionale. In questo caso ci si scontra con diversi problemi. La Metaboard non permette di spedire dati al PC I miei test invernali con l'Avr-cdc avevano messo in luce il fatto che la cosa poteva funzionare, ma i fattori in campo erano molti ed alle volte la comunicazione non avveniva.

La Leonardo ha ripreso l'Avr-cdc (difatti collegata al mio Linux io la vedo come tale) ma con in più dalla sua una periferica USB integrata in hardware. Funziona sicuramente, il protocollo è gestito non via software.
OK CASO CHIUSO  smiley-lol
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12542
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, mi pare che ora sia stata scritto in tutte le salse questa cosa del bidir; a questo punto chi vuole continuare a crederci lo faccia; io farò il mio bravo esperimento "copia" e poi tenterò di eseguire alcune prove che avevo in serbo dai tempi in cui  smiley-twist ma non gli dedicherò oltre i 10 minuti. Domani dovrebbe/potrebbe essere il gran giorno. smiley-grin
niente, ho fatto troppe altre cose; ormai se ne parla fine settimana, voglio dedicarci una giornata intera, così mi levo tutti gli sfizi, ma soprattutto lo faccio a mente fresca, oggi peraltro era un forno da pane il mio lab smiley-sweat smiley-sweat smiley-sweat
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Taranto, Puglia
Offline Offline
God Member
*****
Karma: 1
Posts: 758
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, mi pare che ora sia stata scritto in tutte le salse questa cosa del bidir; a questo punto chi vuole continuare a crederci lo faccia; io farò il mio bravo esperimento "copia" e poi tenterò di eseguire alcune prove che avevo in serbo dai tempi in cui  smiley-twist ma non gli dedicherò oltre i 10 minuti. Domani dovrebbe/potrebbe essere il gran giorno. smiley-grin
niente, ho fatto troppe altre cose; ormai se ne parla fine settimana, voglio dedicarci una giornata intera, così mi levo tutti gli sfizi, ma soprattutto lo faccio a mente fresca, oggi peraltro era un forno da pane il mio lab smiley-sweat smiley-sweat smiley-sweat
allora non servirebbe nemmeno risaldare il Cloruro ferrico  smiley-lol
Logged


Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@niki 77 potresti scrivermi i valori dei due condensatori (sò già che col quarzo ci vogliono quelli da 12pF) e delle resistenze ?
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho capito da dove hai partorito quei valori...
Comunque ecco lo schema in PDF coi valori

Elenco comp.

r1,r2 = 68 ohm
r3 = 1 Mohm
r4 = 1,5 Kohm

c2 = 10 microF elettrolitico
c3,c4 = 22 pf
c5 = 100 nanoF poliestere

d1,d2 = zener 3,6 v

q1 = quarzo 12 mhz

s1 = microswitch normalmente aperto

x1 = connettore usb femmina tipo B
jp1 = pin header 1x8
jp2,jp3 = pin header 1x6
jp6 = pin header 1x2 (comprensivo di jumper)

ic1 = atmega 328p (ma anche atmega 328 senza p)


* usb_stick.pdf (18.13 KB - downloaded 25 times.)
« Last Edit: July 27, 2012, 08:19:20 am by niki77 » Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho capito da dove hai partorito quei valori...
Comunque ecco lo schema in PDF coi valori

Elenco comp.

r1,r2 = 68 ohm
r3 = 1 Mohm
r4 = 1,5 Kohm

c2 = 10 microF elettrolitico
c3,c4 = 22 pf
c5 = 100 nanoF poliestere

d1,d2 = zener 3,6 v

q1 = quarzo 12 mhz

s1 = microswitch normalmente aperto

x1 = connettore usb femmina tipo B
jp1 = pin header 1x8
jp2,jp3 = pin header 1x6
jp6 = pin header 1x2 (comprensivo di jumper)

ic1 = atmega 328p (ma anche atmega 328 senza p)


scusa scusa ho sbagliato a scrivere, intendevo 22pf
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12542
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Niki77: rispetto all'impegno preso con te per testare questo tuo progetto, sono andato un po' (troppo) oltre. Ai tempi in cui ci credevo avevo fatto un bel progetto, con tanto di board simil-Arduino, ma i pessimi risultati delle prove su bread mi fecero desistere (era ciò a cui mi riferivo qui). Grazie alle tue istruzioni ho finalmente capito perché non sono mai riuscito a far riconoscere la V-USB al mio PC. Allora ho dato l'OK alla stampa del PCB ed oggi finalmente ho potuto fare le mie agognate prove!
Rispetto al tuo lavoro il mio schema (preso sempre dalla rete, ma ora vatti a ricordare dove smiley-eek, comunque questo sarà risolto certamente) usa i pin 4 e 13 per la connessione USB e il boot_button è collegato tra lo stesso 13 e GND. Nel mio progetto il tuo jumper è appunto sostituito da un altro pulsante (oltre quello di RESET). Abbrevio.... smiley-grin:
Sono riuscito a caricare i driver ed a vedere la periferica USBasp.
Nelle tue istruzioni non ho visto la parte relativa al settaggio dei fuse e dei lock bits ed al caricamento del file di bootloader, ma qui chiaramente non ho avuto difficoltà (era giusto per segnalartelo), almeno questa è materia "mia" smiley
Sono infine riuscito a caricare un pò di sketch esempio e va tutto bene smiley-lol
O meglio, a fine upload mi esce questo messaggio, ma comunque funziona tutto:
Quote
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: usbasp_transmit: usb_control_msg: sending control message failed, win error: Una periferica collegata al sistema non è in funzione.
Ne sai qualcosa?
Riguardo la questione della comunicazione bidirezionale, io temo che non ci sia molto da fare, non so se esiste un emulatore di terminale in grado di leggere la V-USB, ma poi come dialogherebbe "internamente" con i pin tx/rx del micro?
Però a questo punto mi piacerebbe ripartire da dove aveva lasciato Leo, lui ad un certo punto annunciò di essere riuscito a colloquiare anche se poi ebbe un mare di problemi. Però penso che usasse la tecnica CDC-AVR per trasformare un chip AVR in un convertitore USB-seriale da far dialogare con un altro micro, in questo caso non avrebbe significato.
Grazie ancora Niki.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Niki77: rispetto all'impegno preso con te per testare questo tuo progetto, sono andato un po' (troppo) oltre. Ai tempi in cui ci credevo avevo fatto un bel progetto, con tanto di board simil-Arduino, ma i pessimi risultati delle prove su bread mi fecero desistere (era ciò a cui mi riferivo qui). Grazie alle tue istruzioni ho finalmente capito perché non sono mai riuscito a far riconoscere la V-USB al mio PC. Allora ho dato l'OK alla stampa del PCB ed oggi finalmente ho potuto fare le mie agognate prove!
Rispetto al tuo lavoro il mio schema (preso sempre dalla rete, ma ora vatti a ricordare dove smiley-eek, comunque questo sarà risolto certamente) usa i pin 4 e 13 per la connessione USB e il boot_button è collegato tra lo stesso 13 e GND. Nel mio progetto il tuo jumper è appunto sostituito da un altro pulsante (oltre quello di RESET). Abbrevio.... smiley-grin:
Sono riuscito a caricare i driver ed a vedere la periferica USBasp.
Nelle tue istruzioni non ho visto la parte relativa al settaggio dei fuse e dei lock bits ed al caricamento del file di bootloader, ma qui chiaramente non ho avuto difficoltà (era giusto per segnalartelo), almeno questa è materia "mia" smiley
Sono infine riuscito a caricare un pò di sketch esempio e va tutto bene smiley-lol
O meglio, a fine upload mi esce questo messaggio, ma comunque funziona tutto:
Quote
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: usbasp_transmit: usb_control_msg: sending control message failed, win error: Una periferica collegata al sistema non è in funzione.
Ne sai qualcosa?
Riguardo la questione della comunicazione bidirezionale, io temo che non ci sia molto da fare, non so se esiste un emulatore di terminale in grado di leggere la V-USB, ma poi come dialogherebbe "internamente" con i pin tx/rx del micro?
Però a questo punto mi piacerebbe ripartire da dove aveva lasciato Leo, lui ad un certo punto annunciò di essere riuscito a colloquiare anche se poi ebbe un mare di problemi. Però penso che usasse la tecnica CDC-AVR per trasformare un chip AVR in un convertitore USB-seriale da far dialogare con un altro micro, in questo caso non avrebbe significato.
Grazie ancora Niki.
ti posso rispondere relativamente alla parte seriale  smiley-wink
è possibile creare una comunicazione seriale via usb, così come è possibile creare un convertitore usb<->seriale con la stessa tecnica.

leo ci era riuscito ma aveva detto che vi erano problematiche relative a 2 cose:
1. il sistema richiedeva molti cicli macchina per poter dialogare
2. entravano in gioco molte variabili a livello di velocità del quarzo, settaggi dell'avr-cdc ecc..
questo per lo meno per quanto riguarda la comunicazione seriale.
per la bidirezionalità non saprei.

comunque non servirebbero terminali appositi in quanto una volta installato il driver viene visto come una normale porta com (parlo per winzozz) esattamente come se tu attaccassi un ftdi  smiley-wink

ti volevo invece chiedere una cosa relativa alla componentistica:
alla fine hai usato un partitore resistivo o i diodi per abbassare la tensione da 5V ai 3.3V dei data+ e - richiesti dall'usb?
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12542
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora, Leo ha cercato di usare un micro ATMEL con la modalità AVR-CDC, in pratica ha cercato di trasformarlo in un ATmega8u2, per poi dialogare col micro vero e proprio (p.es. il mega328P) questa cosa può essere utile a scopo studio ma alla fine non risolve niente, se devo usare un altro micro per interfacciarmi con l'USB non ne vale la pena, peraltro ormai sappiamo che è insuperabile quel problema.

Quindi io sto parlando della V-USB che ho installato oggi e che NON ha una porta COM; peraltro i comandi seriali dell'IDE operano sui pin tx/rx, per cui non so come possa essere così facile risolvere la cosa.

Il partitore era stato suggerito a te perché non avevi uno zener a pagarlo oro  smiley-yell Io ho fatto una scheda seria, ho detto che è una simil-Arduino, con tanto di doppia alimentazione, header e componentistica in smd, ti pare che andavo a mettere quattro misere resistenze? smiley-twist
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nelle tue istruzioni non ho visto la parte relativa al settaggio dei fuse e dei lock bits ed al caricamento del file di bootloader, ma qui chiaramente non ho avuto difficoltà (era giusto per segnalartelo), almeno questa è materia "mia" smiley

Chiedo venia, potevo e dovevo inserire le istruzioni per caricare il bootloader sul chip visto che non si può fare dall'ambiente arduino, ma per i fuses io non ho effetuato alcuna modifica, rimangono settati come li utilizziamo nei normale 328 e 328p che utilizziamo per arduino.In caso di chip vergine vanno settati alla stessa maniera che si settano per il bootloader arduino.


Quote
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: usbasp_transmit: usb_control_msg: sending control message failed, win error: Una periferica collegata al sistema non è in funzione.
Ne sai qualcosa?

Si , mi pare che in una circostanza accadeva pure a me (forse a casa con win7 64bit? non ricordo)
Sul mio sistema attuale (win xp sp3 con arduino 1.0.1) non riscontro il problema.

Quote from: Michele Menniti
Riguardo la questione della comunicazione bidirezionale, io temo che non ci sia molto da fare, non so se esiste un emulatore di terminale in grado di leggere la V-USB, ma poi come dialogherebbe "internamente" con i pin tx/rx del micro?
Grazie ancora Niki.

Sono convinto che oltre a non essere facile non è nemmeno conveniente, infatti come più volte ho spiegato a me serviva dia vere una periferica usb per usi diversi, non per emulare la seriale.

Quote from: Michele Menniti
Grazie ancora Niki.

E di che??

Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 328
Posts: 22747
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per pura precisazione, ho usato un Atmega168 con il firmware Avr-cdc caricato sopra. In questo modo l'168 diventa un convertitore seriale/usb dibirezionale.

Il mio progetto era nato dalla volontà di trovare un chip usb/seriale che fosse in formato DIP (visto che l'MCP-2200 e l'FT232 sono o SOIC o QFN, quindi per me non facilmente usabili). Avevo visto questo progetto, Avr-cdc, che è poi la base della V-Usb, ed avevo replicato uno schema. Il circuito è sensibile a cavetti USB non di buona qualità o a clock non precisi. Inoltre c'era il problema del segnale di reset del 2° chip, per il quale avevo replicato il circuito della 2009 ma con risultati anche qui altalenanti. Alla fine ho mandato tutto a monte perché non volevo perdere tempo su una cosa che funzionava in base alla Luna, se di traverso o no smiley-yell
Logged


Offline Offline
Edison Member
*
Karma: 28
Posts: 2031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se fosse possibile replicarlo con un atmega8 sarebbe un idea carina visto che costa circa 1 dollaro mmm mi informerò smiley
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Pages: 1 2 3 [4] 5 6 7   Go Up
Jump to: