ARM7TDMI-S (LPC2103)

I µC LPC2101, LPC2102 e LPC2103 di NXP (precedentemente Philips) sono basati sulla CPU ARM7TDMI-S, 16-bit/32-bit, con emulazione real-time e 8 kB, 16kB o 32 kB di memoria embedded flash ad alta velocità. L'interfaccia di memoria a 128-bit e la particolare architettura di acceleratore permettono l'esecuzione di codice a 32-bit alla massima velocità di clock. Per ottenere prestazioni elevate nelle routine di servizio degli interrupt e negli algoritmi DSP, ciò incrementa le prestazioni fino al 30% in più rispetto alla modalità Thumb. Per applicazioni in cui è importante la dimensione del codice, la modalità alternativa Thumb a 16-bit riduce il codice di oltre il 30%, con minima ricaduta sulle prestazioni. Grazie alle loro piccole dimensioni ed al basso consumo, gli LPC2101, LPC2102 e LPC2103 sono ideali per le applicazioni in cui la miniaturizzazione è un requisito importante. Un'ampia scelta di interfacce di comunicazione seriali comprendenti UART multiple, SPI, SSP, due bus I2C, unite alla memoria SRAM on-chip di 2kB / 4kB / 8kB, rendono questi dispositivi particolarmente adatti per la realizzazione di gateway di comunicazione e convertitori di protocollo. Le prestazioni superiori rendono inoltre questi dispositivi adatti all'uso come coprocessori matematici. Numerosi timer a 32-bit e 16-bit, un avanzato convertitore A/D a 10-bit, funzionalità PWM su tutte le uscite timer e 32 linee veloci I/O con fino a 9 pin con interrupt sul fronte o sul livello rendono questi microcontrollori particolarmente adatti per sistemi di controllo industriale e medici.
ON CHIP Debug con OPENOCD & JTAG-Tiny Amontec

eNGSistemi utilizza come interfaccia JTAG per il download del codice e per il debug-in-circuit il dispositivo JTAGkey-Tiny di Amontec, con connettore ARM Multi-ICE 20-pin. Il circuito è autoalimentato dalla porta USB, con corrente assorbita inferiore a 85mA; la compatibilità dei livelli di tensione è compresa tra 2.8V e 5.0V. La velocità di download del codice è circa 130 kBytes/s (OpenOCD con DCC), con massima frequenza JTAG di 6MHz, con piena compatibilità Open-On-Chip-Debugger (OpenOCD).
ECLIPSE - open source IDE

Eclipse è una comunità open-source i cui progetti sono focalizzati sulla realizzazione di una piattaforma di sviluppo aperta formata da infrastrutture, strumenti e librerie per sviluppare, rilasciare e gestire software durante l'intero ciclo di vita. La piattaforma Eclipse è supportata da un esteso e dinamico ecosistema formato dai principali rivenditori di tecnologie, società start-up innovative, università, centri di ricerca e sviluppatori individuali.
eNGSistemi utilizza il plug-in CDT, uno strumento IDE (Integrated Development Environment) di livello professionale per lo sviluppo C/C++, nato da un progetto open-source e largamente utilizzato nel mondo degli sviluppatori di software per applicazioni embedded, specialmente per microcontrollori della famiglia ARM mediante il compilatore GCC.
Bus I²C

Il bus I²C (registrato dalla NXP) rappresenta per eNGSistemi un cavallo di battaglia; tale tecnologia è stata utilizzata in svariate applicazioni, fornendo un efficace e flessibile canale di comunicazione tra i vari dispositivi sviluppati. La tendenza delle maggiori case produttrici di integrati ad utilizzare sempre più spesso dispositivi basati su tale bus, lo rende quasi uno standard de facto. eNGSistemi ha sviluppato un software proprietario per la gestione del bus I²C anche sui microcontrollori privi di hardware dedicato (bit banging). Seguono il collegamento al sito NXP, per la versione corrente dello standard, ed il collegamento alla traduzione parziale delle specifiche del bus, ad opera del progettista Gabriele Di Nucci.
Traduzione (parziale) delle specifiche
Standard HD44780 per controllo LCD
Il controllo tipo HD44780 di Hitachi è diventato nel tempo uno standard de facto per la maggior parte dei display a cristalli liquidi esistenti sul mercato. Lo standard prevede un interfacciamento con 3 linee di comando e 4 o 8 linee dati, con svariate impostazioni di visualizzazione. Funziona con LCD a 8, 16, 32, 40 caratteri su una o più righe, con diverse altezze di font e possibilità di effetti visivi. eNGSistemi ha sviluppato un dispositivo proprietario per rendere di tipo I²C il collegamento verso il display, impegnando in tal modo solo due linee di I/O. Per maggiori dettagli vedi la pagina dei progetti.
Nota applicativa di Duane Bala sullo standard HD44780 (fondamentale)
Migrazione da 8 a 32 bit: un percorso evolutivo
Sin dal 2001 eNGSistemi ha utilizzato tecnologie all'avanguardia,
basate su µC a 8 bit. Come piattaforma di riferimento fu scelta la famiglia HC(S)08 di Motorola (in seguito divenuta Freescale),
spaziando dai semplici ed economici MC68HC908QT (all'epoca Nitron) e MC68HC908QY, fino ai più avanzati MC908QB e HCS08QG.
La tecnologia Flash di questi componenti ha permesso l'uso della modalità ISP (In-System-Programming), nei primi modelli con il
semplice MON08 ed in seguito con il più moderno ed efficiente BDM.
Il primo hardware di sviluppo adottato è stato la DemoBoard per QT4, passando poi in seguito a schede autoprodotte
(come il sistema EvaNitron).
Per quanto riguarda il software, eNGSistemi si è basata sulla piattaforma IDE
CodeWarrior di Metrowerks con ProcessorExpert,
in grado di generare automaticamente il codice.
La maggior parte dei dispositivi da noi realizzati in passato sono basati su tali scelte tecnologiche.
Poi, nel 2006, durante l'abituale attività di aggiornamento professionale, abbiamo raccolto numerosi segnali provenienti dalla
comunità degli sviluppatori embedded. La tendenza era abbastanza chiara: il vasto uso di microcontrollori a 32 bit,
spinto dal mercato dei sistemi mobile, stava abbassando sempre più il costo di questi
dispositivi, avvicinandolo a quello di un 8 bit.
Determinanti sono stati gli articoli apparsi su EDN Europe nel dicembre 2005
ARM targets automotive and industrial dominance
e nel febbraio 2006
Low-cost ARM kits ease 32-bit migration
(entrambi di David Marsh, Contributing Technical Editor).
ENGSistemi ha analizzato a lungo i pro e i contro di una migrazione verso micro a 32 bit,
valutando sia le soluzioni basate su architettura proprietaria sia quelle basate su core ARM; dopo alcuni giorni di dibattito la scelta
è caduta su quest'ultimo, particolare sul processore ARM7TDMI-S.
...and the winner is: LPC2103 by NXP
La scelta della famiglia di processori ha ristretto il campo di ricerca del microcontrollore più adatto ai nostri scopi, ma rimanevano comunque numerose alternative a disposizione. Abbiamo quindi avviato una fase di confronto tra i prodotti presenti sul mercato, prendendo in considerazione parametri quali i tagli di memorie Flash e RAM, il tipo di case, le periferiche integrate, i tool di sviluppo hardware e software ed il costo per unità di prodotto. Una volta eliminati i prodotti con case e costi proibitivi sono rimasti in lizza pochi candidati con spiccate caratteristiche di semplicità di utilizzo e basso costo, in alcuni casi inferiore a quello di un microcontrollore a 8 bit. Anche in questo frangente una lettura (The Insider's Guide To The Philips ARM7-Based Microcontrollers) è stata determinante per la scelta finale: il micro LPC2103, appartenente alla famiglia LPC21xx di Philips (oggi NXP), le cui caratteristiche principali sono riportate all'inizio di questa pagina.
Continua...