Forum: Mikrocontroller und Digitale Elektronik PIC übers Ethernet per UART (RS485) flashen - Lösungen?


von Michael M. (msteinweber)


Lesenswert?

Servus beinand,

Microchip stellt ja einen wunderbaren UART-Bootloader (AN1310) zur 
Verfügung. Folgendes Szenario:

1.) PIC Nr. 1, hängt am Ethernet und ist mit einem Remoterechner 
verbunden.
2.) PIC Nr. 2 ist per RS485 mit PIC Nr. 1 verbunden und hat den 
Bootloader im Flash.

Nun möchte ich übers Netzwerk PIC Nr. 2 flashen. Gibt's dafür schon 
fertige Lösungen oder muss ich mich selber drum kümmern?

Vielen Dank im Voraus!
Grüße

von Weingut P. (weinbauer)


Lesenswert?

Ohne den PIC jetzt direkt zu kennen, so würde es mich wundern wenn für 
so ein spezielles Problem schon jemand was exakt passendes in der 
Schublade hat.

von micha (Gast)


Lesenswert?

Nimm als "PIC1" einfach eine standard RS232-Ethernet bridge (XPort o.ä.) 
oder schreib(besorg) ein entsprechendes Prog(Pic)+virtl.Com-Treiber(PC)

von fuerst-rene (Gast)


Lesenswert?

Hallo Michael

Ich schließe mich micha an.
Wir verwenden den Bootloader bei uns in der Firma auch.
Allerdings mit nem Klassischem FTDI und Galvanischer trennung.
Am schnellsten geht es wahrscheinlich mit dem XPort.

Grüße

von K. J. (Gast)


Lesenswert?

Der Microchip Bootloader kann RTS/CTS ansteuern also sollte RS485 gehen 
allerdings nur wen ein drive an der Leitung hängt, bei mehreren müsstest 
den anderen dann beibringen das sie sich in der zeit ruig verhalten.

von Michael M. (msteinweber)


Lesenswert?

Servus Jungs,

danke für die vielen Antworten. Das mit dem XPort ist generell eine gute 
Idee. Problem ist nur, dass die vorhandene Infrastruktur beim Kunden 
nicht geändert werden kann und das ganze softwaretechnisch gelöst werden 
muss.

Insofern haben mir Eure Anregungen eh schon weiter geholfen, da ich mich 
jetzt um eine eigene Implementierung kümmere. Falls es jemanden 
interessiert, ich setze es folgendermaßen um:

1.) Der per Ethernet verbundene PIC hat die von Microchip zur Verfügung 
gestellte UART2TCP_BRIDGE aktiviert. (per Ethernet empfangene Daten 
werden per UART weitergeleitet, und umgekehrt).

2.) Der Server veranlasst das am RS485 hängende Device in den Bootloader 
zu wechseln.

3.) Eigene Implementierung des UART-Bootloader-Protokolls schickt nun 
die Daten über Ethernet zum Client, der diese per UART weiterleitet.

Danke für Eure Hilfe!

von fuerst-rene (Gast)


Lesenswert?

Hi Michael falls es zu Problemen kommt, ich habe mir den Code von 
Microchip anpassen lassen, ist zwar keine Ofizielle version aber bei 
meinem 16F1939 funktionierte er nicht, die ANSEL Register waren noch 
aktiv.

von fuerst-rene (Gast)


Lesenswert?

Ach ja habe diesen Beitrag als lesezeichen und schaue einmal am Tag 
rein.

von Michael M. (msteinweber)


Lesenswert?

Servus fuerst-rene, danke für Deinen Hinweis. Inwiefern hast Du den Code 
anpassen lassen? Ich bin gerade dabei, den UART-Bootloader für den 
RS485-Schnittstellenwandler zu modifizieren. Eigentlich wurde der ja für 
RS232 entwickelt, das hat aber nach meinen bisherigen Erkenntnissen nur 
im AutoBaud-Modus eine Relevanz.

Generell funktioniert die Kommunikation mit dem UART-Bootloader bereits 
übers Ethernet. Das Bootloader-Protokoll mit CRC-Checksummenprüfung usw. 
habe ich in C# implementiert, bzw. bin aktuell noch damit beschäftigt. 
Bis jetzt sieht alles gut aus. Nur etwas schwierig für mich, da ich noch 
nie was mit Assembler am Hut hatte ;-)

Wenns Dich interessiert, dann halte ich Dich gerne auf dem laufenden.

von fuerst-rene (Gast)


Lesenswert?

Klar gerne

Der Bootloader ist ein Blindes Programm was du in den Pic zuerst 
reinbrennst.
Danach wird erst mit der Bootloadersoftware deine Aplikation 
reinebrannt.
Habe fast ein Halbes Jahr mit denen Gekämpft bis ich den Entwickler am 
Rohr hatte und der Hat Festgestellt das ich Depp den Nutzcode mit dem 
Bootloader reinjagen wollte.
Aber er hatte auch nen Fehler gefunden Das ANSEL register war aktiv und 
damit konnte der Pinn RX nicht als High erkannt werden.

Grüße aus BW

von Gerald (Gast)


Lesenswert?

Hallo @all,

ich würde dies auch gern so umsetzten jedoch setze ich den PIC18f67j60 
ein mit einem MAX3535 transceiver.

und mein 1. Pic ist ein Pic32mz2048ech100 jemand eine idee wie ich dies 
hier genau umsetzten muss/kann.

wäre für jede hilfe dankbar, auch über vll codebeispiele würden mir sehr 
helfen.

... ich hoffe ihr seit hier noch aktiv da das thema wohl schon älter ist

Danke

Gruß Gerald

von Georg (Gast)


Lesenswert?

Gerald schrieb:
> ... ich hoffe ihr seit hier noch aktiv da das thema wohl schon älter ist

fuerst-rene schrieb:
> Ach ja habe diesen Beitrag als lesezeichen und schaue einmal am Tag
> rein.

Nachdem er 1257mal umsonst reingeschaut hat, freut sich rene sicher über 
deinen Beitrag.

Georg

von Gerald (Gast)


Lesenswert?

@Georg,

vielen Dank nur hat sich bis jetzt nur du gemeldet ...

:)

Danke

von Ingo S. (schicki)


Lesenswert?

Hallo,

ich habe die Tag den AN1310 Bootloader von Microchip für die PIC18F452, 
PIC18F46K80 und PIC18F97J60 implemtiert. Läuft wunderbar. Die 
Vorschreiber setzen wie ich ich den XPORT. In dem Fall musst Du hier das 
AN1310 anschauen und ein Programm schreiben dass die Daten z.B via 
Telnet an die RS-232 des Controllers sendest.


Allerdings gibt es auch RS-232 / Ethernet Adapter die sich sich direkt 
als COM-Schnittstelle. Müssen immer installiert werden. Nicht nur 
Treiber instalieren. Nachteil hier die kosten um die 20 Euro.

Viele Grüße
Ingo

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.