Forum: Mikrocontroller und Digitale Elektronik Attiny über "Funk" programmieren


von Stefan S. (sschultewolter)


Lesenswert?

Hallo,

ich habe immer mal wieder kleinere Beleuchtungsprojekte, die ich nicht 
direkt mit dem PC verbinden kann aufgrund dessen, dass sich die Objekte 
> 5m vom PC entfernt stehen.

Gibt es eine gute Möglichkeit, AVRs über Funk/WLAN zu programmieren? 
Derzeit nutzte ich den DIAMEX AVR ISP Programmer, mit dem soweit sehr 
zufrieden bin.

Ich hab in meiner Elektronikkiste noch einige Teile ausgegraben, aber 
scheinbar nichts passendes.
Zuerst dachte ich, es dürfte mit den alten devolo dLan duo gehen. Diese 
scheien aber trotz USB-B Buchse nicht für sowas geeignet zu sein. Eine 
weitere möglich würde einer meiner Raspberrys vielleicht gehen. Habe da 
noch nichts passendes gefunden, ein USB Gerät über das Netzwerk zur 
Verfügung zu stellen, damit das Atmel Studio darauf Zugriff hat. Wäre 
vermutlich die einfachste der Möglichkeiten.

Alternativ besitze ich auch noch einen Arduino YUN. Nutze aber nicht die 
Arduino IDE über irgendwelche Plugins. Andere Tipps?

von npn (Gast)


Lesenswert?

Normalerweise hätte ich jetzt gesagt, nimm einen Bootlader. Aber ich 
habe ehrlich gesagt keine Ahnung, ob ein Tiny nicht vielleicht zu klein 
dafür ist.

von Karl H. (kbuchegg)


Lesenswert?

Stefan S. schrieb:

>  Andere Tipps?

Aus einer ganz anderen Ecke.
Wenn du noch Platz in den Tinys hast, könnte man sich auch über einen 
Bootloader Gedanken machen.
Die Asuro werden zb über einen Bootloader programmiert, der 
interessanterweise per Infrarot angesprochen wird. Ist im Grunde einfach 
nur eine Infrarot-Verlängerung einer seriellen Schnittstelle.
Muss aber auch nicht so kompliziert sein. Ein serielles Kabel vom PC zur 
Lampe ist auch so schnell eingestöpselt.
Du musst dich halt auch mal von der Vorstellung lösen, dass die 
Programmübertragung nur über das Atmel Studio erfolgen kann.

: Bearbeitet durch User
von Stefan S. (sschultewolter)


Lesenswert?

Einen extra Bootloader wollte ich mir ersparen. Die Attinys haben so 
schon einen bescheidenenen Flash ;)

Das mit dem Kabel ist das Problem, das würde quer durch den Raum hängen 
und es müsste aufgrund der länge wieder verstärkt werden. Am besten wäre 
es, wenn ich die USB Schnittstelle des Rasp irgendwie meinem PC zur 
Verfügung stellen kann.

von Karl H. (kbuchegg)


Lesenswert?

Hmm.
AVRDUDE gibt es meines Wissens auch für Linux, müsste daher auch auf 
einem RPi funktionieren.
D.h. man könnte auch das Hex-File zum RPi übertragen, mit dem Pi zur 
Lampe marschieren, einstöpseln und der Pi brennt dann den Tiny.

von Dr. Sommer (Gast)


Lesenswert?

Mach die Beleuchtung einfach direkt mit dem Raspberry, dann brauchste 
den Tiny gar nicht. Den R-PI kannst ja einfach per ssh programmieren. 
Oder, wenn du unbedingt einen dicken R-PI zur Beaufsichtigung des 
kleinen Tiny abstellen willst, man kann auch avrdude auf dem R-PI 
installieren...

von Stefan S. (sschultewolter)


Lesenswert?

Die Beleuchtung kann der Rpi nicht übernehmen, es geht um WS2812B und 
damit kommt der Rpi aufgrund des Timings überhaupt nicht klar.

Der Rpi soll auch nicht dauerhaft dort eingesteckt bleiben. Okay, werde 
es mal mit avrdude und einer smb Freigabe versuchen.

