Picpgm Quellcode?

Mar 14, 2020 5 Replies

First reply

Wolfgang Mahringer

Hi Josef, Ist jetzt vielleicht nicht direkt hilfreich, aber warum nimmst Du nicht einen PICKIT3 Programmer? Der kostet nicht viel, es gibt eine Standalone-Programmer-Software für Windows (Linux weiß ich jetzt nicht) und programmiert /alle/ PICs, auch z.B. PIC24FJ256GB206 mit…

Read the full reply

Mooi'n,



Ich habe vor, mich mal wieder mit den PIC24 zu beschäftigen um meinen digitalen Stromzähler auszulesen. Dazu habe ich bei früheren Spielereien schon mal "picpgm" eingesetzt. In meinem Hinterkopf habe ich, daß ich damit Probleme auf einem Raspberry Pi hatte und habe mir dazu seinerzeit den Quellcode irgendwo her besorgt und entsprechend modifiziert, u.a.



1) eine Verzögerung nach dem Export eines GPIO Pins und dem Setzen der Richtung und des Initialwerts eingefügt und
2) den GPIO Pin NICHT zu exportieren und auch am Ende nicht zu unexport-ieren, wenn er bereits exportiert war.

Ich habe Christian Stadler bereits angeschrieben, bislang aber noch keine Antwort bekommen und weil jetzt das Wochenede angefangen hat, wollte ich mich mal damit beschäftigen.



TL;DR: Weiß jemand, ob (und wenn ja wo) man sich den Quellcode für picpgm herunterladen kann?



Danke im Voraus,



Josef


Am 14.03.2020 um 11:33 schrieb Josef Moellers:

Hi Josef,

Ist jetzt vielleicht nicht direkt hilfreich, aber warum nimmst Du nicht einen PICKIT3 Programmer? Der kostet nicht viel, es gibt eine Standalone-Programmer-Software für Windows (Linux weiß ich jetzt nicht) und programmiert /alle/ PICs, auch z.B. PIC24FJ256GB206 mit denen ich kürzlich zu tun hatte.

vg, Wolfgang

Ich (schon wieder "Ich ich ich" ... ;-) ) habe hier einige RasPis im Haus, die für zeitkritische Aufgaben einen externen Mikrocontroller (ATMega168) zur Seite gestellt bekommen haben. Konkret einer, der die Daten unseres digitalen "Stromzählers" verarbeiten soll. Der Zähler hat eine bidirektionale IR-Schnittstelle und sendet für jede Wh einen Impuls, kann aber über ein serielles Kommando auch den aktuellen Zählerstand übertragen. Da der ATMega168 dort nur über *einen* UART verfügt, möchte ich ihn durch einen PIC24 ersetzen, auch weil der über PPS verfügt, d.h. wenn ich den aktuellen Verbrauch messen will, konfigurieren ich Sende- und Empfangs-Pins als Parallel-Port-Pins und lasse vom Empfangs-Pin einen Interrupt auslösen. Das könnte der ATMega168 übrigens auch, wegen des fehlenden zweiten UARTs aber doch wieder nicht. Wenn ich nun den aktuellen Stand haben möchte, konfiguriere ich die UART-Pins darauf, sende die Start-Sequenz und lese das Datenpaket ein, wonach ich wieder auf Parallel-Port-Pin umschalte. Klar, geht auch alles über soft-UART, ich wollt's jetzt aber mal mit dem PIC24 probieren.

Um aber den PIC24 vor Ort um zu programmieren (das mache ich mit dem ATMega168 auch), würde ich eben die für's Flash-en benötigten Pins an GPIOs anschließen und muß dann nicht für jede Änderung den PIC24 aus der Schaltung holen. NB Es gibt zwar keinen PIC-Compiler für den RasPi, ich behelfe mich aber mit einem http-Programm, dem ich über einen POST das zu flash-ende Image hochlade, wonach es automatisch den Flash-Vorgang durchführt.

Und ein kleiner Zusatzgrund: ich finde halt, daß picpgm an der Stelle ein Problem hat, das ich lösen kann und möchte, so ganz im "Open Source" Stil.

Josef

Hallo Josef,

Du schriebst am Mon, 16 Mar 2020 08:29:18 +0100:

...

ten Pins an

g den PIC24 aus der

n,

ader im

berlebt. Lader-Software gibt's (beinahe) fertig vom Hersteller.

aber

n,

mage

ete

nigstens

die Hardware"...

n Source"

BTW, der - inzwischen alte ("veralterte") - PICKit3 kann auch ohne Verbindung zu einem Computer (einige Typen) "stand alone" programmieren,

-- ----------------------------------------------------------- -----------------------------------------------------------

Mooi'n Sieghard,

Welchen meinst Du jetzt? Den ATMega oder den PIC?

und der erfordert wiederum ICSP, das geht dann nur schneller.

serielle Leitung gehen sollte, denn sowohl die Haupt-Interrupt-Vektor-Tabelle als auch die Alternative IVT liegen

Indirekt-Tabelle mit GOTO-Befehlen an eine definierte Stelle im Programm

ja, denkbar.

Der ATMega168 hat den Aduino-Bootloader 'drauf, das sind Pollin "Entwicklungsboard ATMEL ATmega168PA", "Arduino Mini" Klone, und der

ATMega und es flutscht: togglePin 18; avrdude ... (BTW Ich habe inzwischen auch ATMega88s mit einen Arduino-Bootloader drauf.)

Ich hatte seinerzeit intensiver mit dem microhttpd 'rumgespielt und dabei ist der pgmd als Abfallprodukt 'rausgekommen. Und das "Frontend" gibt es schon: wget -O /dev/null --post-file=PICmonitor.hex http://raspberry3:8080/flash?filename=XXXX.hex

Wie gesagt: der RasPi mit dem ATMega laufen in einem Keller in einer

ein Problem ist: einen Wrapper geschrieben, der das "-gpio_direct"

Josef

Kleines F'Up to self:

Man muß so Spezifikationen GENAU LESEN! Mal steht da "MSB...LSB", mal "LSB...MSB" B-)

Kaum macht man's dann richtig, funktioniert's auch mit dem selbst geschriebenen Programm.

Josef

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required