Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Sezione dedicata ai Microcontrollori e ai Sistemi Embedded

Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby flz47655 » 15 Apr 2012, 16:35

Volevo condividere anche con questa community il mio progetto di una schedina di sviluppo basata su AtMega328p e compatibile con l'ambiente di sviluppo di Arduino (non con Shield).

Ecco il mio progetto per immagini:

Image
Image
Image
Image
Image

Nato dall'esigenza di avere un sistema Arduino modulare, a basso consumo energetico, con ICSP senza adattatori, Bluetooth, USB e abbondanza di pin header e per finire.. a bassissimo costo.

L'idea è nata prevalentemente dal desiderio di comunicare senza traslatori di livello con FPGA a 3.3v e si è evoluta per includere ulteriori caratteristiche.

MODULARE
Per ottimizzare i consumi energetici e i costi sia il regolatore di tensione, sia il bluetooth e l'USB non sono on-board anche se previsto un connettore per il bluetooth ed alcuni pin header per il regolatore di tensione.

BASSO CONSUMO ENERGETICO:
La scheda non dispone di un regolatore di tensione on-board perché alimentata da un modulo regolatore di tensione esterno a 3.3volt. Questa scelta permette di alimentare il sistema efficacemente sia con tensioni inferiori tramite uno step-up sia con tensioni superiori tramite uno step down o un alimentatore stabilizzato sia direttamente con 2 batteria Alcaline da 1.5 volt (ottenendo in base allo stato di carica una tensione leggermente inferiore ai 3.3 volt ma pienamente funzionante).

ABBONDANZA DI PIN DI I/O:
Ogni pin del microcontrollore è dotato di almeno 2 header, uno maschio ed uno femmina a tulipano per poter collegare semplicemente l'AtMega328 sia a breadboard o a moduli con header femmina tramite i normali cavetti jumper sia a moduli con header maschi tramite l'utilizzo di cavi dupont (femmina-femmina).

L'utilizzo del bluetooth non richiede ulteriori pin in quanto è presente un header JST-XH a 5 vie dedicato (i pin RX e TX sono accessibili ma collegati al modulo bluetooth)

Sono disponibili 2 pin di I/O aggiuntivi rispetto alla configurazione base di Arduino grazie all'oscillatore interno, programmabili direttamente tramite registri.

ABBONDANZA DI PIN DI GND e VCC:
Il pin VCC è accessibile tramite 6 pin (3 femmina e 3 maschi) mentre il pin GND è accessibile con un ulteriore pin tra gli header ICSP per un totale di 7 pin. Eventualmente è possibile collegare alcuni header ICSP non utilizzati a GND per ulteriori 3 pin.
Un pin VCC e un pin GND dovrà necessariamente essere collegato ad una fonte di alimentazione mentre gli altri rimangono disponibili per alimentare moduli esterni.

ICSP SENZA ADATTATORI
La programmazione può avvenire tramite un qualsiasi programmatore esterno ISP a 10 pin senza bisogno di adattatori.

BLUETOOTH
Il modulo HC-06 con fili e connettore JST saldato permette un utilizzo semplice ed immediato. Da prove sperimentali la distanza raggiungibile con bitrate di 9600bps è circa 15 metri. Il modulo se connesso tramite JST è automaticamente collegato all'alimentazione e ai pin RX e TX. Il pin relativo al led è collegato al connettore JST ma non utilizzato per massimizzare il risparmio energetico.

USB
Tramite il modulo con CP2102 è possibile collegare al pc tramite USB l'Atmega328p, il collegamento avviene tramite 4 cavetti dupont (femmina-femmina)

SPECIFICHE:
- Tensione di ingresso: Min 2.7 volt, Max 4.2 volt (limitata dal modulo Bluetooth, se non utilizzato 5.5 volt)
- ATMega328p con oscillatore interno 8 Mhz su socket DIP
- Modulo bluetooth HC-06
- Modulo usb con CP2102
- Pulsante di reset
- Dimensioni 4.7 x 7.2 cm

Costo dei componenti:
- 0,80€ 1 Basetta millifori
- 4,85€ 1 AtMega328p
- 0,52€ 1 Connettore JST-XH a 5 vie
- 0,20€ 40 Pin header maschi
- 0,42€ 30 Pin header femmina a tulipano
- 0,12€ 1 Socket DIP 28 pin
- 5,64€ 1 Modulo Bluetooth HC-06
- 3,27€ 1 Modulo USB CP2102
- 0,80€ 4 Distanziali PCB
- 0,70€ (approssimativo) 1 Pulsante, 2 Condensatori 100nF, 1 Condensatore 10uF, 1 Resistenza 10K, Pezzi di cavo ad anima unica per millifori
-----------------------------------------------------------------
17,32€

