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