Jag hänvisar till PIC-mikrokontroller, speciellt 16f- och 18f-serien - kan GPIO användas på det här sättet?
Om ja, hur?
Jag hänvisar till PIC-mikrokontroller, speciellt 16f- och 18f-serien - kan GPIO användas på det här sättet?
Om ja, hur?
Äldre PIC: er litade på programmeraren för att ge tidpunkten för programmering av Flash. Jag misstänker att RPi skulle kunna klara dessa tidsinställningar. Den största svårigheten i så fall skulle vara nivåomvandlingen från 3.3V till 5V för PIC
Nyare PIC: er gör programmeringstimingen internt och en del kan programmeras till 3,3V. De borde kunna anslutas direkt till några IO-stift.
Nu har du läst programmeringsspecifikationen för den specifika PIC-familjen och räknar ut hur du kan manipulera GPIO: erna för att få programmet där.
Det blir ganska intressant om du får något att fungera.
Stift 8 och 9 kan användas som UART-stift, så det borde vara möjligt att styra en programmerare över dessa stift.
Programvarusmässigt finns det ett programmeringsprogram med öppen källkod för linux som heter odyssey. Den används med programmerare anslutna till en parallellport. Odyssey kommunicerar genom bitbanging, så det bör vara möjligt att anpassa det för att skicka data till GPIO istället för en parallellport. Odyssey stöder många av 16f och 18f PIC: erna och kan läsa flera format av HEX-filer.
Ett annat öppet projekt för bildprogrammering är usbpicprog. Den här kan också vara värt en titt, men det är mer komplicerat eftersom det är en programmerare ansluten till USB-porten, byggd kring en pic18f2550. Denna programmerare har en fantastisk funktion: den genererar + 12V programmeringsspänning med en laddningspump, så den behöver ingen annan strömkälla än + 5V över USB.
Se ett exempel ( via) och ett enligt uppgift mer avancerat ( via) som beskriver hur man användning av Raspberry Pi för att programmera PIC: er via GPIO.
Observera att dessa kretsar kräver en extern 12V strömkälla och några ytterligare komponenter (spänningsregulator, transistorer, kondensatorer, motstånd och några lysdioder i den avancerade ).