Klik hier voor de Engelse versie van de broncode.

Versnel prototyping en code-updates met een moderne in-circuit debugger

Door Kenton Williston

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Ontwikkelaars staan onder druk om producten steeds sneller te leveren, ondanks dat embedded systems complexer worden. ‘In-circuit debuggers’ (ICD’s) spelen hierbij een cruciale rol, omdat ze snel bugs identificeren en oplossen. Traditionele debuggers zijn echter omvangrijk, inflexibel en moeilijk te gebruiken, waardoor ze ongeschikt zijn voor de hedendaagse ontwikkelvereisten.

Ontwikkelaars kunnen in plaats daarvan kiezen voor een moderne oplossing die compact is, uitgebreide functionaliteit biedt en beschikt over toolsets die meer ontwikkelvriendelijk zijn. Ze moeten vooral letten op ondersteuning voor snelle ontwikkeling en productupdates in het lab en in het veld.

Dit artikel beschrijft kort de rol en vereisten van ICD’s. Vervolgens wordt een oplossing van Microchip Technology geïntroduceerd als voorbeeld van waar ontwikkelaars op moeten letten in een moderne ICD. Ook komen compatibele ontwikkeltools, tips en een korte handleiding voor het gebruik van een ICD in productieomgevingen aan de orde.

Voordelen en uitdagingen van ICD’s

Een ICD is een tool die verbinding maakt met een processor die in de doelhardware is geïnstalleerd. Deze verbinding biedt real-time toegang tot de processor terwijl het systeem in bedrijf is, waardoor taken zoals stapsgewijze uitvoering en geheugeninspectie mogelijk zijn. Een ‘in-circuit programmer’ (ICP) bouwt voort op deze mogelijkheden door code en gegevens in het processorgeheugen te schrijven. Samen zijn deze functies cruciaal voor het embedded ontwikkelproces.

Traditionele debuggers vereisen echter gespecialiseerde vaardigheden en ontwikkelomgevingen die hun bruikbaarheid kunnen beperken. Deze debuggers kunnen ook beperkingen hebben bij het oplossen van problemen met productiehardware. Daarnaast vereisen ze vaak JTAG-verbindingen die onpraktisch zijn om te implementeren op productiehardware vanwege de kosten en ruimtebeperkingen. Bovendien kan de gespecialiseerde software en hardware die nodig zijn voor het debuggen lastig zijn om mee te nemen naar veldomgevingen.

De PG164150 MPLAB PICkit 5 ICD/ICP van Microchip Technology ondervangt deze beperkingen. Hij kan onder andere worden gebruikt via een smartphoneapplicatie met BLE-connectiviteit (Bluetooth Low Energy). Hiermee kunnen technici programma-images in het veld implementeren, waardoor de mogelijkheden voor bugfixes en software-updates aanzienlijk worden uitgebreid.

Belangrijkste kenmerken van de MPLAB PICkit 5

De MPLAB PICkit 5 is een veelzijdig apparaat dat bijna alle microcontroller units (MCU’s) en digital signal controllers (DSC’s) van Microchip Technology ondersteunt, inclusief PIC, dsPIC, AVR en SAM (op Arm® Cortex® gebaseerde) apparaten. Zoals afbeelding 1 laat zien, bevat het een microSDHC-kaartsleuf waarmee de tool meerdere afbeeldingen van het apparaatgeheugen kan opslaan.

Afbeelding van overzicht van de Microchip MPLAB PICkit 5Afbeelding 1: Een overzicht van de MPLAB PICkit 5 met de belangrijkste functies. (Bron afbeelding: Microchip Technology)

De MPLAB PICkit 5 maakt verbinding met de host via een USB Type-C-kabel en kan worden gevoed via deze kabel of door het doel. De debugger bevat ook BLE-connectiviteit, waardoor gebruikers de tool vanaf een smartphone kunnen gebruiken.

De debugger heeft een 8-pins programmeerconnector aan de doelzijde die verschillende interfaces ondersteunt. Deze omvatten 4-draads JTAG, Serial Wire Debug (SWD), ethernet, achterwaarts compatibele 2-draads JTAG en in-circuit serieel programmeren (ICSP). Microchip Technology biedt de AC102015-adapterkaart (afbeelding 2) die al deze interfaces ondersteunt.

Afbeelding van Microchip Technology AC102015-adapterkaartAfbeelding 2: De AC102015-adapterkaart is geschikt voor een groot aantal interfaces. (Bron afbeelding: Microchip Technology)

De debugger ondersteunt voedingsspanningen van 1,2 V tot 5,0 V voor low-voltage program mode entry en van 1,8 V tot 5,0 V voor high-voltage program mode entry. Hij kan ook rechtstreeks een stroom van 150 milliampère (mA) aan het doelapparaat leveren.

Extra functies zijn onder andere een virtuele communicatiepoort (VCOM), meerdere hardware- en softwarebreekpunten, een stopwatch voor timingbewerkingen en de mogelijkheid om broncodebestanden direct te debuggen. De debugger wordt aangedreven door een ATSAME70N2 MCU van 300 megahertz (MHz) met een real-time besturingssysteem (RTOS), waardoor er geen vertraging optreedt bij het downloaden van firmware wanneer er tussen apparaten wordt overgeschakeld. Dankzij deze ingebouwde intelligentie ondersteunt de debugger ook nieuwe doelapparaten en functies.

Belangrijkste verbeteringen ten opzichte van MPLAB PICkit 4 en MPLAB PICkit 3

De MPLAB PICkit-serie wordt continu verbeterd, waarbij flexibiliteit, snelheid en apparaatcompatibiliteit bij elke iteratie centraal staan. Tabel 1 geeft een overzicht van de belangrijkste verbeteringen in de MPLAB PICkit 5 in vergelijking met zijn voorgangers.

Kenmerk MPLAB PICkit 3 MPLAB PICkit 4 MPLAB PICkit 5
Ondersteunde apparaten PIC PIC, dsPIC Alle Microchip-architecturen
Bekabelde connectiviteit USB-mini Micro-USB USB Type-C
Draadloze connectiviteit Nee Nee Bluetooth Lage Energie (BLE)
Programmeren op afstand Nee Nee Programmer-To-Go (PTG)
Programmering in het veld Nee Beperkt Meerdere programma-images
Vormfactor Compact Beperkt Meerdere programma-images
Snelheid Matig Snel Sneller

Tabel 1: De MPLAB PICkit 5 biedt veel voordelen ten opzichte van zijn voorgangers. (Bron tabel: Kenton Williston)

Door de MPLAB PICkit 5 ondersteunde ontwikkelomgevingen

De MPLAB PICkit 5 ondersteunt ontwikkelomgevingen, waaronder:

Vooral de smartphone-app (afbeelding 3) is opmerkelijk. Hiermee kunnen gebruikers de doelhardware op afstand programmeren via een eenvoudig proces:

  • De code wordt ontwikkeld met MPLAB X en gecompileerd in een .ptg hex-bestand dat code, gegevens en configuratie-informatie bevat.
  • Het hex-bestand wordt gedownload naar een microSDHC-kaart die in de MPLAB PICkit 5 is geplaatst.
  • De microSDHC-kaart kan meerdere hex-bestanden bevatten, wat gebruikers flexibiliteit geeft bij het programmeren van doelapparaten.
  • De MPLAB PICkit 5 wordt aangesloten op de doelhardware.
  • De gebruiker selecteert met de smartphone-app een opgeslagen programma-image op de geheugenkaart om het doel te programmeren.

Afbeelding van MPLAB PTG smartphone-app van Microchip Technology (klik om te vergroten)Afbeelding 3: De MPLAB PTG smartphone-app biedt een eenvoudige interface. (Bron afbeelding: Microchip Technology)

De MPLAB PTG is vooral handig in afgelegen of mobiele omgevingen waar extra apparatuur onpraktisch is. Hij kan apparaten direct in het veld programmeren zonder computer, waardoor de MPLAB PICkit 5 een standalone programmeertool wordt.

Voor ontwikkelaars maakt dit snelle firmware-updates op locatie mogelijk, waardoor ontwikkelcycli worden versneld en de time-to-market wordt verkort. Technici kunnen vervolgens MPLAB PTG gebruiken om andere veldapparaten bij te werken, waardoor productupgrades snel kunnen worden uitgerold. De tool is ook waardevol voor noodscenario’s waarbij snelle herprogrammering nodig is om de functionaliteit van een apparaat te herstellen.

Aan de slag met de MPLAB PICkit 5

