"The processor delivers outstanding computational performance and exceptional system response to events while meeting the challenges of low dynamic and static power constraints. The processor is highly configurable enabling a wide range of implementations from those requiring memory protection and powerful trace technology to cost sensitive devices requiring minimal area."

Dat is waar de marketingmensen van ARM mee op de proppen zijn gekomen. En het moet ze nagegeven worden; er is inderdaad zelden een een microcontroller architectuur op de markt gebracht die zo flexibel en krachtig is als de Cortex M-series van ARM!

De laatste jaren zijn eigenlijk alle projecten waar een microcontroller bij kwam kijken voorzien van zo'n Cortex-M3 controller. Meer specifiek uit de STM32 serie van ST Microelectronics omdat deze een flexibele en uitgebreide peripherieset hebben, en we daar ook goede projectprijzen voor kunnen krijgen.

Functionaliteit:

STM32 peripheral map

UART/USART:

De serieele poorten worden gebruikt om apparatuur aan te sluiten dat beschikt over RS232 poorten of soortgelijke poorten zoals RS422, RS485, infrarood (IrDA). Bijvoorbeeld GPS ontvangers, GSM / GPRS, PLC's, etc.

I/O:

Met stip de meestgebruikte feature van elke microcontroller; een simpel signaal dat als ingang of als uitgang geprogrammeerd kan worden. Te gebruiken voor allerhande digitale signalen zoals schakelaars, LED indicaties, aansturing van relais en dergelijke.

Timer:

Timers worden ingezet als de tijdsduur of periode van snelle signalen accuraat gemeten moet worden. Daarnaast zijn ze ook nodig voor aansturing van verlichting of motoren met pulsbreedte modulatie. Daarmee kan de energie geregeld worden zonder grote verliezen.

ADC & DAC:

Converters voor analoog naar digitaal en vice versa bieden interfacing met de analoge wereld. Dat is bv nodig voor accurate temperatuur sensors zoals PT100, of voor het meten van voltages.

I²C, SPI:

De I²C bus wordt normaliter alleen binnen een apparaat gebruikt. Op deze 2-draads bus kan een veelheid van verschillende peripherie aangesloten worden dat niet al te snel hoeft te communiceren. Dit wordt bijvoorbeeld gebruikt voor het opslaan van instellingen in niet vluchtig geheugen (EEPROM), temperatuur sensors of extra I/O middels expanders.

Veel MEMS sensors, zoals versnellings-opnemers, gyroscopen, druksensors en sensors voor magnetisch veld kunnen ipv I²C ook gebruik maken van SPI. Hierbij zijn enkele extra verbindingen nodig en eea is minder flexibel, de snelheid van de communicatie kan echter veel hoger liggen.

USB:

De meestgebruikte aansluiting voor computers is ook beschikbaar op veel STM32 controllers. Hiermee kan een gebruikersvriendelijke PC aansluiting gerealiseerd worden. Bij de meeste projecten van White Bream wordt hierbij meestal gebruik gemaakt van de zgn HID mode. Daarbij hoeven er geen drivers geïnstalleerd te worden op de PC, en hoeven er ook geen poorten ingesteld te worden oid.

USB Bootloader:

firmware update tool Binnen de upgrade van het car computer project heeft er uitgebreide ontwikkeling plaatsgevonden voor een bootloader en firmware update tool. Daarmee kan op eenvoudige manier de firmware van een apparaat worden geupdate. De firmware update die door eindgebruikers kan worden uitgevoerd bevat een RSA gecodeerde kopie van de firmware, zodat deze niet door derden kan worden ingelezen of op gekopieerde hardware te gebruiken is. Daarnaast bevat de bootloader een unieke validatie code die bij productie gegenereerd wordt aan de hand van de eveneens unieke chip-ID. Daardoor is geen enkele bootloader identiek, wat het ongewenst kopiëren aanzienlijk moeilijker maakt.

Bij andere projecten hebben we deze bootloader functionaliteit fors uitgebreid;

  • Voorgeinstalleerde image in flash, die dan tijdens de eerste start ge-decrypt wordt,
  • Installatie vanaf een (micro)SD kaart,
  • In combinate met een Electric IMP implementatie installeren we de firmware vanuit flash, alwaar de encrypted image achtergelaten wordt door de IMP module,
  • Download naar een veelheid van nodes via CAN bus,
  • Download via LIN bus.

STM32

ARM Cortex M3