8-bit-maatje voor de Raspberry Pi - energiebesparing gemakkelijk gemaakt
op

Single-board computers met Unix-mogelijkheden vergemakkelijken de ontwikkeling van complexe besturingssystemen. Vooral in scenario’s met hoge eisen aan GUI en gegevensverwerking zijn ze superieur aan microcontrollers (MCU’s). Helaas laten het stroomverbruik en de real-time mogelijkheden nog ruimte voor verbetering. Maar waarom niet het beste van beide werelden combineren? Als u een kant-en-klare single-board computer voor een lager energieverbruik wilt modificeren, dan kunt u dat bereiken met een extra microcontroller. Als voorbeeld willen we een systeem implementeren dat zich houdt aan geprogrammeerde stilstandtijden en een ‘alarmstart’ uitvoert als reactie op een specifieke externe gebeurtenis.
Het concept van de schakeling
In principe werkt de schakeling zoals weergegeven in het stroomdiagram van figuur 1. De spanningsregelaar die fungeert als hoofdvoeding voor de procescomputer (meestal een schakelende regelaar) wordt via diens Enable-ingang (EN) aangestuurd door de microcontroller.

De MCU heeft uiteraard een aparte voeding nodig die onafhankelijk is van de EN-ingang; vanwege de geringe energiebehoefte is een lineaire regelaar hier de meest economische oplossing. In het algemeen maakt het helemaal niet uit welke onderdelen worden ingezet; de auteur gebruikt graag moderne PIC16F-afgeleiden van Microchip vanwege goede ervaringen.
Figuur 2 toont de subschakeling die de PIC informeert wanneer de SBC (OPI = Orange Pi) wordt gevoed door de externe schakelende regelaar (EXT). D1a, R9 en D7a implementeren een min of meer ‘klassieke’ verzwakker, die ingangsspanningen in een bereik tot 20 V verlaagt tot een waarde die door de ingangen van de procescomputer en microcontroller wordt verdragen.

Het opdelen van de serieweerstand in de twee deelweerstanden R7 en R9 is nodig omdat single board computers soms een laagohmige belasting vormen of een restspanning hebben als ze worden uitgeschakeld – zonder de weerstand zou de externe-microcontroller (aangesloten via de PIC-ingang) vreemde of ongeldige waarden kunnen zien.
R7 is ook een extra beveiligingselement – de ingangen van de procescomputer zijn via beschermingsdiodes verbonden met de voedingsspanning en massa. Wanneer er zeer hoge spanningsniveaus optreden, zorgt R7 ervoor dat de stroom naar deze diodes beperkt wordt en de procescomputer niet beschadigd raakt; C13 en R8 zorgen voor een beetje extra ontdendering.
Opgemerkt moet worden dat de hier getoonde schakeling met EXT-ingang ‘rechtstreeks’ is aangesloten op de elektrische installatie van verschillende schoolbussen. Aangezien er nu enkele duizenden van dergelijke systemen op de markt zijn zonder defecten, mag de goede werking als bewezen worden beschouwd.
De rol van diode D1a als beveiliging tegen omgekeerde polariteit is ook nuttig – geloof de auteur, die ook in de logistieke sector werkt, wanneer hij zegt dat het verkeerd-om aansluiten van accu’s en dergelijke een klassieke ‘tijdverdrijf’ van een monteur is.
De software is de sleutel
Communicatie via I2C verloopt over het algemeen probleemloos (maar vergeet de noodzakelijke pull up-weerstanden niet). Het ‘geheim’ van dit systeem zit in de software. De PIC implementeert een soort toestandsmachine die is gebaseerd op de toestanden in figuur 3.

De implementatie van het uitschakelproces is van bijzonder belang. Unix- en soortgelijke besturingssystemen hebben de neiging om niet erg vriendelijk te reageren op ‘bot’ uitschakelen. Een handige en praktische manier om het probleem op te lossen is het implementeren van een countdown-timer: de SBC activeert deze counter en start dan het uitschakelen van het besturingssysteem. Nadat de (ruim bemeten) tijd is verstreken, is de procescomputer ‘inert’ en kan hij worden losgekoppeld van de voeding.
Natuurlijk kan de PIC ook andere taken uitvoeren. Naast het opslaan van serienummers en andere informatie (om eventuele manipulatie te bemoeilijken) is het bijvoorbeeld ook mogelijk om basis-besturingstaken op de PIC uit te voeren. Natuurlijk zijn er ook complexere implementaties mogelijk: een complexe MSR-taak zou bijvoorbeeld een 32-bit MCU redelijk geschikt maken als secundaire controller.
Praktijkervaring
Trackers die zijn gebaseerd op het hier getoonde circuitconcept worden nu door tienduizenden klanten van de auteur gebruikt, wat de praktische waarde van het ontwerp aantoont. In plaats van een stand-by-stroomverbruik van ongeveer 200 mA kan het systeem nu volstaan met slechts een paar milliampère. AN4121 van de auteur, gepubliceerd door Microchip, is hier beschikbaar en geeft meer informatie over dit onderwerp.
Opmerking van de redacteur: Dit artikel (240210) verschijnt in de bonuseditie van jan/feb 2025
Discussie (0 opmerking(en))