Pages: 1 2 3 [4] 5   Go Down
Author Topic: AVR-CDC, ossia un convertitore USB/seriale software  (Read 4800 times)
0 Members and 1 Guest are viewing this topic.
Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma una cosa così?
http://www.futureelectronics.com/en/technologies/semiconductors/microcontrollers/8-bit/Pages/9232828-PIC18LF14K50-I-P.aspx?IM=0
Logged

Marche
Offline Offline
Edison Member
*
Karma: 33
Posts: 2265
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ho ordinato gli zener stamattina presto, poi è arrivata la mattonata di Leo dicendo che sono sorti dei problemi e mi ha smontato  smiley
Comunque no problem, appena arrivano faccio un pò di prove con gli atmega8.
Mi serve solo un consiglio: che software posso usare per ricompilare i sorgenti per mettere il quarzo da 16Mhz? Uso kubuntu.
Ciao
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9315
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Le prove con clock a 12 MHz le ho già fatte, e non sono andate a buon fine. Stessi errori che a 16 MHz.

Ho verificato adesso, sono disponibili i 18F14K50 in case PDIP 20, quindi abbastanza compatti, in pratica è la stessa MCU utilizzata per l'MCP2200, basta caricarci sopra lo stack usb di Microchip per avere varie tipologie di device USB altamente performanti, Vcom inclusa, costo circa 2 Euro (ivato) per un pezzo singolo.

Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

astro ma non sono gli stessi che avevo linkato sopra?
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9315
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

astro ma non sono gli stessi che avevo linkato sopra?

Si hai ragione, ho scritto il post senza aver letto il tuo.
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

smiley non volevo ragione, pensavo che fosseri differenti, visto che la sigla è diversa.
Edit:
Letto velocemente il datasheet, sono praticamente la stessa cosa smiley
« Last Edit: February 29, 2012, 10:24:22 am by BrainBooster » Logged

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

Io ho ordinato gli zener stamattina presto, poi è arrivata la mattonata di Leo dicendo che sono sorti dei problemi e mi ha smontato  smiley
Comunque no problem, appena arrivano faccio un pò di prove con gli atmega8.
Mi serve solo un consiglio: che software posso usare per ricompilare i sorgenti per mettere il quarzo da 16Mhz? Uso kubuntu.
Ciao
Non devi far altro che aprire il file Makefile presente in /mega48/default, cambiare i commenti per attivare il clock che vuoi e per il micro per cui compili.
Poi apri un terminale e dai un make.

Ah, se riproduci il mio schema, ho fatto un errore di trascrizione: la R8 è da 10Kohm, è la pull-up per il reset del micro da programmare.
Logged


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

Le prove con clock a 12 MHz le ho già fatte, e non sono andate a buon fine. Stessi errori che a 16 MHz.

Ho verificato adesso, sono disponibili i 18F14K50 in case PDIP 20, quindi abbastanza compatti, in pratica è la stessa MCU utilizzata per l'MCP2200, basta caricarci sopra lo stack usb di Microchip per avere varie tipologie di device USB altamente performanti, Vcom inclusa, costo circa 2 Euro (ivato) per un pezzo singolo.


E come si carica sopra lo stack che serve? Serve immagino un programmatore tipo il Pickit e l'IDE.
Quindi bisognerebbe in pratica passare al "lato oscuro"?  smiley-twist
Logged


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

Le prove con clock a 12 MHz le ho già fatte, e non sono andate a buon fine. Stessi errori che a 16 MHz.

Ho verificato adesso, sono disponibili i 18F14K50 in case PDIP 20, quindi abbastanza compatti, in pratica è la stessa MCU utilizzata per l'MCP2200, basta caricarci sopra lo stack usb di Microchip per avere varie tipologie di device USB altamente performanti, Vcom inclusa, costo circa 2 Euro (ivato) per un pezzo singolo.


