Go Down

Topic: ATTiny 45 board usb (Read 5 times) previous topic - next topic

Michele Menniti


Cioe tu hai programmato via ide arduino ma usando un bootloader alternstivo. Immagino ptecedentemente caricato via ISP.
Dacci i riferimenti che si provs. Prima o poi sto cadavere devo farlo passate anche io. Sarebbe bello smentire i capi del forum ma sino conscio della velleita' dell'operazione

Intanto chiariamo che noi abbiamo sempre cercato di creare un chip che facesse le veci (e non le feci, come poi è successo :smiley-mr-green:) del converitore USB-seriale, quindi un chip che contenesse un firmware in grado di interfacciare l'USB con il micro da programmare; qui si parla di un'operazione diversa; io mi fido di Niki77 perché è uno che parla poco e le cose le fa, ne ho prove personali, anche se gli sono a debito di un test (con l'occasione mi scuso), ma il tempo non basta mai; se dice che è riuscito a programmare via seriale un 328P vuol dire che ha trovato il modo; poi bisogna vedere se la tecnica è affidabile e replicabile, e capire se vale la pena metterla in atto. Avere comunque uno stand-alone (quindi del bl non ce ne frega nulla) programmabile direttamente da un portatile, via IDE, potrebbe avere indubbi vantaggi. L'importante (chiudo come ho iniziato) è chiarire che non è ciò che abbiamo cercato di fare noi.
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

Testato

ma quando dici programmabile via ide, e poi dici non ce ne frega del bootloader, intendi quindi farlo via ISP ?

alla fine diventa secondario anche il tipo di programmazione, cioe' l'importante e' che funzioni il circuito, cioe' un micro connesso via v-usb e che attraverso essa trasmetta e riceva dati seriali. Ch poi questo progetto debba essere aggiornato solo con ISP e' il minore dei mali, anzi in genere in fase finale e' proprio questo che si fa, cioe' niente bootloader sul micro finale del progetto.
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Michele Menniti


ma quando dici programmabile via ide, e poi dici non ce ne frega del bootloader, intendi quindi farlo via ISP ?

alla fine diventa secondario anche il tipo di programmazione, cioe' l'importante e' che funzioni il circuito, cioe' un micro connesso via v-usb e che attraverso essa trasmetta e riceva dati seriali. Ch poi questo progetto debba essere aggiornato solo con ISP e' il minore dei mali, anzi in genere in fase finale e' proprio questo che si fa, cioe' niente bootloader sul micro finale del progetto.

stiamo parlando di operazioni seriali, non di ISP; sull'ISP ci siamo già, ormai c'abbiamo fatto tutto; comunque finché nik77 non fornisce chiarimenti parliamo sul nulla, io non ho capito molto di ciò che ha scritto, nel senso che non ricavo info sufficienti a capire come ha ottenuto il suo risultato.
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

niki77


ma quando dici programmabile via ide, e poi dici non ce ne frega del bootloader, intendi quindi farlo via ISP ?

alla fine diventa secondario anche il tipo di programmazione, cioe' l'importante e' che funzioni il circuito, cioe' un micro connesso via v-usb e che attraverso essa trasmetta e riceva dati seriali. Ch poi questo progetto debba essere aggiornato solo con ISP e' il minore dei mali, anzi in genere in fase finale e' proprio questo che si fa, cioe' niente bootloader sul micro finale del progetto.


Il chip si può autoprogrammare tramite la usb stessa senza ftdi o altre amenità varie.
Appena ho un minuto vi faccio un video così forse si capisce meglio.

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

leo72

Volete il video? Andate a ricercarvelo nei vecchi post oppure sul mio canale youtube (utente leomil72).
Vedrete che attacco, invio, programmo ed il chip esegue. Bello vero?? Peccato che prima di ciò avessi smanettato per almeno 20 minuti infilando e sfilando i componenti, pensando ad un falso contato.

Pensavo che riportare tutto su 1000fori aiutasse, invece peggio! Volete ridere??? Anche la lunghezza del cavo USB influisce sul riconoscimento della schedina!!!
Ecco cosa succede collegando il prototipo con un cavetto corto (diciamo sui 90cm):

Code: [Select]
[ 1663.103223] usb 5-2: new low-speed USB device number 2 using uhci_hcd
[ 1663.255904] usb 5-2: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
[ 1663.255910] usb 5-2: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
[ 1663.326832] cdc_acm 5-2:1.0: ttyACM0: USB ACM device
[ 1663.333077] usbcore: registered new interface driver cdc_acm
[ 1663.333083] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Riconosciuto e montato. Appena però vado a programmarlo esce il solito "Programmer is not responding".

OK, cambio di cavetto. Stavolta uno lunghetto, circa 1,5 metri. Ecco il responso:
Quote

[ 1886.569867] usb 5-2: new low-speed USB device number 3 using uhci_hcd
[ 1886.708228] usb 5-2: device descriptor read/all, error -71
[ 1886.816526] usb 5-2: new low-speed USB device number 4 using uhci_hcd
[ 1886.958230] usb 5-2: device descriptor read/all, error -71
[ 1887.066527] usb 5-2: new low-speed USB device number 5 using uhci_hcd
[ 1887.095239] usb 5-2: device descriptor read/8, error -71
[ 1887.221258] usb 5-2: device descriptor read/8, error -71
[ 1887.429858] usb 5-2: new low-speed USB device number 6 using uhci_hcd
[ 1887.458246] usb 5-2: device descriptor read/8, error -71
[ 1887.584245] usb 5-2: device descriptor read/8, error -71
[ 1887.686525] hub 5-0:1.0: unable to enumerate USB device on port 2

NON riconosciuto!!! Quindi le variabili in gioco sono troppe!

PS:
la programmazione di un Atmega con un bootloader non Arduino non è una novità. Già un anno fa vi parlavo del progetto Uzebox, una simil console ad 8 bit basata su un Atmega644 che conteneva un bootloader grossotto (4 kB mi pare) con il quale l'utente poteva scegliere a video il firmware del giochino che voleva da un elenco presente una SD installata sulla scheda e poi, dopo la relativa flashatura, avviarlo e giocarci. Insomma, niente di straordinario. Lo straordinario è vedere 'sto cavolo di V-Usb funzionare.

Fintanto ci limitiamo alla comunicazione seriale, il V-Usb funziona. Il problema è poi replicare i giusti segnali al micro a valle per avviare la programmazione. Difatti chip con firmware appositamente dedicati per funzionare come programmatori funzionano, vedi USBtinyISP o USBasp, che altro non sono se non Attiny2313 (nel 1° caso) e Atmega88 (nel 2° caso): ma quei chip fanno SOLO quello, non vogliono prendersi la briga di emulare completamente una seriale.

Poi spero che qualcuno mi smentisca, per ora non posso che dire che a me non ha funzionato.

Go Up