Forum: PC-Programmierung AVR Programmübertragung wireless


von Dieter B. (dieter_b665)


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

von Εrnst B. (ernst)


Lesenswert?

Passenden Bootloader in den AVR, und so Wireless-Seriell-Bridges für 
wenige Cent, z.B. JDY-40?

Beim Bootloader musst du nicht viel ändern, und kannst GPIOs vom JDY-40 
zum Auslösen des AVR-Resets und Betreten des Bootloaders nutzen.

von Ob S. (Firma: 1984now) (observer)


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!

von Frank K. (fchk)


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

von Wastl (hartundweichware)


Lesenswert?

Na das ist doch ein echtes Schnäppchen, genau richtig für den
BASCOM-Hobby-Bastler, gell?

von Norbert (der_norbert)


Lesenswert?

Dieter B. schrieb:
> Das Kabel zwischen PC und Programmer würde ich gern wireless gestalten.

Interessanter Ansatz.

> Ich steh da im Moment etwas auf dem Schlauch.

Sofort runter da. Denn genau den nimmst du, dann ist es less ›wire‹, 
more rubber. Und die Daten fließen geschmeidiger.

von Frank D. (Firma: LAPD) (frank_s634)


Lesenswert?

Norbert schrieb:
>> Das Kabel zwischen PC und Programmer würde ich gern wireless gestalten.
>
> Interessanter Ansatz.

WLAN-Kabel ist die Lösung.

von Helmut -. (dc3yc)


Lesenswert?

Frank D. schrieb:
> WLAN-Kabel ist die Lösung.

Hab ich noch meterweise da, mit Dämpfung im unteren mB-Bereich.

von Gerhard O. (gerhard_)


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
von Dieter B. (dieter_b665)


Lesenswert?

Hallo
Vielen Dank für die Tips, habe jetzt ein fertiges Modul in der Bucht 
gefunden.
LG
Dieter

von Christian (trimatik-chris)


Lesenswert?

Und welche Type ist das?

von Weingut P. (weinbauer)


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.

von Ob S. (Firma: 1984now) (observer)


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.

von Dieter B. (dieter_b665)


Lesenswert?

Hallo
Die USB Module habe ich bestellt, ich werde berichten sowie ich diese 
getestet habe.
Guten Rutsch allerseits
LG
Dieter

von Harald (hasanus)


Lesenswert?

Dieter B. schrieb:
> Versuch über die SPI Schnittstelle sind bei mir allesamt fehlgeschlagen.

Falls in der Umgebung des AVR ein wifi - fähiger SBC vorhanden ist kann 
dieser als SPI - host dienen. Den AVR kann man mit avrdude flashen und 
den SBC als remote Entwicklungsumgebung nutzen.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Dieter B. (dieter_b665)


Lesenswert?

Hallo
Ich habe die Module RT4AE01 von eletechsup getestet. Ich krieg es nicht 
hin.
Danke für alle Tips, konnte leider nichts davon umsetzen. Falls jemand 
sagen kann ich habs schon gemacht, hier ist nachvollziehbar der Weg, 
währe Toll.
Danke
LG Dieter

von Weingut P. (weinbauer)


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.

von Εrnst B. (ernst)


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.Ä.?

von Philipp K. (philipp_k59)


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
von Philipp K. (philipp_k59)


Lesenswert?

zum kavr Bootloader, sogar ein Tipp aus der Artikelsammlung.

https://www.mikrocontroller.net/articles/Kavr:_AVR_Hexfile_Boot_Loader

Der Link funktioniert nicht mehr, allerdings könnte der "optiboot" aus 
den arduinos auch in diese Richtung konfigurierbar sein.

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


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.

von Pandur S. (jetztnicht)


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
von Εrnst B. (ernst)


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?

von Wolfgang (womikro)


Angehängte Dateien:

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.

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.