Il prezzo è basato sui miei acquisiti ed in alcuni casi sono stati ordinati più pezzi per raggiungere un prezzo inferiore.
Ordinando grossi quantitativi è possibile raggiungere costi ancora inferiori.

Con meno di 18 euro (compresi anche i distanziali!) ho raggiunto il mio scopo e data la modularità della soluzione è possibile utilizzare in altri progetti i moduli Bluetooth ed il convertitore USB/UART.

Ho impiegato alcune ore per progettare e realizzare su millifori il progetto ma un "elettronico esperto" potrebbe impiegare molto meno o comunque copiando il progetto il tempo cala drasticamente.

Adesso ho una schedina pronta per comunicare con FPGA :D

Ciao e grazie a tutti

Per aggiornamenti su questo progetto non relativi all'interazione con FPGA: http://www.electroit.tk/index.php/topic,152.0.html
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby Regedit » 16 Apr 2012, 11:11

Buongiorno,
Scusate la mia ignoranza,
ma io penso che per interfacciarsi con una Fpga l'atmega328 mi sembra troppo poco.
Io sto facendo qualcosa con l'arduino, ma adesso mi sto accorgendo che è un tantino limitato, figuratevi se si può interfacciare con una fpga.
Ancora non ho fatto nulla con le fpga ma penso che è necessario un micro più potente almeno in termini di linee di ingresso/uscita.
Ad esempio un atmega128 o atmega2560.

Che ne dite ?
Regedit
 
Posts: 16
Joined: 05 Jan 2012, 21:04

Re: Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby flz47655 » 16 Apr 2012, 13:44

Ciao regedit,

Dire solamente FPGA non vuol dire molto, ne esistono molti modelli e si va dalla FPGA che ha una capacità tale da sintetizzare una piccola MCU (meno "potente" di Arduino) a FPGA che riescono a sintetizza interi sistemi (CPU,Scheda Video,Scheda Audio,etc.. su un solo chip).

Tutto dipende da quello che si fa con l'FPGA, è come avere un chip con la logica da creare.

Ti faccio un esempio, potrei scrivere anche un semplice multiplexer e volerlo utilizzare con Arduino: non avrei nessun problema finchè vengono rispettate le tensioni e le correnti corrette.

Ho creato uno standalone a 3.3Volt proprio per avere una tensione compatibile con la mia FPGA, ho inserito anche i pin header maschi perchè la FPGA ha solamente pin header maschi e con cavi femmina-femmina risolvo facilmente il collegamento.

Nell'interfacciare la FPGA con Arduino bisogna ovviamente creare un qualcosa nella FPGA che sia gestibile da Arduino, in questo senso se leggi gli altri post ho iniziato a creare un modulo UART che comunica a 9600bps, più che gestibile anche dal più piccolo Arduino.

Per creare cose così semplici naturalmente una grande FPGA è sprecata e basterebbe un CPLD o una FPGA molto piccola.

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby Regedit » 16 Apr 2012, 14:44

Ok flz,
grazie per i chiarimenti, certo è indispensabile sapere a priori cosa si vuole realizzare con la fpga.
Ti volevo fare una domanda... ho visto la possibilità di implementare su una fpga un micro avr.
Sai qualcosa a proposito?

Avere a bordo della fpga un micro + hardware sarebbe fantastico.

grazie
Regedit
 
Posts: 16
Joined: 05 Jan 2012, 21:04

Re: Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby flz47655 » 16 Apr 2012, 15:34

Si, in pratica hanno creato in un progetto open-source un core compatibile con le istruzioni degli AVR AtMega103
http://opencores.org/project,avr_core dove probabilmente puoi far girare la maggior parte degli sketch Arduino.

Se ti approcci al mondo FPGA la soft-cpu (cpu sintetizzabile sulla FPGA) di Altera chiama NiosII ed è forse ancora più interessante perchè ha un incredibile supporto software e flessibilità hardware.

Per iniziare con le soft-cpu penso che la dev board DE0-Nano sia molto indicata (ne ho una :D )

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby peter90 » 17 Apr 2012, 20:11

scusa flz,
ma se si implementa un soft-core tipo avr ti mancano però molte interfacce....
una di queste secondo me è l'ADC.

Non saprei.

cmq grazie
peter90
 
Posts: 44
Joined: 11 Apr 2012, 19:46

Re: Atmega328p@ 3V3 8Mhz Int w/Bluetooth/ICSP/Double row pin

Postby flz47655 » 18 Apr 2012, 17:41

Con le FPGA non si può replicare tutto, dovresti collegare un ADC esterno che ti può offrire tra l'altro maggiori prestazioni
La schedina DE0-Nano che ho ha un ADC on-board assieme alla FPGA :D

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16


Return to Microcontrollori e microprocessori

Who is online

Users browsing this forum: No registered users and 11 guests

cron