Projecten

Projecten

PIC18F4550 USB

Omdat seriële en parallelle poorten niet meer op moderne PC’s aanwezig zijn, ben ik in 2012 gestart met de USB-capaciteiten van de PIC18F4550 eens uit te testen.

Er bestonden wel USB-stacks voor de PIC18F4550 waarmee USB snel op te zetten is, meestal geschreven in C. Ik wou echter iets hebben dat:

  • compatible was met gputils/gpasm (assembler)
  • de broncode begrijpbaar was voor mij.

Uiteindelijk ziet USB er voor de eindgebruiker wel zeer eenvoudig uit, maar op de achtergrond vindt er heel wat communicatie plaats tussen het USB randapparaat en de computer. Dit maakt dat het ontwikkelen van USB firmware best wel complex is.

Op het internet had ik interessante firmware gevonden die in assembler geschreven was, echter als ik ze probeerde te assembleren met gpasm, kreeg ik veel foutmeldingen. Het probleem was dat de macro’s geschreven waren voor mpasm van microchip en niet te gebruiken waren met gpasm. Gelukkige had een zekere Ben Dugan reeds het nodige gedaan om het geheel onder gpasm aan de praat te krijgen.

Hiermee heb ik een aantal experimenten gedaan, zoals het aansluiten van een TC74 I²C temperatuursensor via USB op een PC, zodat de huidige kamertemperatuur gelezen kon worden.

Hieronder zie je het schema:

Schema PIC18F4550 + TC74
Schema PIC18F4550 + TC74

En het geheel dat op een gaatjesprint is opgebouwd:

PIC18F4550+TC74
PIC18F4550+TC74

Wanneer deze schakeling met een PC wordt verbonden kan met behulp van een klein programma (geschreven in C) op de PC de tempertuur binnen gelezen worden.

TC74 CLI
TC74 CLI

De broncode van dit alles kan hier teruggevonden worden.

Door de komst van de Raspberry Pi in dat zelfde jaar (2012) is er met deze experimenten verder niets gebeurd. De Raspberry Pi is een kleine computer die de beschikking heeft over een aantal GPIO’s zodat het aansluiten van externe sensoren zeer gemakkelijk gaat, zonder dat er USB nodig is.

Vermits het onderwerp van deze website PIC®-microcontrollers is, gaan we hier echter niet verder over uitwijden 😉