Go Down

Topic: Arduino e TV (Read 14 times) previous topic - next topic

Francesco_MIRM

Quote
Siccome sono bloccato perché ancora il programmatore non mi è arrivato ed il mio Atmega è lì che mi guarda senza poter far nulla, mi son messo a rileggere le specifiche del TellyMate.


Io ho Arduino 2009 quindi penso che posso programmare l'ATmega semplicemente mettendolo su Arduino.

Quote
Nota2:usando TX e/o RX, l'uso del TellyMate taglia fuori l'uso di qualsiasi altro componente che comunichi con l'Arduino tramite seriale.


Questo impedirebbe l'uso di dispositivi esterni di output come la tastiera


Quote
Collegando solo il pin TX puoi mandare unicamente dati al TellyMate senza poter ricevere da esso informazioni, nel senso che è solo un sistema passivo: gli dici di scrivere "A" e lui scrive "A". Collegando anche il pin RX diventa attivo, nel senso che puoi chiedergli se nella locazione 0,0 c'è un carattere.


Questo è vero, ma comunque, ne permetterebbe l'utilizzo, se volto solo a visualizzare o leggere dati da un file, che verrebbe fatto da Arduino e poi mandato all' ATmega.
Purtroppo non ho i 2 1n4148 quindi non posso fare delle prove.

Mi domando se entrambi leggessero da una memoria comune, questo problema non si presenterebbe?

leo72

1)
Con l'Arduino 2009 tu puoi farlo ma non mettendo il chip semplicemente sullo zoccolo. Devi fare il ponticello con il connettore ISP oppure programmarlo mettendolo su breadboard.

2)
Ho riguardato la libreria PS/2 e dovrebbe usare solo quei 2 pin in lettura, il DATA e l'IRQ. Poi i dati mandandoli via seriale andrebbero sul TellyMate, quindi fino a qui non ci sono problemi.

3)
Non ti servono i diodi per fare il collegamento al cavo TV. Io l'ho fatto senza e va benissimo. Bastano le 2 resistenze.

4)
L'altro giorno ho provato con TvOut a mettere i font su una EEPROM ma non sono riuscito a visualizzare nulla. Non so se ho cannato qualcosa a livello di codice (probabile) oppure se è proprio per una questione di tempi di accesso. Ieri parlando con un mio amico ingegnere elettronico, mi ha confermato comunque che accedendo a RAM esterna bisogna valutare bene i timing perché basta perdere anche un colpo di clock che va tutto alle ortiche. Quindi per ora credo proprio che la strada dell'invio dei dati ad un Atmega che funga da chip video sia la più praticabile.

Stamattina ho pensato anche al possibile circuito.
Sull'Arduino scheda verrebbe messo l'ìinterprete Bitlash compilato con la libreria PS/2 e relativi input da tastiera per leggere l'input dall'utente mentre l'Atmega esterno, il TellyMate, sarebbe collegato tramite TX/RX e fungerebbe da chip video.

Non è difficile, vorrei solo che mi arrivasse 'sto ca@@o di programmatore... è 18 gg che l'ho ordinato, maledette feste....  >:(

Francesco_MIRM

Quote
Devi fare il ponticello con il connettore ISP


Eh??

Quote
Non ti servono i diodi per fare il collegamento al cavo TV. Io l'ho fatto senza e va benissimo. Bastano le 2 resistenze.


Come mai sono riportati nella foto?

Quote
il TellyMate, sarebbe collegato tramite TX/RX e fungerebbe da chip video.


Non avevamo detto che usando TX e RX non sarebbe stato possibile usare altri componenti che comunico con Arduino via seriale?

leo72

1)
non puoi programmare un bootloader semplicemente mettendo il chip nello zoccolino. Devi usare o l'Arduino come programmatore (come riportato qui: http://arduino.cc/en/Tutorial/ArduinoISP) oppure facendo un ponticello dal chip FTDI al connettore ISP. Ma non mi chiedere di più perché sono cose che ho letto sul forum ma che non ho sperimentato non avendo il 2009.

2)
Qualcuno li aggiungeva ma in realtà non servono a meno che tu non ci attacchi la corrente o la tua TV vada in corto, avendo quindi un ritorno di corrente verso l'Arduino. Ripeto, io l'ho fatto senza.

3)
Sì, però ho visto che sia la libreria PS/2 in realtà non necessita di TX/RX dato che legge la tastiera dal pin DATA.
Ora, siccome il TellyMate sarebbe il dispositivo solo da mettere in ricezione, puoi mandargli i dati tramite semplice Serial.print fatto proprio da Bitlash.
Quindi credo che ALMENO SULLA CARTA le 3 cose possano coesistere. Ma non posso dartene la certezza finché non provo.

Francesco_MIRM

#94
Jan 17, 2011, 06:57 pm Last Edit: Jan 17, 2011, 07:07 pm by Francy Reason: 1
Ok capito!


Uploaded with ImageShack.us

Cerca di avere pazienza, queste cose non l'avevo mai fatte, stavo vedendo i pin su Arduino a quali corrispondono su ATmega, sulla foto l' Arduino tellymate è alimentato dall' Arduino main su 5V e GND tali pin di Arduino sull' ATmega corrispondono al 7 e l' 8 ? Non devo aggiungere altro tra Arduino a l' ATmega?
Grazie.

leo72

#95
Jan 17, 2011, 07:16 pm Last Edit: Jan 17, 2011, 07:16 pm by leo72 Reason: 1
Qui hai lo schema dell'Arduino:
http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf
Così vedi quali pin vanno su quali porte.

P.S.:
non posso aiutarti di più perché sono a lavoro e non posso "spippolare" più di tanto  ;)

Francesco_MIRM

Grazie!!
Senti ho dato un occhiata qua:
http://arduino.cc/en/Tutorial/ArduinoToBreadboard

Questa è la parte che mi interessa..
Minimal Circuit (Eliminating the External Clock)

Se dai un occhiata ci sono due schemi di collegamento, da quello che ho capito uno è per caricare il bootloader e l'altro per caricare gli sketches sull' ATmega "solo"

Ora, nel mio caso io ho un ATmega con bootloader UNO, quindi posso caricare gli sketch usando il collegamento Arduino TX RX --> ATmega su breadboard?

Non ho capito bene una parte:
Quote
you can burn the bootloader and upload programs onto your ATmega328 as described above. Be sure to select "ATmega328 on a breadboard (8 MHz internal clock)" when burning the bootloader. (If you select the wrong item and configure the microcontroller to use an external clock, it won't work unless you connect one.)


In realtà "ATmega328 on a breadboard (8 MHz internal clock)" andrà caricato sull' Arduino-programmatore?
Poi cambiando collegamenti, Arduino capirà che lo sketch che carico andrà sull'ATmega solo?

Ho scaricato il firmware del Tellymate, ci sono una vagonata di file, dove vanno inseriti? In che modo poi faro l'upload??

Ho un bel po' di confusione in testa..!!  :o

leo72

1)
Il uC integra un microprocessore per cui deve avere un clock di riferimento per poter lavorare. O gli fai usare il clock interno (solo 8 MHz, attenzione!) oppure gli metti un clock esterno (l'Arduino va a 16 ma gli Atmega328 sono certificati fino a 20).

2)
Esatto. Il primo disegno ("Burning the bootloader") serve per programmare il bootloader ad un uC che non ce l'ha oppure per cambiarlo ad uno che ce l'ha. Il bootloader serve per poter inviare gli sketch senza dover usare un programmatore ma semplicemente usando le linee RX/TX dell'Atmega.

3)
Sì, puoi inviare gli sketch collegando l'Atmega come nello schema n° 2 di quella pagina ("Uploading Using an Arduino Board"). Ricordati però di togliere l'Atmega dalla tua Arduino 2009 altrimenti programmi il chip di questa e non il chip sulla breadboard  ;)

4)
Ho visto il firmware del TellyMate, non so se si riesce a riversare sull'Atmega usando il metodo del bypass con l'Arduino. Sommariamente andrebbe compilato e creato un file .hex da inviare al uC. Difatti nella cartella /firmware del TellyMate ci sono questi file precompilati per diversi Atmega. Forse puoi fare l'upload usando il programma avrdude, ma cerca su internet perché non vorrei darti info sbagliate.

Francesco_MIRM

#98
Jan 17, 2011, 10:30 pm Last Edit: Jan 17, 2011, 10:40 pm by Francy Reason: 1
Ok grande!
Quote
Sì, puoi inviare gli sketch collegando l'Atmega come nello schema n° 2 di quella pagina ("Uploading Using an Arduino Board"). Ricordati però di togliere l'Atmega dalla tua Arduino 2009 altrimenti programmi il chip di questa e non il chip sulla breadboard


Ma di togliere l'ATmega non mi pare lo dica da nessuna parte!!
Quindi "ATmega328 on a breadboard (8 MHz internal clock)" che trovo nella cartella Tool --> Board è da flashare sull' ATmega solo tramite l'Arduino 2009 senza ATmega sopra?
Penso di si dice all'ATmega "solo" di usare il suo clock interno..

I file .hex li ho visti nella cartella, adesso guardo pure avrdude.
L' unica cosa che non mi è chiara è:
il file .hex è un bootloader? O va considerato come uno sketch?

Comunque gli sketch di prova di TellyMate vanno caricati su Arduino.
Mi è sembrato che i vari sketch di esempio vanno mandati ad Arduino

EDIT: Una cosa del genere??::
http://www.ngcoders.com/downloads/arduino-hex-uploader-and-programmer
http://xloader.russemotto.com/

leo72

Sì, è vero. Non lo dice. Anzi, devi tenere il chip altrimenti non puoi programmare il bootloader.

Cmq sto parlando un po' di "aria fritta" nel senso che non ho sotto mano il programmatore ne' posso fare prove. Quindi prendi un po' con le molle quello che scrivo perché sono poco esperto  ::)

Un file .hex è un file binario che il programmatore legge e scrive byte per byte nella memoria dell'Atmega in una particolare zona protetta dai "fuse", in modo che l'upload di uno sketch non la cancelli.
Ah, ho visto che quando all'IDE dici di programmare il bootloader questo avvia avrdude in automatico. Però non so che impostazioni bisogna passargli per programmare il firmware di TellyMate.

L'unica è che tu faccia delle prove. Per ora non posso aiutarti che a parole  :'(

Gli sketch di prova di TellyMate sono per l'Arduino mentre il firmware è per l'Atmega solitario.

Francesco_MIRM

#100
Jan 17, 2011, 10:55 pm Last Edit: Jan 17, 2011, 11:02 pm by Francy Reason: 1
Ok forse ho capito.
SE e dico SE potessi usare uno di quei due programmi che ho linkato sopra:
Potrei cambiare ATmega su Arduino con l'altro che ho singolo e fare upload del file .hex contenuto nella cartella del firmware TellyMate, sono ispirato dal nome di un file: "TellyMate_M328p.hex".
A questo punto lo collego come già discusso precedentemente.

Infine carico i vari sketch su Arduino tramite l'IDE normalmente.
Nello sketch uso il comando Serial.println();
MA il firmware del TellyMate presente nell' ATmega "solo" rimane in ascolto sulla porta RX e manda a video l'output.

Giusto??
p.s. se è così come scritto i file .h nella cartella TellyMate dove vanno inclusi?

leo72

Se fai il collegamento con la breadboard ed usi l'Arduino come programmatore, dovresti poter caricare il bootloader del TellyMate sull'Atmega solitario. Usa il file 328.hex.
Ricordati però che l'Atmega solitario necessita di un clock a 16 MHz per cui non puoi usare quello interno che è solo a 8: ti serve per forza un quarzo esterno.

Poi mandi uno sketch all'Arduino nel modo consueto. Sì.
Dallo sketch prova con il comando Serial.print, oppure carica anche un codice di prova prelevato dal sito di TellyMate, ce ne sono diversi.

Giusto.
In pratica l'Arduino funziona da terminale: in questo potresti benissimo caricare la libreria PS/2 e provare a leggere i tasti ed a mandarli all'Atmega "TellyMate" con Serial.print. Dovrebbe funzionare.
Quali file .h? I file .h sono del firmware, non servono allo sketch dell'Arduino: ricorda che sono 2 hardware separati, non hai una libreria da caricare come nel caso di TvOut.

Francesco_MIRM

Quote
Se fai il collegamento con la breadboard ed usi l'Arduino come programmatore, dovresti poter caricare il bootloader del TellyMate sull'Atmega solitario. Usa il file 328.hex.
Ricordati però che l'Atmega solitario necessita di un clock a 16 MHz per cui non puoi usare quello interno che è solo a 8: ti serve per forza un quarzo esterno.

Ho tutto però se collego così, che è perfetto, come faccio a dire all' IDE di flashare l' .hex di TellyMate? Mi pare che posso flashare solo alcuni firmware prestabiliti..
http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Se uso invece uno di quei due programmi che ho linkato:
http://www.ngcoders.com/downloads/arduino-hex-uploader-and-programmer
http://xloader.russemotto.com/
collegando il quarzo non dovrei avere problemi.

leo72

Difatti era il dubbio che avevo anch'io. Con l'IDE mi sa che puoi caricare solo i bootloader prestabiliti.
Io ti consiglio di usare "avrdude" (ce lo dovresti avere perché è nei requisiti di sistema dell'IDE). Se noti nella cartella "firmware" di TellyMate c'è anche un file .bat con i parametri da passare ad avrdude per programmare correttamente il bootloader ed i fuse.

Francesco_MIRM

Stasera provo XLoader, ARP Arduino Uploader e se non riesco avrdude che mi sembra più complicato.

Go Up