Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Sistemi integrati - accendere luci casa
Forum - Sistemi integrati - accendere luci casa - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 19:48
Giovedì, 15/01/2015
è solo un modo diverso di scrivere gli stessi programmi nella memoria di arduino

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 20:39
Giovedì, 15/01/2015
Io ho comprato qualche mese fa questi
http://www.ebay.it/itm/New-Pro-Mini-atmega328-5V-16M-Repla ...
semplicemente perché offrono la possibilità di avere qualche resistenza, condensatori ed un quarzo in meno sul pcb che devi stampare.
(alcune volte si preferisce far funzionare l'ATmega a 8Mhz ed evitarsi cosi la "noia" di dover aggiungere le piste per un quarzo e due condensatori, a discapito dei 16Mhz).

L'SPI è un interfaccia (insieme ad UART e I2C) di comunicazione presente nei microcontrollori che in caso di AVR vergine è adoperata per caricare il software sul dispositivo mediante tecnica ISP. Per esempio il bootloader di Arduino deve essere caricato mediante questa tecnica, che necessita 6 cavi da collegare ai pin ICSP presenti sulle schede Arduino. Successivamente sarà il bootloader a permetterti di caricare gli sketch; in accensione il bootloader si mette in ascolto attendendo una connessione mediante UART (two wire, full duplex) e se si presenta una richiesta di upload entro un tot di tempo, il bl si occuperà di scrivere il programma compilato nell'area di memoria flash.

L'ISP è necessario per poter abbandonare il bootloader di Arduino di conseguenza si aumenta lo spazio di memoria flash disponibile.
Su un Attiny2313 sarebbe impossibile caricare il bootloader di Arduino in quanto questo presenta solo 2kB di flash.

Chi preferisce la programmazione in C puro solitamente decide di eliminare il bootloader di Arduino in favore di un accensione più veloce e un codice più pulito e compatto.

Si potrebbe approfondire un pochino di più l'argomento ma credo che per il momento avere queste conoscenze ti possa bastare.

PM Quote
Avatar
alex1995 (Normal User)
Expert


Messaggi: 294
Iscritto: 27/01/2011

Segnala al moderatore
Postato alle 20:59
Giovedì, 15/01/2015
capito grazie, preferisco non scrivere in cpp puro anche perche ho visto altri microcontrollori programmati in cpp e per farlo devo avere una buona conoscenza anche in elettronica.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 21:01
Giovedì, 15/01/2015
Non vedo questa grande necessità di usare l'spi anche perchè da quel che ho visto comunque non si può fare il debug, quindi tanto meglio usare il jtag e avrstudio

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 22:28
Giovedì, 15/01/2015
Testo quotato

Postato originariamente da alex1995:

capito grazie, preferisco non scrivere in cpp puro anche perche ho visto altri microcontrollori programmati in cpp e per farlo devo avere una buona conoscenza anche in elettronica.


C non CPP nei microcontrollori il CPP e le malloc vanno usate con estrema consapevolezza, l'heap e lo stack possono collidere senza che il micro se ne renda assolutamente conto. Quindi meglio evitare CPP se si è all'inizio anche perché compilare con CPP classi e main comporta un maggior uso di spazio.

La programmazione degli AVR può essere fatta mediante programmazione parallela o seriale. Mentre della prima non ho la minima idea di come si effettui (anche perché mi sembra superflua un interfaccia parallela per trasmettere al massimo qualche decina di byte) la programmazione seriale si può effettuare solo mediante bus SPI (Gli AVR a 8 bit non hanno molte altre interfacce di comunicazione)pin MISO, MOSI, SCK, RST, VCC e GRD.
Il jtag se non ho capito male è un protocollo certificato IEEE definito per la standardizzazione di programmazione mediante ISP. Quando adoperi un connettore JTAG/ISP stai adoperando il bus SPI. AtmelStudio offre solamente il compilatore, il file hex che restituisce si potrebbe benissimo caricare mediante upload seriale del bootloader di Arduino.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 9:59
Venerdì, 16/01/2015
ops pensavo a tutt'altro. scusate. Comunque si, atmelstudio ha bisogno di un programmatore/debugger per scrivere sulla memoria visto che atmestudio è un software e non fa i miracoli. però.... https://github.com/voventus/AVR-JTAG-ICE-mkI https://amtek.wordpress.com/2011/07/20/make-your-own-avr-jt ... non sono costosissimi da costruire

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:56
Venerdì, 16/01/2015
Se non si hanno grandi pretese è possibile programmare gli ATmega e gli ATtiny direttamente con un Arduino su cui sia stato precaricato lo sketch "ArduinoISP". La scheda programmatrice andrà collegata al PC mediante USB e all'AVR da programmare mediante bus SPI, dopo di che si comporterà come un programmatore compatibile con avrdude.

http://arduino.cc/en/Tutorial/ArduinoISP

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 20:15
Venerdì, 16/01/2015
Si ma.... se non è possibile fare il debug..... Non si guadagna nulla ad usare un metodo di programmazione più complesso

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo