Atmega328P vs PIC, guide e linguaggi

Ciao a tutti! Ho usato per molto tempo Arduino 2009, dopo aver smanettato con un PIC di un robottino della deagostini (si programmava in basic, già anche lui con bootloader non riscrivibile però). Ora vorrei muovermi sull'uso di PIC e relativi programmatori. Trovo di tutto e di più :D Però non riesco a capire cosa usare, in modo "ufficiale" almeno, per gli Atmega. Avete dei link di partenza? Ad esempio, per PIC c'è il sito di http://www.settorezero.com che fornisce delle lezioni "complete". Cerco un sito per farmi un'idea chiara a anche sugli Atmega e, perché no, anche su altri tipo Arm.

Grazie! :D

Gli ATmel sono micro un pò meno diffusi almeno tra gli hobbysti... cerca tra le application note della tmel e scaricati AVR studio e vedrai che combini qualcosa :) eventualmente usa MikroC AVR è pieno di esempi...

Questi secondo me sono ottimi

http://www.avrfreaks.net/

La sezione tutorial di avrfreaks è sterminata!!! :wink:

Qualcuno ha mai usato i freescale? http://diydrones.com/profiles/blogs/atmel-v-microchip-v-freescale

Purtroppo quell'analisi è di 3 anni fa e non porta dati oggettivi a corredo dei giudizi, a me paiono solo osservazioni molto "alla mano", senza dati. Cmq sarei anch'io curioso dei Freescale.

io ho dato un'occhiata ai "pari" degli attiny... l'ACD sembra essere molto migliore (10bit ma a velocità astronimiche), non ho cercato molto ma è abbastanza rara la documentazione

lesto:
Qualcuno ha mai usato i freescale? http://diydrones.com/profiles/blogs/atmel-v-microchip-v-freescale

Analisi fatta da uno con scarsa conoscenza dei micro in oggetto, non fa testo e contiene molti errori di valutazione.

ratto93: Gli ATmel sono micro un pò meno diffusi almeno tra gli hobbysti...

Questo non è vero, anzi è esattamente il contrario, nel mondo amatoriale gli Atmel sono le mcu più diffuse in assoluto, è nel mondo commerciale che le cose sono diverse. Microchip è il leader mondiale indiscusso sulle mcu a 8 e 16 bit, p.e. Samsung da sola ha acquistato oltre 10 miliardi di mcu Microchip in pochi anni, questo giusto per far capire quali sono le reali cifre di questo mercato al quale interessano, come volume di vendite, ben poco le decine di migliaia di pezzi annui relativi al mercato amatoriale.

Grazie a tutti per le risposte! Però c'è qualcosa di equivalente ad MPlab / hitec c di Microchip per gli Atmel? Ad esempio, qualcuno che abbia usato AVR Studio 5? Per riprogrammare il mio Atmega 328p serve un programmatore per l'ICSP come i Pic? O si può usare la seriale? E alla risposta "si può usare il seriale" dico: ma l'ICSP? :D

EDIT: per seriale intendo l'USB già montata sulla scheda.

thexeno: Però c'è qualcosa di equivalente ad MPlab / hitec c di Microchip per gli Atmel?

Atmel se li sogna di notte i tool software, ma anche quelli hardware, di Microchip :) MPLAB è un software che se messo in vendita, invece di essere use free, costerebbe molte migliaia di Euro, è un tool con una potenza impressionante se lo si sa usare a fondo. AvrStudio 4, o 5, non è male come ambiente di lavoro, però vale 1/10 di MPLAB come potenzialità e flessibilità d'uso.

Ad esempio, qualcuno che abbia usato AVR Studio 5? Per riprogrammare il mio Atmega 328p serve un programmatore per l'ICSP come i Pic? O si può usare la seriale? E alla risposta "si può usare il seriale" dico: ma l'ICSP? :D

Puoi usare la seriale solo se sul micro è presente un qualche bootloader, AvrStudio può essere istruito per utilizzare un programma esterno per la programmazione del micro oltre all'uso dei vari programmatori supportati in modo diretto. Se devi lavorare con micro Atmel a 8 bit lascia perdere AvrStudio 5, usa la versione 4, con la sua toolchain, che è decisamente più leggera, meno invasiva e più semplice da utilizzare.

astro, ma la versione 4 di avrstudio ricordo che non "vedeva" arduino sulla seriale, solo isp e con i programmatori di atmel.

astrobeed:

thexeno: Però c'è qualcosa di equivalente ad MPlab / hitec c di Microchip per gli Atmel?

Atmel se li sogna di notte i tool software, ma anche quelli hardware, di Microchip :) MPLAB è un software che se messo in vendita, invece di essere use free, costerebbe molte migliaia di Euro, è un tool con una potenza impressionante se lo si sa usare a fondo. AvrStudio 4, o 5, non è male come ambiente di lavoro, però vale 1/10 di MPLAB come potenzialità e flessibilità d'uso.

