allora mi voglio autocostruire un programmatore per programmare i vari microcontrollori atmel su breadboard o circuiti ma mi è sorto un dubbio, il programmatore seriale con il max232 comunica con il microcontrollore attraverso i pin tx e rx che però non si possono impiegare per altri scopi e devono rimanere solo per la comunicazione, mentre per l'usbtinyisp si utilizza il collegamento con isp con miso, mosi, reset e sck ma non mi è chiaro se questi pin possono essere usati anche per altro o si devono dedicare solo per la comunicazione. conoscete altri tipi di programmatori che non fanno perdere la funzionalita dei pin usati per la programmazione???
Ciao Vito, la programmazione ISP ti permette di caricare sul micro target o il bootloader o lo sketch (senza bootloader) [per la verità, con un uso sapiente dei fuse e di avrdude si possono fare entrambe le cose...], la programmazione USB ti permette solo di caricare sketch su micro che hanno già il bootloader; ma in questo caso non ti serve il MAX232 che è un adattatore di segnali seriali TTL, ti serve invece un convertitore USB-Seriale come l'FT232RL o l'MCP2200 o l'ATmega8/16u2, questi utlimi due opportunamente programmati.
Devi avere le idee chiare su cosa vuoi fare poi puoi scegliere. La domanda su "pin che si perdono" non mi è chiara per niente, non so che risponderti ![]()
Il programmatore seriale che intendi tu non è un vero programmatore ma si basa sul bootloader precaricato nel micro con un programmatore icsp come l'usbtinyisp che per puro caso è usb.
Esistono due cose quindi:
- ICSP vero e proprio che puoi lasciare attaccato al circuito su cui lavori e caricare tutto quello che vuoi
- Caricamento degli sketch attraverso bootloader che su arduino usa i pin seriali ma che puoi collegare al computer come meglio credi. L'unico difetto è che se prendi un micro vergine te ne serve un'altro(vedasi arduino come isp) o un programmatore icsp per farci qualcosa
un ennesima risposta:
Il programmatore ICSP (con interfaccia lato PC: Centronics, seriale o USB) serve per trasmettere dei Sketch compilati, il bootloader o altri programmi al microcontroller e di settare i FUSE che sono delle impostazioni hardware del controller. Non puoi usarlo per comunicazione bidirezionale col PC.
Un interfaccia TTL o USB puó caricare sketch compilati se sul microcontroller é presente un bootlaoder e puoi realizzare uno scambio di dati bidirezionale con il PC.
Ciao Uwe
ooo ok a me non interessa scambiare dati tra micro e pc, a me interessa programmare un microcontrollore, con o senza bootloader, senza perdere la funzionalità dei pin miso, mosi, sck e reset, senza litigare con cavetti USB-Seriali che per mille motivi non hanno voglia di funzionare dato che le porte seriali sui pc sono praticamente scomparse e senza usare la board di arduino e da come ho capito mi serve un programmatore ICSP, giusto?? questo lo posso ottenere da un attiny2313 con il firmware dedicato??
Se non ricordo male un progetto del genere l'aveva fatto Leo72 tempo fa, prova a guardare sotto la sua firma o nel suo sito.
Comunque durante la programmazione i pin devono essere liberi da collegamenti, se gli stessi pin ti servono necessariamente per il tuo circuito puoi ricorrere a tre jumper ON-ON per collegare i tre pin al circuito o al connettore ICSP e risolvi senza tanti problemi, stassa cosa per i due pin seriali; in fondo non è che stai lì a programmare il micro per sempre ![]()
Sì, ho fatto una schedina simil-Arduino con un Tiny84 al posto del 328. Per programmarlo ho usato un Tiny2313 programmato con il fimrware 1.0 dell'USBtinyISP di Adafruit.
Comunque stesso discorso dei pin RX/TX: anche le linee MOSI/MISO/SCK devono essere libere da altri segnali perché durante la programmazione è il micro programmatore che li pilota. Quindi armati dei jumperini che ti ha suggerito Michele, così eviti problemi ![]()
Con questo schema di adafruit al quale ho fatto delle modifiche puoi utilizzare il programmatore e alla fine della programmazionei pin miso mosi ck sono utilizzabili come in o out.
lo standard di atmel si chiama ISP non ICSP che è della accerrima nemica microchippi
se possibile è meglio sempre utilizzare miso mosi ck come uscite (non come in) perchè se si utilizzano come ingressi , ad esempio un contatto o l'uscita di un opto, l'ingresso potrebbe essere closed che nega l'accesso al ISP
icio:
lo standard di atmel si chiama ISP non ICSP che è della accerrima nemica microchippi
Arduino usa indifferentemente le sigle ISP (In-System Programming) e ICSP (In-circuit serial programming), quest'ultima è in genere serigrafata sul connettore e riportata di conseguenza sugli schemi elettrici. In genere sul Forum parliamo di "Programmazione ISP" e "connettore ISP" o "connettore ICSP".
Effettivamente le documentazioni ufficiali di ATMEL e Microchip riportano esclusivamente (e rispettivamente) le sigle ISP e ICSP.
Tanto per puntualizzare il "nostro" uso dell'ICSP ![]()
Io per rispetto nei confronti del produttore dei ns tanto amati microcontrollori non userò mai una sigla di microcippi, se qualcuno all'interno della arduino factory non ha questo rispetto affari loro
Arduino non è legata ad un particolare produttore di microcontrollori quindi è possibile che utilizzando materiale microchip qualcuno abbia scritto in buona fede ICSP sul connettore ISP, ma mai dico MAI atmel si sognerebbe di scrivere ICSP in una loro qualsiasi pubblicazione, ICSP è un marchio registrato microchip
icio:
Arduino non è legata ad un particolare produttore di microcontrollori quindi è possibile che utilizzando materiale microchip qualcuno abbia scritto in buona fede ICSP sul connettore ISP, ma mai dico MAI atmel si sognerebbe di scrivere ICSP in una loro qualsiasi pubblicazione, ICSP è un marchio registrato microchip
Scusami ma questa, e sono sicuro che lo sai anche tu, suona da barzelletta XD. 4 di quei 6 pin sono collegati ad altrettanti pin di un micro ATMEL e gli altri due anche (in quanto alimentazione), quindi, preso per corretto il tuo ragionamento iniziale, che io ho confermato e ribadito, chiunque abbia scritto quella serigrafia sulla board ha sbagliato; e l'errore è confermato dal fatto che anche lo schema elettrico riporta la sigla ICSP; probabilmente l'errore nasce dal fatto che quel "chiunque" lavori anche con i chip Microchip. Ora non è che se Banzi compra, p.es., i regolatori di tensione della Microchip, si può prendere da solo l'autorizzazione ad usare una sigla registrata da Microchip su micro ATMEL. Non penso che il vincolo di usare ICSP per i soli micro Microchip sia valido solo per la ATMEL ![]()
Quanto ai sogni di ATMEL ti ho confermato prima
Effettivamente le documentazioni ufficiali di ATMEL e Microchip riportano esclusivamente (e rispettivamente) le sigle ISP e ICSP.
quindi è una inutile sottolineatura. Le schede Arduino non le fa ATMEL ma le fa la società che produce Arduino usando micro ATMEL, di conseguenza non rispetta un copyright della Microchip; se poi quest'ultima è così benevola da non fare questioni perché le devo mettere in piedi io
???
Comunque si fa tanto per parlare, vista l'ora e la giornata, almeno per me, finalmente finita
Cero deve essere sicuramente così :), resta il fatto che ICSP funziona in modo completamente diverso da ISP e può generare confusione per niente, è come dire CANBUS e PROFIBUS, sono entrambi bus di campo ma il primo è della bosh e il secondo è della siemens, e sono completamente incompatibili, una persona seria utilizza sempre il termine giusto e se per caso si sbaglia dice : HO SBAGLIATO, semplice
icio:
Cero deve essere sicuramente così :), resta il fatto che ICSP funziona in modo completamente diverso da ISP e può generare confusione per niente, è come dire CANBUS e PROFIBUS, sono entrambi bus di campo ma il primo è della bosh e il secondo è della siemens, e sono completamente incompatibili, una persona seria utilizza sempre il termine giusto e se per caso si sbaglia dice : HO SBAGLIATO, semplice
Bene, bene. Ai Signori MOD: se avete seguito questa discussione ora sapete di questo grave errore che incombe sulle schede Arduino, sarebbe vostro preciso dovere segnalare la cosa a chi di competenza per i dovuti provvedimenti; finché si gioca con le sigle è un conto ma prendendo atto di quest'ultima affermazione di icio, circa la differenza di funzionamento tra ISP e ICSP, la cosa assume una certa gravità. Peraltro effettivamente sappiamo che con i PIC-kit (mi pare si chiamino così i programmatori ICSP Microchip) qualcuno ha provato, ma senza alcun successo, a programmare i micro ATMEL, e quindi la cosa sarebbe confermata da test effettuati. E se invece le cose non stanno così non sarebbe comunque male ricevere dei chiarimenti tecnici, legali e quant'altro possa contribuire alla crescita del sapere della Comunità.
Mi spiace che il tuo sarcasmo dimostri che tu non abbia capito le mie considerazioni, ![]()
icio:
Mi spiace che il tuo sarcasmo dimostri che tu non abbia capito le mie considerazioni,
No ICIO, scusa ma non hai capito proprio niente, mai stato più serio in vita mia, tant'è che ho aggiunto del mio alle tue considerazioni, come le prove di programmazione con i pic-kit (o come si chiamano loro), sono sicurissimo che diverso tempo fa qualcuno ne parlò sul Forum. Ho preso talmente atto della tua ultima affermazione che sono andato a correggere la sigla ICSP in ISP, in alcuni lavori che sto scrivendo, anche se la usavo, come ho sempre affermato, solo per far riferimento alla stessa sigla presente sulla board; ma ora ho compreso che è solo una perseverazione nell'errore. Poiché però non c'è alcun intervento che affermi con certezza che tu abbia totalmente ragione ho chiamato in causa i MOD affinché qualcuno chiarisse se l'uso della sigla sulla board fosse lecito e perché.
Tutto qui, quando faccio sarcasmo lo faccio in maniera esplicita, tu ti sei lasciato ingannare dagli interventi precedenti, ma poiché tu hai portato la discussione sul serio allora io l'ho presa seriamente e di conseguenza mi sono comportato.
Quindi ribadisco la mia richiesta ai MOD, di cui al precedente post; se fosse confermato ciò che dici è come se avessero scritto "parallel port" accanto ad una porta "USB", e ciò non va bene.
