Introduzione alla programmazione del microcontrollore Atmega128 / 328

Atmega128 \/328 è un potente microcontrollore utilizzato in una varietà di campi applicativi. È un microcontrollore a 8 bit altamente integrato con una vasta gamma di periferiche e funzionalità. In questo post del blog, esamineremo le diverse funzionalità di Atmega128 \/ 328, la sua configurazione dei pin, le tecniche di programmazione e le applicazioni. Discuteremo anche i vantaggi del microcontrollore Atmega128 \/ 328 rispetto ad altri microcontrollori e forniremo alcune best practice per lavorare con esso.

Cos'è Atmega128 \/ 328?

Atmega128 \/ 328 è un microcontrollore a 8 bit prodotto da Atmel Corporation. Si basa sull’architettura AVR ed è uno dei microcontrollori più popolari utilizzati nei sistemi embedded. È disponibile in vari package e configurazioni, tra cui un PDIP a 40 pin, un TQFP a 44 pin e un VQFP a 64 pin. Atmega128 \/ 328 si basa sull’architettura RISC e dispone di una vasta gamma di periferiche, tra cui un convertitore A\/D a 10 bit a 8 canali, tre timer a 16 bit, una porta seriale e una porta SPI. Ha un totale di 128Kbyte di memoria di programma e 2Kbyte di EEPROM.

Atmega128
Atmega128

Panoramica di Atmega128 \/ 328

Caratteristiche

Atmega128 \/ 328 ha una vasta gamma di funzionalità, che lo rendono un microcontrollore versatile e potente. Ha un’architettura RISC a 16 bit, che gli consente di eseguire le istruzioni in modo rapido ed efficiente. Può funzionare a 8MHz, 16MHz o 20MHz, rendendolo adatto a una vasta gamma di applicazioni. Atmega128 \/ 328 dispone anche di una vasta gamma di periferiche, tra cui un convertitore A\/D a 10 bit a 8 canali, tre timer a 16 bit, una porta seriale e una porta SPI. Dispone inoltre di 128Kbyte \/ 328 Kbyte di memoria di programma e 2Kbyte di EEPROM, che gli consentono di memorizzare grandi quantità di dati.

Atmega128 \/ 328 è anche altamente integrato, rendendolo ideale per l’uso in sistemi embedded. Ha un oscillatore on-chip, un circuito di reset on-chip e una regolazione di tensione on-chip. Dispone inoltre di un circuito di reset all’accensione on-chip, che garantisce che il microcontrollore venga ripristinato quando viene applicata l’alimentazione. Inoltre, Atmega128 ha una vasta gamma di porte I\/O, che gli consentono di interfacciarsi con una varietà di dispositivi esterni.

Configurazione dei pin

Atmega128 \/ 328 ha un totale di 64 pin, disposti in due righe. I pin sono divisi in due categorie: pin I\/O digitali e pin I\/O analogici. I pin I\/O digitali vengono utilizzati per controllare i segnali digitali, mentre i pin I\/O analogici vengono utilizzati per controllare i segnali analogici. Atmega128\/ 328 dispone anche di una porta seriale, una porta SPI e una porta I2C.

Pin Configuration of Atmega128
Pin Configuration of Atmega128

Applicazioni

  • Progetti di robotica, come bracci robotici e robot autonomi.
  • Progetti di comunicazione, come moduli Bluetooth e Wi-Fi.
  • Sistemi di acquisizione dati e sistemi embedded per la registrazione e il controllo dei dati.
  • Applicazioni automobilistiche, come sistemi di controllo del motore e sistemi di infotainment per veicoli.
  • Prodotti di consumo, come telecomandi, fotocamere digitali ed elettrodomestici.

Programmazione di Atmega128 \/ 328

L’IC Atmega128/328 può essere programmato utilizzando C o linguaggio assembly. Ha un’ampia gamma di funzionalità che lo rendono facile da programmare, tra cui un’ampia gamma di porte I/O, un oscillatore integrato e un regolatore di tensione integrato.

Se desideri programmare l’Atmega128/328, avrai bisogno di un programmatore. Un programmatore è un dispositivo utilizzato per trasferire il codice del programma da un computer all’Atmega128/328. Una volta trasferito il codice del programma, l’IC può essere programmato utilizzando il software appropriato. Tutti i passaggi possono essere suddivisi in 4 parti come di seguito:

  • Parte 1: Preparazione dei componenti necessari.
  • Parte 2: Costruzione di circuiti Arduino su una breadboard.
  • Parte 3: Caricamento del bootloader nell’IC Atmega128/328.
  • Parte 4: Programmazione dell’IC Atmega128/328.

Parte 1: Preparazione dei componenti

Atmega128/328: Il componente chiave sulla breadboard e il suo schema dei pin è fornito sopra.

Breadboard (LM7805): Un dispositivo senza saldatura per collegare componenti elettronici con cavi jumper.

Oscillatori (16 MHz): Fornendo i clock per l’IC, collegati con il Pin 23 e il Pin 24.

Condensatore (10uF): Utilizzato nelle sezioni di ingresso e uscita dell’LM7805 per bypassare eventuali componenti AC a massa.

Cavo Jumper: Un filo metallico che collega due punti su una scheda di circuito o breadboard.

Parte 2: Costruzione di circuiti Arduino su una breadboard senza saldatura

Passaggio 1: Innanzitutto, collega la sezione di alimentazione come mostrato nello schema del circuito e testala con l’alimentatore esterno dell’LM7805. Sembra questo:

Connecting the power to LM7805 breadboard
Connecting the power to LM7805 breadboard

Passaggio 2: Quindi, collega la parte del microcontrollore come mostrato nello schema del circuito.

Connecting the Atmega128/328 IC to breadboard
Connecting the Atmega128/328 IC to breadboard

Passaggio 3: Ora, usa i cavi jumper per collegare l’alimentazione e la sezione del microcontrollore.

Connecting the power supply and the Atmega128/328 IC by wire jumpers
Connecting the power supply and the Atmega128/328 IC by wire jumpers

Parte 3: Carica il bootloader nell'IC Atmega128/328

Un bootloader è una piccola porzione di codice eseguibile memorizzata permanentemente nella memoria del microcontrollore. Questo occupa meno di 1Kb di memoria. Un bootloader consente al circuito integrato di accettare codice dal computer e di posizionarlo nella memoria del microcontrollore.

Quando si acquista un nuovo Atmega128 / 328 sul mercato, non ha un bootloader. Pertanto, per programmarlo utilizzando l’Arduino IDE, è necessario prima caricare il bootloader.

Per caricare il bootloader, abbiamo due metodi:

  • Utilizzando il programmatore USBasp
  • Utilizzando una scheda Arduino UNO

Rispetto al primo metodo, il secondo metodo è più semplice. Perché richiede meno connessioni e le versioni più recenti dell’Arduino IDE sono meno compatibili con i programmatori USBasp.

Quindi, in questo tutorial, utilizzeremo la scheda Arduino UNO per caricare il bootloader.

Passaggio 1: Apri l’Arduino IDE. Vai al menu: File -> Esempi -> ArduinoISP. Quindi scegli ArduinoISP.

Opening Arduino IDE and Choose ArduinoISP Examples
Opening Arduino IDE and Choose ArduinoISP Examples

Passaggio 2: Ora, devi caricare questo codice sulla tua scheda Arduino. Seleziona la porta COM e la scheda dal menu degli strumenti e fai clic sul pulsante di caricamento.

Passaggio 3: Dopo aver completato il caricamento, scollega la scheda Arduino dal computer. E quindi collega la scheda Arduino al circuito integrato Atmega128 / 328 come mostrato nell’immagine sottostante.

Connecting the Arduino board with the Atmega128 / 328
Connecting the Arduino board with the Atmega128 / 328

Passaggio 4: Apri l’Arduino IDE dopo aver collegato la scheda Arduino al computer. Successivamente, vai al menu: Strumenti -> Scheda: “Arduino/Genuin0 Uno” e seleziona la porta corretta per la tua scheda. Quindi, seleziona Programmatore: come “Arduino as ISP”.

Choosing Board Arduino or Genuine Uno and Programmer as Arduino as ISP
Choosing Board Arduino or Genuine Uno and Programmer as Arduino as ISP

Passaggio 5: Ora, vai di nuovo alla barra del menu Strumenti e fai clic su Scrivi Bootloader sotto l’opzione Programmatore. Dopo pochi secondi, il bootloader verrà caricato correttamente. Se ci sono errori durante il caricamento, controlla la connessione.

Burning Bootloader to Atmega128 / 328
Burning Bootloader to Atmega128 / 328

Parte 4: Programmazione del circuito integrato Atmega128 / 328

Il chip Arduino Atmega128 / 328 può essere programmato in diversi modi, tra cui:

  1. Utilizzare una scheda Arduino senza il chip Atmega128 / 328 IC.
  2. Utilizzare il modulo di conversione da USB a seriale TTL (modulo FTDI).
  3. Utilizzare un programmatore USBasp (se ci sono molte connessioni).

Qui, introduciamo il primo e il secondo modo per programmare il chip Atmega128 / 328 IC.

4.1 Programmazione del chip Atmega128 / 328 IC utilizzando una scheda Arduino

Passaggio 1: Prendi una scheda Arduino senza il chip Atmega128 / 328. Quindi collega la scheda Arduino alla nostra breadboard come mostrato.

Connecting the Arduino board with the breadboard
Collegamento della scheda Arduino alla breadboard

Passaggio 2: Collega la scheda Arduino al computer e apri l’IDE di Arduino. Seleziona Arduino Uno dal menu Board in Strumenti, Programmatore come USBasp e la corretta porta COM della scheda.

Passaggio 3: Inizieremo caricando il programma Blink. Quindi seleziona il programma blink dagli esempi e premi il pulsante di caricamento.

Uploading the Blink program to Atmega128 / 328
Caricamento del programma Blink su Atmega128 / 328

Ora puoi vedere il LED sulla breadboard iniziare a lampeggiare.

4.2 Programmazione dell'Atmega128 / 328 utilizzando un convertitore da USB a seriale

Questo è il modo migliore per programmare l’Atmega128 / 328 se non hai una scheda Arduino.

Passaggio 1: Imposta le connessioni del convertitore USB-seriale come segue:

Pin RXD di FTDI -> Pin Tx di Atmega128 / 328 (pin 3)

Pin TXD di FTDI -> Pin Rx (pin 2) di Atmega128 / 328

GND -> GND (pin 8)

5v -> Vcc (pin 7)

Alcuni moduli FTDI hanno un pin di Reset, noto anche come pin DTR, che deve essere collegato al pin di Reset (pin 20) dell’Atmega128 / 328.

Passaggio 2: Ora, collega l’FTDI al computer e apri il Gestione dispositivi nel Pannello di controllo. Vedrai la sezione Porte, espandila. Se il driver ha un segno giallo di fronte, il driver del modulo deve essere aggiornato.

Connecting the FTDI with computer and open Device Management in Control Panel
Connecting the FTDI with computer and open Device Management in Control Panel

Se non è contrassegnato, prendi nota del numero della porta com e apri l’IDE di Arduino. Vai su Strumenti -> Porte -> Seleziona la com che hai annotato.

Passaggio 3: Alla fine, carichiamo il programma Blink sulla nostra Arduino Breadboard. Vai su File -> Esempi -> Basics -> Blink. Dal menu Board in Strumenti seleziona Arduino Uno, Programmatore come USBasp e la corretta porta com della scheda.

Quindi fai clic sul pulsante di caricamento.

(Nota: se il tuo modulo FTDI non ha un pin DTR, premi il pulsante di reset sulla breadboard e fai clic sul pulsante di caricamento. Se dice “Compilazione dello sketch…”, premi e tieni premuto finché non appare “Caricamento…” e quindi rilascia il pulsante.)

Ora il programma verrà caricato correttamente nel chip Atmega128 / 328 Bootloader Arduino.

Atmega128 / 328 vs Altri Microcontrollori

L’Atmega128 / 328 è un microcontrollore potente e versatile, ma sono disponibili altri microcontrollori che potrebbero essere più adatti a determinate applicazioni. Ad esempio, il processore ARM Cortex-M è più adatto per applicazioni che richiedono prestazioni più elevate. Il processore ARM è anche più efficiente dal punto di vista energetico ed è più adatto per applicazioni a basso consumo.

L’Atmega128 / 328 è anche più costoso di alcuni altri microcontrollori. Tuttavia, è un microcontrollore potente e versatile, ed è adatto a un’ampia gamma di applicazioni. Pertanto, è importante considerare i requisiti dell’applicazione quando si sceglie un microcontrollore.

Migliori pratiche per lavorare con Atmega128 / 328

L’Atmega128 / 328 è un microcontrollore potente e versatile, e ci sono alcune buone pratiche per lavorarci. È importante mantenere il microcontrollore in un ambiente privo di elettricità statica, poiché l’elettricità statica può danneggiare il microcontrollore. È anche importante assicurarsi che il microcontrollore sia alimentato con la corretta tensione e che il regolatore di tensione on-chip funzioni correttamente. Inoltre, è importante assicurarsi che l’oscillatore on-chip funzioni correttamente, poiché questo viene utilizzato per generare il segnale di clock.

È anche importante assicurarsi che gli strumenti di sviluppo siano aggiornati e che il codice di programmazione sia accuratamente testato prima di essere utilizzato nel microcontrollore. Inoltre, è importante aderire alle normative di sicurezza appropriate quando si lavora con il microcontrollore.

Condividi con:

Torna in alto

Instant Quote