Ad esempio, qualcuno che abbia usato AVR Studio 5? Per riprogrammare il mio Atmega 328p serve un programmatore per l'ICSP come i Pic? O si può usare la seriale? E alla risposta "si può usare il seriale" dico: ma l'ICSP? :D

Puoi usare la seriale solo se sul micro è presente un qualche bootloader, AvrStudio può essere istruito per utilizzare un programma esterno per la programmazione del micro oltre all'uso dei vari programmatori supportati in modo diretto. Se devi lavorare con micro Atmel a 8 bit lascia perdere AvrStudio 5, usa la versione 4, con la sua toolchain, che è decisamente più leggera, meno invasiva e più semplice da utilizzare.

Ah ottimo... ma quindi non c'è una cosa che valga come MPlab? Non sono a quei livelli, ovvio, ma giusto per avere riferimenti. Per iniziare un progettino da zero, completamente autocostruito, con un nuovo processore (userò un 28 pin, tipo il 328p, al momento) mi consigli di acquistare un PIC o un Atmel? (al di la del singolo modello con le proprie caratteristiche, sto cercando buona documentazione eventuale con relativa compatibilità d'uso con i software che forniscono, se su Linux o Windows non mi cambia molto) Considera che ho una buona manualità con il C anche se non sono un professionista nel gestire le strutture dati, specie se molto grandi. Spero di non essere stato troppo confusionale.

BrainBooster: astro, ma la versione 4 di avrstudio ricordo che non "vedeva" arduino sulla seriale.

Mica stiamo parlando di Arduino, e poi chi ha detto che non si può programmare, inteso come trasferimento del .hex sulla flash, Arduino da AvrStudio ? Quello che non puoi fare, o meglio è molto difficile da fare, è usare Wiring sotto AvrStudio, però nulla vieta di scrivere software in C/C++ sotto AvrStudio e programmare direttamente Arduino tramite AvrDude generando in automatico la necessaria riga di comando.

Pensavo stesse parlando di arduino , perchè avevo letto che parlava della seriale intesa come usb sulla scheda, e quindi... :) comunque FYI c'è la beta 6 di avrstudio http://www.atmel.com/Microsite/atmel_studio6/default.aspx

thexeno: Ah ottimo... ma quindi non c'è una cosa che valga come MPlab? Non sono a quei livelli, ovvio, ma giusto per avere riferimenti.

Free no di sicuro, se poi sei disposto a spendere qualche migliaio di Euro ci sono ottimi ambienti di sviluppo, con i relativi compilatori, per AVR, stessa cosa vale anche per Microchip con la differenza che loro offrono gratis un ottimo sistema di sviluppo.

Per iniziare un progettino da zero, completamente autocostruito, con un nuovo processore (userò un 28 pin, tipo il 328p, al momento) mi consigli di acquistare un PIC o un Atmel?

Questa è una domanda a cui è impossibile dare una risposta assoluta, dipende dal tipo di applicazione, per certe cose i PIC sono meglio degli AVR e viceversa, di sicuro sulle mcu 8 bit Microchip offre una vastissima scelta con soluzioni verticalizzate su applicazioni specifiche che Atmel non possiede.

astrobeed: Free no di sicuro, se poi sei disposto a spendere qualche migliaio di Euro ci sono ottimi ambienti di sviluppo, con i relativi compilatori, per AVR, stessa cosa vale anche per Microchip con la differenza che loro offrono gratis un ottimo sistema di sviluppo.

Be, girando le cose con parole diverse, intendo trovare solo l'ambiente di sviluppo simile a quello che viene dato con un programmatore Pickit 2 e ufficiale della casa produttrice. Se poi Atmel non fornisce versioni "limitate" gratuite come fa Microchip, non mi importa; quel che conta è, come per i pic, che se voglio farmi una cultura relativa a loro comincio con le basi di guide che sfruttano gli standard del software ufficiale e/o il software ufficiale stesso. La cosa che continuo a non capire è se AVR studio è tanto "ufficiale e supportato dal produttore" quanto lo è Mplab. Quindi, sostanzialmente non è di mio interesse usare questi programmi avanzati e costosi, quanto avere a disposizione delle "parole chiave". :)

Questa è una domanda a cui è impossibile dare una risposta assoluta, dipende dal tipo di applicazione, per certe cose i PIC sono meglio degli AVR e viceversa, di sicuro sulle mcu 8 bit Microchip offre una vastissima scelta con soluzioni verticalizzate su applicazioni specifiche che Atmel non possiede.

Ho letto qualche differenza in modo approfondito qualche tempo e neurone fa, ma mi sembrava fossero cose rilevanti solo per applicazioni di tipo estremamente specifico e professionale, del tipo (sparata a caso): "la cella di memoria di partenza dedicata dell'interrupt è la 0x0FC e non la 0x0FF per cui accedo con un consumo di corrente inferiore di 10^-12 Ampere bla bla e l'assembler è più bello bla bla" XD

