AVR Programmübertragung wireless

OP #7984282
Lesenswert?

Hallo liebe AVR Gemeinde

Kennt jemand eine Möglichkeit ein Programm wireless mit Bascom geschrieben in den AVR zu Übertragen. Eine Wireless USB Verbindung an deren Ende der AVR Programmer sitz währe gut. Das Kabel zwischen PC und Programmer würde ich gern wireless gestalten. Ich steh da im Moment etwas auf dem Schlauch. Versuch über die SPI Schnittstelle sind bei mir allesamt fehlgeschlagen. Vielleicht hat da jemand schon mehr Erfahrungen gemacht. LG Dieter

(Firma: 1984now) #7984461
Lesenswert?

Dieter B. schrieb:

Kennt jemand eine Möglichkeit ein Programm wireless mit Bascom geschrieben in den AVR zu Übertragen.

Eine? Dutzende!

Eine Wireless USB Verbindung an deren Ende der AVR Programmer sitz währe gut.

Ja. brauchst du halt irgendwas, was das "wireless" realisiert. Umnd einen dazu passenden Bootloader.

Versuch über die SPI Schnittstelle sind bei mir allesamt fehlgeschlagen.

Wie sollte das auch klappen? SPI ist halt nicht "wireless". Troll dammichter!

#7984933
Lesenswert?

Dieter B. schrieb:

Kennt jemand eine Möglichkeit ein Programm wireless mit Bascom geschrieben in den AVR zu Übertragen. Eine Wireless USB Verbindung an deren Ende der AVR Programmer sitz währe gut. Das Kabel zwischen PC und Programmer würde ich gern wireless gestalten. Ich steh da im Moment etwas auf dem Schlauch.

Es gibt käufliche Universallösungen:

https://www.silextechnology.com/connectivity-solutions/usb-network-connectivity/ds-700ac

Ist nicht billig, aber laiensicher.

fchk

#7984998
Lesenswert?

Moin,

BT wäre eine Möglichkeit falls mit BL gearbeitet werden kann. Ich entwickelte früher in der Firma empfindliche Sensoren mit DSPic und STM32. Bei Untersuchungen und Messungen traten PE-Störschleifen vom PC und Oszi recht unangenehm in Erscheinung. Da ich aber eine Serialverbindung für die Diagnostik brauchte, war das ein Kopfweh. Als möglichen Ausweg probierte ich dann eine BT Verbindung mit dem HC-05 Modul und einen USB Einsteck BT Dongle. Das funktionierte sehr gut und beseitigte alle meine auf PE-Stromschleifen beruhenden Messprobleme. Die BR war 115200 und man merkte zumindest bei Teraterm keinen Unterschied zu Drahtverbindung im zeitlichen Verhalten (Das nag nicht viel aussagen)

Ob AVRDude o.ä. und der B.L. damit klarkommen können nur Versuche klarstellen.

Wenn es SPI sein muss, könnte es möglicherweise so funktionieren, daß man wieder BT zwischen PC und ISP Programmer setzt (z.B. alter Atmel MK I mit RS232, oder ähnlich kompatibel)

Ein Versuch wäre es wert. Ob die zugehörige SW das mag ist natürliche eine andere Frage.

Gerhard

: Bearbeitet durch User
#7986545
Lesenswert?

Hab sowas mal gemacht über IR-Datenübertragung und Bootloader. Das projektierte Gerät sollte optional Firmwareupdates bekommen können ohne Gehäuse zu öffnen und das Gehäuse war IP67. Hab dann die IR-Schnittstelle neben der Signal-LED platziert und durch das Fensterchen auch die Datenübertragung laufen lassen. Klappte bis 2m mit 1200 Baud, nicht schnell aber für die Anwendung ausreichend und preiswert.

(Firma: 1984now) #7986557
Lesenswert?

Weingut P. schrieb:

