giovedì 31 marzo 2016

PIC 16F877A e ATMEGA328P standalone su breadboard

Era da un po' di tempo che volevo provare ad usare un ATMEGA328P (il microcontrollore di Arduino Uno) separato dalla sua scheda. Cio' permette di rispamiare un po' di soldi (la spesa piu' importante e' il microcontrollore con flashato il bootloader) e di elettronica (regolatore di tensione, programmatore via USB)

Per rendere le cose semplici l'obbiettivo era quello di far girare lo sketch Blink (lampeggio di un led su PIN D13)

Ho scoperto quindi che la circuiteria per usare un ATMEGA ed un PIC su una breadboard sono molto simili e si riducono sostanzialmente ad alimentare il microcontrollore e fornire il clock da un quarzo con due condensatori accessori

PIC 16F877A
Il microcontrollore e' stato programmato con PicKit 3. A differenza di ATMEGA si possono impostare differenti frequenze di clock secondo le modalita' LP (Low Power, 32.768 KHz), XT (fino a 8MHz) ed HS



Il led e' stato posto sulla pin D0



ATMEGA 328P

La configurazione minimale di un ATMEGA 328P e' molto simile a quella del PIC. In pratica e' sufficiente prima programmare il chip direttamente sulla Arduino usando la normale procedura via IDE


Il pin 1 del microcontrollore deve essere orientato verso il connettore ISCP della Arduino. Il microcontrollore e' smontato dalla Arduino Uno

Poi si rimuove il chip e lo si inserisce sulla breadboard (ATTENZIONE: i pin sono estremamente delicati e facili da piegare) . Sono sufficienti  un quarzo oscillatore da 16 MHz tra i pin 9 e 10 (vedi schema successivo) e due condensatori da 22 pF a ponte tra GND ed i due piedini dell'oscillatore. Successivamente si devono connettere i pin 7 e 20 a Vcc +5V e pin 8 e 22 a GND




Fatto cio' si puo' inserire un led sul pin 19 (che corrisponde alla porta digitale 13 nel linguaggio Arduino) per vedere se tutto funziona (ho omesso per semplicita' la resistenza sul led perche' la prova e' durata pochi secondi e non c'era il rischio di fare danni all'elettronica)










E' possibile far funzionare l'ATMEGA 328P anche con il suo clock interno a 8 MHz (senza quindi necessita' di nient'altro che l'alimentazione) ma cio' richiede di modificare il bootloader