von Philipp K. (philipp_k59)


Lesenswert?

kommt halt drauf an..

1. Beim absolut freiem Programmieren wäre nur ein Serial-bootloader 
interessant den Du dann über IR oder Serial over Bluetooth verbinden 
könntest, Nachteil-> hierfür wäre ein exaktes aus und wiedereinschalten 
erforderlich um den Bootloader dann im boot (Reset) zu erwischen.

2. Ein zweiter Avr, wobei es einfacher wäre gleiche einen Chip mit 
Seriellem Bootloader zu wählen... Nachteil-> muss angesteckt werden.

3. Habe einen Atmega328p den man via (BTM-222)Bluetooth als Programmer 
nutzen kann. (Arduino(optiboot Emu) over Bluetooth ISP) Nachteil-> muss 
angesteckt werden.

Insgesamt ist der Tiny dafür einfach nicht gemacht.. kommt drauf an 
welche Pins Du noch frei hast und wieviel Platz dabei bleibt.. kann man 
halt weiterspinnen bis zum miniusb bootloader wie beim Adafruit Trinket 
den man mit einem Lappie erreicht (kostet 2 shared Pins für den 
Bootloader)

Denke für die Aktion falscher Chip!

von Stefan S. (sschultewolter)


Lesenswert?

Der Attiny hat zwar eine BT Verbindung zum PC, jedoch nur über Rx/Tx 
ohne DTR. Wenn das Programm einigermaßen steht, brauch ich da nicht mehr 
dran. Kommunikation läuft danach nur noch über BT.

Habe jetzt erst einmnal den Raspi mit Devolo Dlan dort oben inkl. 
Netzteil untergebracht. Werde nachher mal nachschauen, ob der AVR 
Programmer überhaupt mit dem System klar kommt. Alternativ könnte ich 
dann auch die interne SPI Schnittstelle des RPI nutzen. Auf 3V3 läuft 
der Attiny841 sowieso, da mein BT Modul keine 5V abkann. Habe diese 
HC-05/06 Module im Einsatz ohne diese Adapterplatine.

von Karl H. (kbuchegg)


Lesenswert?

Stefan S. schrieb:

> ohne DTR. Wenn das Programm einigermaßen steht,

Was heisst, wenn es einnigermassen steht?

Wenn du den Tiny so verbaust, dass du da nicht mehr vernünftig ran 
kommst, dann muss das Programm bereits 'einigermassen stehen'. Zu diesem 
Zeitpunkt macht man höchstens noch Kleinigkeiten. Und dann ist es auch 
egal, ob das dann ein wenig umständlicher ist.

von Joachim B. (jar)


Lesenswert?

Stefan S. schrieb:
> Gibt es eine gute Möglichkeit, AVRs über Funk/WLAN zu programmieren?

ja damit:
Beitrag "bidirektionale RS232 Funkbrücke mit RFM12"

ob der 2te das nun auf RS232 rausgibt oder den Tiny programmiert oder 
evt. sich selber ist IMHO egal

was kostet schon ein billiger china microArduino und ein RFM12 Chip ? 
rel. wenig

von Stefan S. (sschultewolter)


Lesenswert?

Karl Heinz schrieb:
> Stefan S. schrieb:
>
>> ohne DTR. Wenn das Programm einigermaßen steht,
>
> Was heisst, wenn es einnigermassen steht?
>
> Wenn du den Tiny so verbaust, dass du da nicht mehr vernünftig ran
> kommst, dann muss das Programm bereits 'einigermassen stehen'. Zu diesem
> Zeitpunkt macht man höchstens noch Kleinigkeiten. Und dann ist es auch
> egal, ob das dann ein wenig umständlicher ist.

Hallo Karl Heinz. Rankommen tu ich immer wieder. Da wird nichts 
vergossen oder zugemauert. Nur ist das eine "besch**" Ecke um mal eben 
neue Daten drauf zupacken. Da bekomm ich keinen Stuhl/Tisch hin für 
Laptop oder ähnliches.

Den ISP hab ich einzeln auf einen Stecker rausgeführt. Mir gehts mehr um 
ein wiederverwendbaren Funk/WLAN ISP Programmer. Kann sogar wie gerade 
nur Ethernet haben. Das wäre alles kein Problem.