Hab sowas mal gemacht über IR-Datenübertragung und Bootloader. Das projektierte Gerät sollte optional Firmwareupdates bekommen können ohne Gehäuse zu öffnen und das Gehäuse war IP67. Hab dann die IR-Schnittstelle neben der Signal-LED platziert und durch das Fensterchen auch die Datenübertragung laufen lassen. Klappte bis 2m mit 1200 Baud, nicht schnell aber für die Anwendung ausreichend und preiswert.

Das erfordert aber entweder viel Geschicklichkeit beim Einleiten des Flashvorgangs oder übel lange Wartezeiten des Bootloaders. Und letzteres stört nach jedem Reset.

Wenn man allerdings die offensichtlich ohnehin vorhandene Signal-LED als Feedback-Kanal nutzt, dann könnte das eine durchaus akzeptable Lösung sein.

Erfordert dann natürlich wiederum einen angepassten Programmer, der was sinnvolles mit dem Feedback anfangen kann.

(Firma: matzetronics) #7986888
Lesenswert?

Gerhard O. schrieb:

Als möglichen Ausweg probierte ich dann eine BT Verbindung mit dem HC-05 Modul und einen USB Einsteck BT Dongle.

Damit habe ich auch gute Erfahrungen gemacht. Der HC-05 scheint auch so robust zu sein, das er die teilweise extremen Temeraturen in meinem Auto gut übersteht und noch nie ausgestiegen ist. Und der USB Dongle auf der anderen Seite kann auch eingebaut im PC/Notebook oder ein Telefon sein.

#7992277
Lesenswert?

naja, also bei IR bei mir hielt sich der Aufwand in Grenzen, als Empfänger n TSOP-1738 an der UART RX, TX war bisschen komplexer, hab die 38kHz mit dem Timer generiert und mit 2 NPN-Transistoren den TX zum Einen invertiert und mit dem zweiten moduliert und per IR-LED raus. In meinem Fall war aber auch weder Reichweite noch Geschwindigkeit gefordert.

#7992451
Lesenswert?

Dieter B. schrieb:

Danke für alle Tips, konnte leider nichts davon umsetzen.

Wo war das Problem mit der Wireless Serial Bridge?

  • Einen Bootloader finden, der über eine Serielle Verbindung funktioniert?
  • die Funkmodule für die serielle Verbindung zu finden oder zu konfigurieren?
  • Eins der Funkmodule per USB-TTL Platinchen an den PC bringen?
  • Die GPIOs per AT-Kommando ansprechen, um am Ziel-AVR einen Reset in den Bootloader auszulösen?
  • das ganze mit avrdude zu verheiraten, über ein Script oder einen "before_upload"-Hook in PIO o.Ä.?
#7993897
Lesenswert?

Es wäre auch interessant welche AVR Familie das ist um einen passenden kompatiblen Bootloader zu empfehlen..

Soll das ganze "On Demand" oder mit Button geflasht werden?

Es gibt Bluetooth Module die auch RTS/CTS liefern, nicht nur TX/RX.

Theoretisch muss man im laufenden Programm auf eine Serielle Zeichenfolge checken.. wenn diese kommt einen SW-Reset ausführen. (oder ein Button)

Der Bootloader wartet nach dem Reset X Sekunden auf die initialisierenden AVR-Dude Befehle.

Es gab mal ein fertiges AVR Board mit BTM222 und Custom Bootloader für den Atmega328p, das hat so ähnlich funktioniert.

Ich meine das var ein "KAVR" Bootloader.

Letzendlich muss man das ganze in einem Script zusammenführen.

Einen Custom Bootloader wählen der auch konfigurierbar 10 Sekunden wartet (Gerät braucht nach Spannung anlegen 10 Sekunden zum Starten.)

Den Reset Befehl senden, 1 Sekunde warten und den Avrdude Befehl hinterher, ich habe die besten Erfahrungen mit Arduino Bootloadern gemacht, meist gibt es schon irgendwie einen fertigen Bootloader der den Anforderungen entspricht ..

Nachtrag: Je nach Funklösung z.B. Bluetooth, 433,868 Mhz muss man auch die richtige Baudrate treffen, das ist die größte Herausforderung denke ich.

: Bearbeitet durch User
(Firma: Q3) #7995653
Lesenswert?

Also wenn man die Arduino-Umgebung zum Programmieren nutzt, gibt es für alle mit WLAN ausgestatteten MCs (neuere Arduinos, ESP8266, ESP32x usw.) eine fest etablierte Technologie mit der Bezeichnung "OTA" (over the air), die zuverlässig funktioniert.

Man muss in seinen Code einige Zeilen im Setup-Bereich einbinden (user,password) und die passende Lib importieren - fertig.

Ich hab schon gelesen, dass der TO gerne BASCOM verwenden möchte. Vielleicht kann man den für OTA benutzten Code ja nalaysieren und adaptieren und nur zum Update nutzen. Zumindest hat man eine funktionierende Basis.

#7996088
Lesenswert?

Nebenbei, der Bootloader muss auch selbst bootloaden koennen, denn das Hauptprogramm koennte ja weg sein. Ich empfehle einen zusaetzlichen Speicherchip zu verwenden, den neuen Code erst dort zu speichern, auf Vollstaendigkeit und Authentizitaet checken, und dann erst zu flaschen.

: Bearbeitet durch User
#7996132
Lesenswert?

Pandur S. schrieb:

Nebenbei, der Bootloader muss auch selbst bootloaden koennen, denn das Hauptprogramm koennte ja weg sein.

Wär ja gegeben gewesen. Der Bootloader überschreibt sich nie selbst, und den Sprung in den Bootloader kann das Funkmodul genauso auslösen wie die "Flash"+"Reset"-Tasten auf einem AVR-Arduino-Board.

Das ist also komplett unkaputtbar, egal was du als Hauptprogramm flashst.

mein Vorschlag war eine Super-Simple Lösung, mit zwei JDY-40 Funkmodulen und einem USB-Seriell Dongle für zusammen 2,50€ in bester Maker-Manier mit Dupont-Kabeln zusammenfrickel-bar. (Nachdem die JDY-40 schon ein paar Jahre auf dem Buckel haben, gibt's vmtl. inzwischen bessere Funkmodule)

Pandur S. schrieb:

Ich empfehle einen zusaetzlichen Speicherchip zu verwenden

Wenn das Ziel "Maximaler Overkill" ist... Vielleicht noch ein halbes Rechenzentrum neben den Empfänger-AVR bauen? Einen RasPi 5 der einen USB-Programmer bedient, wenn das Programm-File mit dem richtigen 4096bit-Schlüssel GPG-Signiert ist?

#7996286
Lesenswert?

Εrnst B. schrieb:

mein Vorschlag war eine Super-Simple Lösung, mit zwei JDY-40 Funkmodulen und einem USB-Seriell Dongle für zusammen 2,50€ in bester Maker-Manier mit Dupont-Kabeln zusammenfrickel-bar. (Nachdem die JDY-40 schon ein paar Jahre auf dem Buckel haben, gibt's vmtl. inzwischen bessere Funkmodule)

Da ich einige JDY-40 Module hier habe, wäre ich daran interessiert wie das geht. Aus der vorliegenden JDY-40 Anleitung kann ich nicht herauslesen wie das gehen könnte. Gibt es da noch undokumentierte Befehle? Wenn Sender und Empfänger für die transparente serielle Übertragung (Mode A0) konfiguriert sind, gibt es doch keine Möglichkeit die I/O Pins anzusprechen, um z.B. den Reset auf der Empfängerseite auszulösen. Kannst du da für mich Licht ins Dunkel bringen?

Mit jeweils 2 JDY-40 auf der Sende- bzw. Empfangsseite (also insgesamt 4 Module) kann ich mir das vorstellen. 2 Module in A0 Konfiguration für die serielle Übertragung, und weitere 2 Module im C1 (Sender) und C3 (Empfänger) Mode für das Reset Signal.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren