Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Da Arduino ad Atmel Studio

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] Da Arduino ad Atmel Studio

Messaggioda Foto UtenteTricka90 » 15 apr 2017, 11:49

Buona Pasqua a tutti!
Dopo alcuni anni di esperienza con la piattaforma Arduino ho una gran voglia di iniziare a programmare il microcontroller atmega328p come dio comanda.
Sarebbe fantastico se potessi iniziare a fare qualche rapida prova utilizzando l'hardware che già possiedo, ovvero la sola scheda Arduino Uno. Tuttavia, da quello che sto leggendo sul web, sembra che l'utilizzo dell'IDE Atmel Studio necessiti dell'acquisto di un apposito programmatore per il caricamento del codice sull'Arduino Uno, tramite ISP. Ho visto però che c'è chi programma il micro per mezzo del bootloader fornito dell'IDE Arduino, senza utilizzare alcuna interfaccia hardware, e mi piacerebbe molto fare i miei primi passi utilizzando questo metodo.
La mia domanda è: il caricamento tramite bootloader Arduino, oltre che comportare una lieve riduzione della memoria disponibile sul micro, potrebbe "inquinare" in qualche modo il programma caricato o non vi sarebbe alcuna differenza rispetto al caricamento tramite l'interfaccia ISP della Atmel? (a parte forse una differenza nel tempo di caricamento).
Un'altra cosa che mi preoccupa sta nel fatto che mi dovrò scordare della comodissima funzione Serial.print(), per stampare i valori di interesse sullo schermo del PC. Fare ciò programmando il microcontroller in modo "puro" richiede una marea di esperienza o si può imparare abbastanza rapidamente?
Avatar utente
Foto UtenteTricka90
662 1 6 10
Expert
Expert
 
Messaggi: 627
Iscritto il: 1 lug 2013, 15:53

3
voti

[2] Re: Da Arduino ad Atmel Studio

Messaggioda Foto Utentexyz » 15 apr 2017, 13:05

Per programmare basta un editor di testo e una serie di programmi di supporto, IDE non è obbligatorio :ok:

Puoi programmate gli ATmega mantenedo il bootloader di Arduino, non sei obbligato ad usare un programmatore hardware ISP.

Il booloader è protetto e non può essere sovrascritto se è attivo. Solo con un programmatore hardware può sovrascriverlo o disattivarlo (per aumentare lo spazio a disposizione del programma) impostando opportunamente i fuse.

Su eBay si vendono diversi programmatori ISP per AVR, la maggior parte derivano tutti da USBasp:

http://www.fischl.de/usbasp

ma puoi usare un'altra board con un ATmega per programmare un altro ATmega. Consiglio di prendere una versione con la selezionare dei 5 V e 3.3 V per poter programmare tutte le board in commercio.

Come software di programmazione si usa AVRdude. Per programmare un firmware utilizzando il booloader di Arduino se installato:

Codice: Seleziona tutto
avrdude  -D -c arduino -P /dev/ttyUSB0 -b 57600 -p m328p -U flash:w:firmware.hex:i

Il comando equivalente utilizzando un programmatore hardware ISP USBasp:

Codice: Seleziona tutto
avrdude  -D -c usbasp -P USB -p m328p -U flash:w:firmware.hex:i


attenzione se presente un qualsiasi bootloader il comando precedente lo sovrascrive.

Per quanto riguarda l'uso della seriale è possibile registrare una funzione per inviare dei dati da seriaile e impostarla come output per la libreria AVR-libc, la liberia di supporto per i programmi in C e C++. La documentazione spiega come funziona:

http://www.nongnu.org/avr-libc/user-man ... odemo.html
http://www.avrfreaks.net/forum/how-dire ... ream-usart
Avatar utente
Foto Utentexyz
5.930 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1574
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin


Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti