This is an old revision of the document!
Placa de proiect - ATmega328P Xplained Mini
Prezentare generală
ATmega328P Xplained Mini este o placă de dezvoltare/evaluare Microchip pentru microcontrolerul ATmega328P (AVR pe 8 biți). Placa include un debugger/programator integrat (mEDBG), alimentare prin USB și acces la semnalele microcontrolerului prin headere compatibile cu stilul Arduino/Xplained. Placa este compatibilă cu Arduino Uno, păstrând formatul pinilor de intrare/ieșire.
Este potrivită pentru:
prototipare rapidă;
testarea perifericelor ATmega328P;
programare și depanare (debug) fără programator extern;
aplicații embedded educaționale sau de laborator.
Caracteristici principale ale plăcii
debugger/programator integrat mEDBG (Mini Embedded Debugger);
suport pentru programare și depanare direct din Atmel Studio / MPLAB X;
Virtual COM Port (CDC) pentru comunicație serială cu PC-ul;
acces la aproape toate semnalele MCU pe headere;
LED utilizator (galben, D200);
buton utilizator (SW200);
tact extern furnizat de mEDBG:
16 MHz la alimentare target de
5V
8 MHz la alimentare target de
3.3V
alimentare prin USB;
regulator onboard 3.3V;
footprint-uri compatibile cu Arduino Shield;
footprint pentru header SPI ISP (programare externă).
Alimentare și configurare tensiuni
Placa poate fi alimentată în două moduri:
Detalii utile:
portul USB este protejat cu siguranță resetabilă PTC 500 mA;
implicit, ATmega328P este alimentat la 5V din USB;
există selecții hardware (prin jumpere/rezistențe 0Ω) pentru:
Dacă se montează header-ele de selecție (J300/J301) și se folosesc jumpere, rezistențele de bypass 0Ω aferente trebuie îndepărtate, altfel apare conflict de alimentare.
mEDBG (debugger/programator integrat)
mEDBG (Mini Embedded Debugger) oferă:
programare și debug onboard (fără programator extern);
interfață USB compozită cu:
interfață de debugger
Virtual COM Port (CDC)
conectare la ATmega328P prin ISP/debugWIRE (dW)
Virtual COM Port (serial peste USB)
Portul serial virtual este conectat la UART-ul ATmega328P și permite comunicație cu aplicația (terminal serial pe PC).
Setări suportate:
baud rate variabil
paritate
biți de stop
Setările UART din firmware-ul ATmega328P trebuie să corespundă cu cele din terminalul serial de pe PC.
Pentru a funcționa Virtual COM Port-ul prin mEDBG, software-ul terminal trebuie să activeze semnalul DTR (Data Terminal Ready). Dacă DTR nu este activ, liniile UART ale mEDBG rămân în stare high-Z (tri-state).
Clock furnizat de mEDBG
mEDBG poate furniza clock către ATmega328P pentru a permite debug prin debugWIRE sincronizat.
| Tensiune target | Clock mEDBG către MCU |
| 3.3V | 8 MHz |
| 5.0V | 16 MHz |
Clock-ul extern către MCU poate fi decuplat hardware (prin eliminarea strap-ului/rezistorului 0Ω corespunzător, R109).
Periferice onboard
Buton utilizator (SW200)
LED utilizator (D200)
LED galben pentru aplicația utilizator
conectat la PB5 (pin 17 ATmega328P)
aceeași linie este asociată și cu semnalul SCK; mEDBG lasă linia în tri-state când nu o folosește
LED status mEDBG
Placa are și un LED verde de status controlat de mEDBG (separat de LED-ul utilizator), utilizat pentru indicarea stării debuggerului:
la pornire: se aprinde scurt
în funcționare normală: stins
la programare/debug: clipește
1) J200 – Digital I/O (High Byte)
| Pin J200 | Pin ATmega328P | Pin Arduino | Funcție / Observații |
| 1 | PB0 | D8 | GPIO |
| 2 | PB1 | D9 | GPIO |
| 3 | PB2 | D10 | SS (SPI Slave Select) |
| 4 | PB3 | D11 | MOSI (SPI) |
| 5 | PB4 | D12 | MISO (SPI) |
| 6 | PB5 | D13 | SCK (SPI), LED utilizator D200 |
| 7 | GND | — | Masă |
| 8 | AREF | AREF | Referință analogică ADC |
| 9 | PC4 | A4 / D18 | SDA (TWI/I²C), partajat cu ADC4 |
| 10 | PC5 | A5 / D19 | SCL (TWI/I²C), partajat cu ADC5 |
2) J201 – Digital I/O (Low Byte)
| Pin J201 | Pin ATmega328P | Pin Arduino | Funcție / Observații |
| 1 | PD0 | D0 (RX) | RXD (USART) |
| 2 | PD1 | D1 (TX) | TXD (USART) |
| 3 | PD2 | D2 | GPIO / INT0 (funcție alternativă MCU) |
| 4 | PD3 | D3 | GPIO / INT1 / OC2B (funcții alternative MCU) |
| 5 | PD4 | D4 | GPIO / T0 / XCK (funcții alternative MCU) |
| 6 | PD5 | D5 | GPIO / PWM (funcție alternativă) |
| 7 | PD6 | D6 | GPIO / PWM (funcție alternativă) |
| 8 | PD7 | D7 | GPIO |
| Pin J202 | Semnal | Pin Arduino | Descriere |
| 1 | NC | — | Neconectat |
| 2 | VCC_TARGET | 5V/3V3 (depinde de selecție) | Alimentarea target selectată (prin J301) |
| 3 | RESET_SENSE | RESET | Reset monitorizat de mEDBG; indisponibil în debug |
| 4 | VCC_P3V3 | 3.3V | Ieșire regulator 3.3V |
| 5 | VCC_P5V0 | 5V (sursă) | Sursa selectată (VIN sau VBUS prin J300) |
| 6 | GND | GND | Masă |
| 7 | GND | GND | Masă |
| 8 | VCC_VIN | VIN | Intrare alimentare externă |
4) J203 – Intrări analogice (ADC)
| Pin J203 | Pin ATmega328P | Pin Arduino | Funcție |
| 1 | PC0 | A0 / D14 | ADC0 |
| 2 | PC1 | A1 / D15 | ADC1 |
| 3 | PC2 | A2 / D16 | ADC2 |
| 4 | PC3 | A3 / D17 | ADC3 |
| 5 | PC4 | A4 / D18 | ADC4 |
| 6 | PC5 | A5 / D19 | ADC5 |
AREF este disponibil pe J200 pin 8.
5) J204 – ISP (programare externă)
| Pin J204 | Pin ATmega328P | Pin Arduino | Funcție |
| 1 | PB4 | D12 | MISO |
| 2 | VCC target | 5V/3V3 | Alimentare țintă |
| 3 | PB5 | D13 | SCK |
| 4 | PB3 | D11 | MOSI |
| 5 | PC6 | RESET | RESET |
| 6 | GND | GND | Masă |
Unele semnale sunt disponibile în zona de grid/prototipare a plăcii:
| Pin ATmega328P | Poziție grid |
| ADC6 | H5 |
| ADC7 | G5 |
Placa poate fi folosită foarte ușor cu PlatformIO (framework Arduino + MiniCore), inclusiv pentru upload prin debugger-ul onboard (EDBG/mEDBG) peste USB.
Exemplu de proiect compatibil: Arduino Shell (shell serial pentru ATmega328P).
1) Clonează proiectul
git clone https://github.com/dantudose/Arduino-Shell.git
cd Arduino-Shell
După ce proiectul este clonat local, deschide directorul cu PlatformIO din VScode.
2) Conectează placa prin USB
conectează ATmega328P Xplained Mini la PC prin USB;
mEDBG/EDBG va expune interfața de programare + port serial virtual;
pe unele sisteme poate apărea un port de tip ttyACM*, ttyUSB* sau usbmodem*.
3) Compilează și încarcă proiectul
Apasă pe Upload and Monitor din PlatformIO.
După deschiderea monitorului serial, ar trebui să vezi prompt-ul shell-ului (ex. arduino$).
Poți testa:
help
status
ver
fs stat
fs ls /
fs cat /scripts/boot.sh
Pinout MCU ATmega328P (rezumat util)
Port B (PB0..PB7)
Port C (PC0..PC6)
Port D (PD0..PD7)
Alte pini importanți
VCC / GND – alimentare digitală
AVCC – alimentare pentru ADC și o parte din porturile analogice
AREF – referință analogică pentru ADC
ADC6 / ADC7 – intrări ADC suplimentare (în pachet TQFP/QFN)
Limitări și observații
unele funcții/pini sunt partajați (ex: PB5 = SCK și LED D200);
configurarea sursei de alimentare și a tensiunii target necesită modificări hardware (soldering) dacă vrei altă configurație decât cea implicită;
debugWIRE poate fi afectat dacă se folosește oscilator intern în locul clock-ului furnizat de mEDBG (conform ghidului plăcii);
documentația online Microchip recomandă verificarea finală în PDF-ul oficial al produsului.
Surse (documentație oficială)