Het gebruik van de MPLAB PICkit 5 met de MPLAB X IDE is een proces dat iedere embedded developer zou moeten kennen. De fundamentele stappen zijn als volgt:

  • Installatie: De laatste versie van de MPLAB X IDE moet geïnstalleerd zijn. De MPLAB PICkit 5 wordt doorgaans ondersteund zonder extra drivers, maar ontwikkelaars moeten de website van Microchip Technology raadplegen voor de meest actuele informatie.
  • Projectinstelling: PICkit 5 kan geselecteerd worden als de hardware-tool voor programmeren en debuggen bij het maken van een nieuw project. Deze selectie wordt gemaakt in de projecteigenschappen onder de categorie ‘Hardware Tool’.
  • Programmeren: Nadat een project is geconfigureerd en de code is voorbereid, kan de MCU worden geprogrammeerd door de knop ‘Make and Program Device’ (Apparaat maken en programmeren) te activeren.

De MPLAB IPE biedt een eenvoudiger proces voor technici in een productieomgeving. De belangrijkste stappen voor het gebruik van deze tool zijn:

  • Configuratie: De MPLAB PICkit 5 moet worden geselecteerd uit de beschikbare tools. Vervolgens moet het doelapparaat (MCU-model) en het hex-bestand dat bedoeld is voor programmeren worden geselecteerd.
  • Programmeren: Nadat het apparaat en het hex-bestand zijn gekozen, kan de MCU worden geprogrammeerd door op de knop ‘Program’ (Programmeren) te drukken. De MPLAB IPE zal zo nodig het doelapparaat wissen, programmeren en de programmering verifiëren.

In beide omgevingen zullen gebruikers waarschijnlijk technische problemen ondervinden. Vaak worden deze problemen veroorzaakt door eenvoudige problemen die als volgt kunnen worden aangepakt:

  • Zorg voor goede verbindingen: De ontwikkelaar moet de verbindingen met de host en het doelapparaat controleren. Bij gebruik van een ICSP-interface moet aandacht besteed worden aan de oriëntatie van de connector.
  • Controleer de stroomvoorziening: De voedingsinstellingen moeten worden geverifieerd. Sommige apparaten kunnen rechtstreeks worden gevoed door de MPLAB PICkit 5, terwijl andere externe voeding nodig hebben.
  • Werk de firmware bij: Firmware-updates voor de MPLAB PICkit 5 worden periodiek uitgebracht door Microchip Technology. Ontwikkelaars moeten zorgen dat de nieuwste versie is geïnstalleerd.

Ontwikkelkits die compatibel zijn met de MPLAB PICkit 5

De MPLAB PICkit 5 is compatibel met diverse ontwikkelkits die ontworpen zijn voor leren, prototyping en het ontwikkelen van applicaties. Zo zijn Curiosity Low Pin Count (LPC) ontwikkelingskaarten zoals de DM164137, die 8, 14 of 20 pinnen ondersteunen, ontworpen om te experimenteren met PIC MCU’s. Deze kaarten bevatten vaak een geïntegreerde programmer en debugger, maar een externe tool zoals de MPLAB PICkit 5 kan extra mogelijkheden bieden. Ontwikkelaars moeten controleren of de onboard programmer kan worden losgekoppeld via een jumperoptie.

Xpress-evaluatiekaarten zoals de DM164140 voor de PIC16F18855 zijn een ander voorbeeld. Deze printplaten zijn ontworpen voor snelle prototyping met specifieke PIC MCU’s. Ze worden geleverd met een ingebouwde programmer en debugger, maar ontwikkelaars kunnen de MPLAB PICkit 5 gebruiken voor consistentie tussen projecten of voor functies die specifiek zijn voor deze debugger.

Microchip Technology biedt ook starterkits, zoals de DM320105 PIC32MX XLP-evaluatiekaart, die de hardware en software bieden die nodig zijn om snel te kunnen beginnen met ontwikkelen. De MPLAB PICkit 5 is handig voor het programmeren en debuggen van de MCU’s in deze kits en biedt een naadloze ervaring.

Conclusie

Moderne ICD’s kunnen ontwikkelaars helpen om ontwikkelingscycli te versnellen en productupdates in het veld uit te rollen. De MPLAB PICkit 5 ondersteunt een breder scala aan doelapparaten, aansluitmogelijkheden en softwaretools dan eerdere debuggers, waardoor deze een hoge mate van flexibiliteit en bruikbaarheid biedt. Vooral de smartphone-app is opmerkelijk, omdat deze het gebruik van de MPLAB PICkit 5 mogelijk maakt in locaties die moeilijk toegankelijk zijn met traditionele debuggers.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Kenton Williston

Kenton Williston

Kenton Williston received his B.S. in Electrical Engineering in 2000 and started his career as processor benchmark analyst. Since then he worked as an editor with the EE Times group and helped launch and lead multiple publications and conferences serving the electronics industry.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey