Progettazione schede a microcontrollore

Qual'è il migliore microntrollore per la mia applicazione? Questa è la domanda che ci poniamo ogni volta che ci apprestiamo alla realizzazione di una nuova scheda, e ogni volta la risposta è differente.

Dipende dalle esigenze generali dell'applicazione, sia in termini di I/O che di potenza di calcolo, da requisiti di memoria e da eventuali esigenze particolari. Ad ora abbiamo implementato diverse soluzioni utilizzando due diverse architetture a 8 bit:

  • AVR
  • 8051

La prima è la ben nota implementazione RISC da una istruzione per ciclo di clock di Atmel, vero workhorse per applicazioni di qualunque tipo; grazie alla robustezza dei suoi stadi di uscita permette di realizzare applicazioni complesse mantenendo un layout estremamente ridotto. La seconda è la "veterana" delle architetture a 8 bit; una architettura CISC robusta (sebbene alquanto lenta, nelle implementazioni non-pipelined da 12 clock/istruzione elementare) e con una buona capacità di espansione della memoria.

Abbiamo utilizzato entrambe le architetture per implementare funzionalità quali:

  • driver PWM per valvole proporzionali
  • driver a MosFET per valvole ON/OFF monostabili e bistabili
  • driver a MosFET per trasduttori ad ultrasuoni
  • interfacce di comunicazione RS-232/485
  • comunicazioni criptate in radio frequenza (868MHz)

Recentemente abbiamo introdotto l'uso dei microcontrollori a 32 bit della famiglia ARM, reimplementando le schede già sviluppate con gli AVR a 8 bit e progettando nuovi sistemi più veloci e performanti grazie ai micro della serie STM32F0 e STM32F1 di ST-Microelectronics, ottenendo indubbi vantaggi in termini di prestazioni e funzionalità.

Il processo di progettazione, dal disegno degli schematici, alla simulazione, al routing e alla creazione dei file Gerber si basa esclusivamente su software open source; è stata questa una scelta che ci ha permesso di costruire un sistema CAE sicuramente non di facile approccio, ma estremamente flessibile e vicino alle problematiche correlate alla produzione di PCB e schede elettroniche. I tools di sviluppo che utilizziamo sono:

  • gEDA per il disegno degli schematici e la generazione delle netlist
  • ng-spice per la simulazione
  • pcb per il routing e la creazione dei file Gerber
  • gerbv per la visualizzazione dei file Gerber

Il processo di progettazione passa quindi dagli schematici:

esempio gEDA

alle simulazioni:

esempio gEDA

allo sbroglio e ottimizzazione dei layout:

esempio gEDA

ed infine alla generazione dei file Gerber (RS-274X):

esempio gEDA