Werde jetzt erstmal testen wie das mit dem Programmer + Raspi geht. Hab 
aber auch irgendwo schon gesehen, dass mit der Raspi auch als Programmer 
direkt genutzt werden kann. Das wäre optimal. Einfach eine kleine 
Adapterplatine auf die GPIOs der dann 1:1 mit der ISP Schnittstelle 
verbaut wird.

Werd mich nachher mal um die genauen Befehlssätze für avrdude kümmern. 
Nutzte eigentlich keine GUI am rasp. Sollte auch direkt über ssh Zugriff 
auf der Konsole gehen.

von Ulrich F. (Gast)


Lesenswert?

Wenn du an deinen Avr einen Pi montieren willst, dann könnte doch sowas 
was für dich sein:
http://www.incentivespro.com/usb-server.html

ungetestet

von AVRFan (Gast)


Lesenswert?

Stefan S. schrieb:
> Gibt es eine gute Möglichkeit, AVRs über Funk/WLAN zu programmieren?
> Derzeit nutzte ich den DIAMEX AVR ISP Programmer, mit dem soweit sehr
> zufrieden bin.

Ich würde das so lösen:
AVR 910 Programmer (Beitrag "AVR910 Programmer, Schaltplan, Layout, Firmware") 
mit RFD21733 (gibt es auch als DIP Modul) statt MAX232. Auf PC-Seite 
dann ein USB -> Serial (LVTTL) Adapter + weiteren RFD21733. Der RF21733 
ist eine konfiguriationslose Funkbrücke, kann also direkt mit allen 
gängigen Tools eingesetzt werden.

Alternativ (so habe ich dies mit verschiedenen Funkmodulen bereits 
implementiert): I2C EEPROM an den zu programmierenden AVR, einfaches 
Protokoll, das die Daten vom PC empfängt und im EEPROM speichert sowie 
einen Bootloader, der die Daten aus dem EEPROM liest und ins Flash 
schreibt. Direkt per Funk würde ich bei dieser Variante nicht 
programmieren, da der Bootloader-Bereich häufig zu klein ist, den 
Funk-Stack zu integrieren und die Gefahr besteht, dass bei Abreissen der 
Kommunikation der AVR tot ist.

von Max D. (max_d)


Lesenswert?

Wenn das Netzteil an dem tiny genug Reserven hat, dann könntest du einen 
ISP bauen der sich parasitär aus dem ISP Port versorgt und via Bluetooth 
(hc-05/06) oder WiFi (esp8266) mit dem hostrechner kommuniziert. Sollte 
nicht so krass aufwendig sein.

von Philipp K. (philipp_k59)


Lesenswert?

Dieser Quellcode beschäftigt sich zwar mit einer fertigen Platine für 
einen 18€ Atmega328p/BTM-222 Verbund von bluecontroller.com ...wäre aber 
bestimmt anpassbar oder nachbaubar wobei der BTM ja schon alleine 10€ 
kostet.

https://code.google.com/r/michaeldreher42-bluecontroller/source/browse/bluecontroller/examples/BlueC_ISP/BlueC_ISP.h

von Andreas (Gast)


Lesenswert?

Mit einem ATTiny wird das nicht klappen. Aber schaue die mal die 
Moteinos von Lowpowerlab an. Die haben ein Flashspeicher an Bord und 
können per Funk programmiert werden.

Andreas

von Thomas E. (thomase)


Lesenswert?

Stefan S. schrieb:
> Hallo Karl Heinz. Rankommen tu ich immer wieder. Da wird nichts
> vergossen oder zugemauert. Nur ist das eine "besch**" Ecke um mal eben
> neue Daten drauf zupacken. Da bekomm ich keinen Stuhl/Tisch hin für
> Laptop oder ähnliches.

Den Stuhl und den Tisch brauchst du ja nicht für den Laptop, sondern für 
dich selbst.

Wenn der Laptop aber noch irgendwie in die Ecke passt, kannst du dir den 
per Remote Desktop auf deinen Schreibtisch-PC holen.

mfg.

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.