IT en computers

In deze sectie vindt u van alles over IT en computers, zoals

  • Programmeren
  • Interessante computerhardware
  • Linux
  • Huisautomatisering
  • Websiteontwikkeling

Een microcontroller is een geïntegreerde schakeling waarbij op één chip minimaal een microprocessor, geheugen en I/O is gecombineerd. Dit artikel bespreekt verschillende microcontrollertypen.

Omdat bij microcontrollers alle subsystemen van een simpel computersysteem op één chip zitten, zijn ze zeer geschikt voor de besturing van allerlei apparaten, waarbij functionaliteit van een zekere complexiteit is vereist. In het gemiddelde huishouden zijn allerlei apparaten te vinden die een microcontroller bevatten, zoals:

  • televisietoestel
  • hifi-apparaten
  • vast of draadloos telefoontoestel
  • cv-ketel
  • wasmachine
  • microgolfoven

Computers, smartphones en tablets staan niet in deze lijst; omdat deze een snelle processor en relatief veel geheugen nodig hebben zijn deze eigenlijk altijd uitgevoerd met aparte microprocessor- en geheugenchips.

Er zijn verschillende families van microcontrollers, met hun voordelen en nadelen. Hieronder bespreek ik die wat mij betreft actueel zijn.

Intel 8051-afgeleiden

De 8051 werd in 1980 door Intel op de markt gebracht. Afgeleiden ervan worden nog steeds veel toegepast. Ik heb er zelf eigenlijk weinig mee. In de negentiger jaren ontwikkelde ik veel met de Mitsubishi MELPS-7700 16-bit microcontrollers. Die waren in Europa minder bekend en zijn, anders dan 8051-varianten, al lang niet meer te krijgen, maar ze waren behoorlijk superieur wat betreft prestaties, stroomgebruik en ingebouwde peripherals.

Microchip PIC

Eigenlijk zijn de 8-bit PIC-microcontrollers van Microchip ooit ontwikkeld als programmeerbare componenten die net wat complexere dingen konden doen dan simpele logica-IC's. Naar mijn idee is de insteek van Microchip eigenlijk altijd geweest: microcontrollers aanbieden die geschikt zijn voor een bepaalde taak, maar ook niet veel meer (en dan ook niet meer kosten dan nodig). Gezien de brede toepassing van microcontrollers vertaalt dat zich in een enorm assortiment van modellen. Het is soms best lastig om daar een keuze uit te maken. Bij het programmeren van deze microcontrollers moet je nogal eens rekening houden met eigenaardigheden in de implementatie van de hardware. Microchip levert toegankelijke tools (IDE, compilers, programmers/debuggers). Er zijn debuggingmogelijkheden, maar die zijn wel beperkt. Voor relatief simpele toepassingen, waar de kosten van belang zijn, komen deze microcontrollers vaak in aanmerking.

Atmel Atmega

De aantrekkelijkheid van de 8-bit Atmega328 en Atmega2560 zit hem er vooral in dat deze microcontrollers worden toegepast in Arduino. Door de versimpelde manier in de Arduino-IDE om in C++ te programmeren, en de vele beschikbare softwarebibliotheken en voorbeeldprogramma's, kun je relatief snel een embedded applicatie in elkaar zetten. Het aantal modellen is maar beperkt en je komt al gauw wat duurder uit aan componentkosten. Daarom zet ik ze vooral in voor elektronica die op kleine schaal wordt geproduceerd en die niet al te complexe functionaliteit nodig heeft, zoals programmeer-en-testjigs.

ARM Cortex-M

32-bit microcontrollers gebaseerd op ARM Cortex-M zijn vooral interessant voor toepassingen waarbij grotere complexiteit en meer rekenkracht is vereist. Deze microcontrollers en de beschikbare tools (IDE's, compilers en debuggers) zijn een stuk krachtiger dan de Microchip PICs en Atmel Atmega's. Een en ander is meer gericht op professionele ontwikkelaars en wat minder populair bij hobbyisten. Bij één project waarin ik een ARM Cortex-M heb toegepast ging het vooral om de grote hoeveelheid on-chip flash ROM, bij een ander project was vooral de rekenkracht en de mogelijkheid om met extern SD-RAM te interfacen belangrijk.