Inoltre, su http://www.settorezero.com/wordpress/corso-programmazione-pic-in-c-lezione-1-cose-un-microcontrollore-caratteristiche-note-introduttive-come-scegliere-programmatore-e-linguaggio-di-programmazione/ c'è una guida che parte con lo spiegare un po' tutto in italiano. Non che con l'inglese sia negato, ma se trovassi anche grazie all'aiuto del forum guide in italiano a questo livello per altri tipi di processore (Atmega), sarebbe magnifico! Per non parlare del fatto che questa guida dei PIC possa servire a molti neofiti.

Infine, qualcuno ha usato AVR Studio 5 con il bootloader di Arduino 2009?

Se intendi programmare arduino via bootloader con AVR Studio 5 devi:

  • Menu Tools -> External Tools...
  • Nella casella Title: metti un nome descrittivo ad es. Program Arduino
  • In Command: metti il percorso ad avrdude.exe ad es. C:/arduino-0022/hardware/tools/avr/bin/avrdude.exe[/li] - In Arguments: metti il percorso di avrdude.conf più i parametri corretti come nell' es. -CC:/arduino-0022/hardware/tools/avr/etc/avrdude.conf -v -v -patmega328p -cstk500v1 -PCOMxx -b57600 -D -Uflash:w:"$(ProjectDir)Debug$(ItemFileName).hex":i Modifica COMxx con la COM di arduino e -b57600 con la velocità della 2009 (che non so) - Se il file .hex è in una cartella diversa da quella del progetto, puoi attivare la flag Prompt for arguments per inserire il percorso effettivo all' .hex, sostituendolo ovviamente a -$(ProjectDir)Debug$(ItemFileName).hex - Premi Apply per confermare - Puoi impostare la flag Use Output window per vedere i risultati della "flashata" - Ora nel menu Tools ci sarà la nuova voce Program Arduino da utilizzare per la programmazione
  • [/list]*
  • Verifica se il protocollo di programmazione stk500v1 è quello corretto per Arduino 2009.*
  • Ciao*
  • QP*

Grazie per la risposta! Per la velocità non so, ho sempre usato il 9600 baud... Per la porta COM come faccio a vedere qual'è in modo rapido? Tutta via non va, perché alla fine mi dice

avrdude.exe: stk500_getsync(): not in sync: resp=0x00
avrdude.exe: stk500_disable(): protocol error, expect=0x14, resp=0x51

Però potrò usare il C in modo più libero senza le funzioni Setup e Loop?

EDIT: ho modificato un po la stringa e credo funzioni... voglio dire, lampeggia e fa qualcosa dicendo (sempre con un ciclo infinito che non fa nulla, perché al momento altro non so scrivere):

avrdude.exe: Version 5.4-arduino, compiled on Oct 11 2007 at 19:12:32
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

             System wide configuration file is "C:\Users\TheXeno\Documents\arduino-0022\hardware\tools\avr\etc\avrdude.conf"

             Using Port            : COM3
             Using Programmer      : stk500v1
             Overriding Baud Rate  : 57600
             AVR Part              : ATMEGA328P
             Chip Erase delay      : 9000 us
             PAGEL                 : PD7
             BS2                   : PC2
             RESET disposition     : dedicated
             RETRY pulse           : SCK
             serial program mode   : yes
             parallel program mode : yes
             Timeout               : 200
             StabDelay             : 100
             CmdexeDelay           : 25
             SyncLoops             : 32
             ByteDelay             : 0
             PollIndex             : 3
             PollValue             : 0x53
             Memory Detail         :

                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom        65     5     4    0 no       1024    4      0  3600  3600 0xff 0xff
               flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

             Programmer Type : STK500
             Description     : Atmel STK500 Version 1.x firmware
             Hardware Version: 2
             Firmware Version: 1.16
             Vtarget         : 0.0 V
             Varef           : 0.0 V
             Oscillator      : Off
             SCK period      : 0.1 us

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: safemode: lfuse reads as 0
avrdude.exe: safemode: hfuse reads as 0
avrdude.exe: safemode: efuse reads as 0
avrdude.exe: reading input file "C:\Users\TheXeno\Documents\AVRStudio 5.1\Inizio\Inizio\DebugInizio.hex"
avrdude.exe: can't open input file C:\Users\TheXeno\Documents\AVRStudio 5.1\Inizio\Inizio\DebugInizio.hex: No such file or directory
avrdude.exe: write to file 'C:\Users\TheXeno\Documents\AVRStudio 5.1\Inizio\Inizio\DebugInizio.hex' failed

avrdude.exe: safemode: lfuse reads as 0
avrdude.exe: safemode: hfuse reads as 0
avrdude.exe: safemode: efuse reads as 0
avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.

Ha uppato qualcosa, nonstante tutto? Poi il fatto che oscillator è "off" sarà impostabile con altre modalità di oscillatore e vari flag, che spero di capire come trovarli sull'IDE.