Hardware is tegenwoordig maar de helft van een oplossing. De andere helft is software om de hardware te besturen, ook wel embedded software genoemd. IDcircuits heeft ruime ervaring in het programmeren van microcontrollers om de hardware aan te sturen.
In het vorige millennium was de 8051 architectuur veelgebruikt. Zowel in C als in assembler zijn hiermee diverse toepassingen gerealiseerd zoals een tekst over video generator (“ondertiteling”) en een optische lengtemeter tijdens de productie van glasvezeldoek. Die laatste toepassing werd eerst in C geschreven en later werd het sensoralgoritme herschreven in assembler met een ca 10 x snelheidswinst.
Later werd de MSP430 serie van TI een werkpaard. Een mooie, ultra low power processorserie. Ook hier werd zowel in C als in assembler geprogrammeerd. De 16-bit processor leent zich prima om in assembler te programmeren. Een hele fraaie toepassing was in een transponder die voor tijdregistratie van sporters gebruikt werd. De oplossing was zeer goedkoop en het stroomverbruik ultra laag, ook tijdens het zenden. De mogelijkheden van de processor werden ten volle benut. Inbegrepen was een draadloze (via een near field inductieve koppeling) bootloader die configuratie en firmware updates mogelijk maakte. De hele draadloze bootloader in 1KB!
De laatste jaren zijn ARM processoren populair. Die zijn zo krachtig dat programmeren in C in het algemeen snel genoeg is. Ervaring opgedaan met producten van Nordic (nRF51/52 serie), NXP (LPC1769 en K32W061 series). Die K32W061 heeft evenals de nRF serie een 2.4 GHz radio aan boord. Samen met de fabrikant diverse “eigenaardigheden” proberen op te lossen, soms lukte dat , soms niet. Als je de K32W061 overweegt in je eigen toepassing, neem even contact met IDcircuits op! Er lopen wereldwijd honderdduizenden (miljoenen?) koeien rond met een sensor aan het oor die alle beweging en de temperatuur registreert. Daaruit kan o.a. de gezondheidsstatus en de vruchtbaarheid van de koe worden bepaald. IDcircuits leverde een bijdrage aan deze embedded software. Overigens werkend onder het FreeRTOS operating system.
Verder is er ook gewerkt met een FPGA softcore processor, de 32-bit Microblaze van Xilinx. Debuggen van de code was geen feestje als er heel veel interrupts tussendoor komen. Een standalone microcontroller is een prettiger oplossing als de toepassing het mogelijk maakt. Ook hier in C geprogrammeerd. Het voordeel van een FPGA is wel dat je sommige kritische delen in de FPGA kunt programmeren ipv in software uit te moeten voeren. Denk aan filtering, FFT berekeningen of binnenhalen van ADC data en dan sample rate conversion uitvoeren. FPGA gebaseerde oplossingen zijn niet low power, wel super krachtig en flexibel.
Ook populair momenteel zijn Raspberry Pi en ESP32 modules. De Pi heeft als grote voordeel dat het een complete Linux computer is, maar als nadeel dat het relatief duur is en niet echt geschikt voor low power toepassingen. Ook de EPS32 is niet geoptimaliseerd voor ultra low power, maar wel een heel stuk zuiniger dan de Pi. Beiden hebben Wifi en Bluetooth aan boord, dat maakt het leven een stuk prettiger!
Kortom, neem contact op met IDcircuits als u behoefte heeft aan ondersteuning op het gebied van embedded software!