Quindi va programmato, ma ci vuole un programmatore, non si fa certo con Arduino  smiley-mr-green Allora per me non avrebbe senso, visto che con i PIC, almeno per ora, non abbiamo punti di contatto.
No, sono felice col mio MCP2200+adattatore Sparkfun  smiley-lol
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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9315
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Giusto per espandere il discorso USB dei PIC, rimanendo sulle MCU a 8 bit il massimo delle prestazioni, intese come complessità del device, si ottiene con i 18F2550 (28 pin) dove è possibile implementare device combo molto complessi, p.e. due device CDC, due device HID dati, una emulazione mouse e tastiera HID tutti attivi simultaneamente, è un caso limite, ma reale perché l'ho implementato su un mio lavoro.
Come clock, vale per tutte le MCU con USB, si può usare un quarzo con valore compreso tra 4 MHz e 20MHz in step di 4MHz, quindi 4-8-12-16-20 MHz, non ci sono componenti critici, unica accortezza tenere le connessioni tra la mcu e il connettore USB le più corte possibili.
Il SIE (l'engine SUB) supporta le specifiche 2.0 con la velocità massima limitata a full speed (12 Mbps), è possibile utilizzarlo tramite polling o interrupt driven, lo stack USB di Microchip permette tutte e due le modalità.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9315
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E come si carica sopra lo stack che serve?

Lo stack USB altro non è che il software per far funzionare l'USB, quello Microchip è molto ben fatto e complesso, copre tutti i possibili modelli di mcu e molti device diversi, per contro è molto ingombrante e molto sprecone di risorse per via della sua multifunzionalità, però va benissimo per creare un device USB come una Vcom senza perdere tempo.
In pratica con lo stack USB Microchip è tutto pronto devi solo settare alcune define, compilare  caricare il programma sul micro, in pochi minuti sei pronto per "giocare" con il tuo device USB.
Per caricare il programma vale lo stesso discorso degli ATmega vergini, la prima volta ci metti sopra un bootloader, e serve un programmatore specifico per farlo, poi li programmi direttamente tramite USB e apposito software per PC.
Purtroppo non mi risulta sia possibile programmare un PIC tramite Arduino, però non ho mai fatto una ricerca seria se esiste uno sketch per farlo visto che possiedo i programmatori ufficiali di Microchip.

Quote
Quindi bisognerebbe in pratica passare al "lato oscuro"?  smiley-twist

Io non sono un signore dei Sith, sono un maestro Jedi e appartengo al lato luminoso della forza smiley-mr-green
Logged

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

Ma il software è sempre MPLAB oppure qualcos'altro?
Se è MPLAB l'ultima versione gira anche su Linux, altrimenti no.
Cmq un MCP2200 mi sembra più facile per chi si deve acquistare/procurare tutti gli strumenti (programmatore, software, chip)  smiley-wink

Ho un dubbio, Mike ha detto che il 2200 non supporta la linea DTR ma l'IDE di Arduino resetta i micro con quel segnale. Come si ovvia a ciò? Come hai risolto Mike? Usando il segnale RTS?
Logged


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

Sì, ho semplicemente replicato lo schema originale Microchip, aggiunto un C da 0,1µF in serie all'RTS e l'ho collegato al RESET del 328P.
Come detto c'è una sola differenza: aprendo il serial monitor il micro non viene resettato, quindi devi farlo manualmente.
Nel mio caso ho risolto rapidamente con il programma Terminal in dotazione a Windows che, evidentemente, supporta l'RTS e l'impulso lo manda. All'epoca con Astro abbiamo provato diversi software in cui si poteva programmare il comportamento dell'RTS ma non abbiamo risolto, nemmeno con il sw di configurazione in dotazione, niente da fare, se lo usi con l'IDE e ti serve il serial monitor ti devi rassegnare a premere il tastino di reset..... per il resto lavora che è uno spettacolo, costa un paio d'euro (costa MOLTO più l'adattatore Sparkfun smiley-money), ed è saldabile, non come l'FT232RL o, peggio, l'ATmega8U2 smiley
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: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Del monitor seriale poco me ne importa. Ma dall'IDE, se premi su Upload, devi resettare a mano per far partire la programmazione del micro oppure no?
Come viene riconosciuto? Cioè, se devi creare una scheda con l'MCP2200 come interfaccia, in una ipotetica board virtuale come lo indicheresti?
Logged


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

Del monitor seriale poco me ne importa. Ma dall'IDE, se premi su Upload, devi resettare a mano per far partire la programmazione del micro oppure no?
Come viene riconosciuto? Cioè, se devi creare una scheda con l'MCP2200 come interfaccia, in una ipotetica board virtuale come lo indicheresti?
Assolutamente no! A parte il serial monitor (che dopo il reset manuale funziona senza problemi) va tutto a meraviglia, il reset lo fornisce da solo al momento opportuno, l'MCP viene visto (in Windows) come una qualsiasi porta COM; io nel mio schema ho implementato e attivato perfino i led tx/rx. Non capisco la domanda della board virtuale, mica in boards.txt risulta la porta o il dispositivo di connessione; per capirci immagina di ritagliare da Arduino l'ATmega8u2 ed incastrare nel foro l'MCP 2200, fatta l'operazione per te sarà tutto trasparente.
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

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