Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Benutzeravatar
Gelegenheitsbastler
Beiträge: 492
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 1 Mal

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von Gelegenheitsbastler » 06.06.2018, 11:30

Der Thread driftet etwas ab ;-)

Wenn Du das Original von Atmel noch bekommen kannst, wirst Du den Kauf nicht bereuen.
Es müssen natürlich alle 6 Pins verbunden werden.
Wichtig ist zu wissen, dass die Verbindung mit GND und Vcc bewirkt, dass der AVR ISP MKII "weiß", mit welcher Spannung die Schaltung betrieben wird. Er passt dann die Programmierspannung entsprechend an. Das bedeutet, dass die Schaltung immer mit einer externen Spannungsquelle versorgt werden muss. Wenn man die Schaltung über den Progger speisen möchte, muss man ihn ein wenig modifizieren. Im Netz gibt es dazu diverse (unschöne) Vorschlägt. Ich bevorzuge meine Lösung: viewtopic.php?f=76&t=43162&p=437670#p437667

Ob es möglich ist, den AVR per ISP zu flashen, wenn die CC11101 Platine verbunden ist, kann ich nicht sagen. Denn wo welcher Pullup oder Pulldown gesetzt werden muss, weiß ich nicht auswendig. Ob es den dann auf der CC1101 Platine gibt, kann ich auch nicht sagen. Ich würde sagen "einfach mal probieren".

Wenn Du den Bootloader für einen beliebigen "Arduino" flashen möchtest, wird es unter Umständen zu Problemen kommen, denn der "normale" Arduino hat einen externen Quarz. Ob Du den auf Deiner Platine hast, weiß ich nicht. Ich habe ihn nicht mit drauf. Wenn Du die mit dem Flashen des Bootloaders die Fuses so einstellst, dass es einen externen Quarz gibt, obwohl dieser nicht vorhanden ist, wird es etwas tricky, das Problem wieder zu beheben.

Ich flashe daher den Bootloader für den Atmega 328P. Die Fuses stimmen dann insofern, als dass der AVR läuft. Was ich danach regelmäßig mache, ist die BOD per Fuses zu deaktivieren. Die Reihenfolge ist also zuerst den passenden Bootloader flashen (dabei werden schon Fuses gesetzt) und erst danach Änderungen an den Fuses vornehmen. Ich mache das sehr bequem mit AVR8 Burn O Mat. Aktuelle config-Files kann ich Dir gerne zukommen lassen.

Wenn der Bootloader dann installiert ist, kannst Du den Sketch seriell über Rx/Tx übertragen. Dann wirst Du den Reset in jedem Fall benötigen, denn nur nach einem Reset wartet der Bootloader eine kurze Zeit auf Daten auf Rx, um einen neuen Sketch aufzuspielen. Manchmal muss man auch ein klein wenig tüfteln, bis man nach dem Drücken des "Hochladen" Buttons in der Arduino IDE den Reset (wird gegen GND gehalten und im passenden Moment los gelasen) auslöst. Bislang hat es bei mir aber noch immer geklappt.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

RaspberryMatic 3.45.7.20190511 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC
FritzBox 7490 FW 7.01 mit Mesh
FritzRepeater 1750E FW 7.01 mit Mesh
FRITZ!DECT 200 (als CUxD Gerät eingebunden)
Etliche selbst gebaute Aktoren und Sender

jp112sdl
Beiträge: 3027
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von jp112sdl » 06.06.2018, 11:34

Gelegenheitsbastler hat geschrieben: Ob es möglich ist, den AVR per ISP zu flashen, wenn die CC11101 Platine verbunden ist, kann ich nicht sagen.
Ja natürlich, das geht.
Es ist ja gerade der Sinn von ISP, ohne an der Hardware was ändern zu müssen, jederzeit programmieren zu können.
https://de.wikipedia.org/wiki/In-System-Programmierung

VG,
Jérôme

deimos
Beiträge: 2886
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von deimos » 06.06.2018, 11:35

Hi,
Gelegenheitsbastler hat geschrieben:Der Thread driftet etwas ab ;-)
Ob es möglich ist, den AVR per ISP zu flashen, wenn die CC11101 Platine verbunden ist, kann ich nicht sagen. Denn wo welcher Pullup oder Pulldown gesetzt werden muss, weiß ich nicht auswendig. Ob es den dann auf der CC1101 Platine gibt, kann ich auch nicht sagen. Ich würde sagen "einfach mal probieren".
Das klappt einwandfrei, weil der CC1101 nicht den Reset Pin als SS Eingang hat, d.h. er bekommt zwar theoretisch die ganzen Kommandos über MOSI mit, aber irgnoriert es, weil es nicht an ihn adressiert ist.

Viele Grüße
Alex

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von Bratmaxe » 06.06.2018, 12:09

Vielen Dank für die Infos,

also ich hab mich da vielleicht etwas unklar ausgedrückt.
Die CC1101 wäre zu dem Zeitpunkt noch nicht verlötet (scheint aber ja auch kein Problem zu sein).

Es geht mir nur darum den ATMEGA328P zu verlöten und dann relativ einfach über die Pins des CC1101 zu programmieren, statt das irgendwie "on-the-fly" zu versuchen, ohne das das IC eingelötet ist.
Und ich möchte den internen Quarz gerne verwenden. D.H. ich müsste den Bootloader für Atmega328P flaschen.
Wo finde ich diesen Bootloader? Ist der bei dem Studio dabei? (konnte ich noch nicht installieren)

Ich vermute das es eher ein Clone ist und nicht der originale Programmer!
Was bewirkt das deaktivieren des BOD? Also welche Vor- bzw. Nachteile hat dies?

AVR-Burn-O Mat habe ich mal runtergeladen und installiert um es mir anzugucken.
Welche Fuse ist denn für das Umschalten von intern zu externem Oszillator gedacht, oder ist das in der Config-File, die du mir zusenden kannst definiert?

Also Zusammenfassung der Reihenfolge:
1. mit AVR8-Burn-O-Mat die Fuses setzen (Config-File)
2. Bootloader mit AVR Studio installieren
3. Sketch mit Auruino IDE installieren

Hoffe ich habe es langsam verstanden.

Gruß Carsten
Gruß Carsten

Benutzeravatar
Gelegenheitsbastler
Beiträge: 492
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 1 Mal

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von Gelegenheitsbastler » 06.06.2018, 12:34

Ich arbeite nicht mit dem Studio, da ich Win nur in der VM nutze. Ich mache das komplett mit der Arduino IDE. Dort musst Du in den Einstellungen "zusätzliche Boardverwalter URLs" das hier eingeben:
https://raw.githubusercontent.com/sleem ... index.json
Ich nehme zumindest an, dass das der richtige Link ist. Bei mir ist es eine ziemlich lange Liste.

BOD: Brown-out Detection
Die Aktivierung ist wenig hilfreich, wenn man im Akku/Batteriebetrieb arbeitet. Jerome hatte dazu mal was geschrieben. Unter anderem kann es vorkommen, dass die CC1101 abschmiert und DC erzeugt.
Ich deaktiviere das per BurnOMat (erst Fuses einlesen, dann ändern und dann wieder schreiben)
Hier findest Du das aktuelle config-file:
https://www.mikrocontroller.net/topic/219393#5376700

Die Reihenfolge ist:
1) Bootloader mit Arduino IDE per ISP
2) Fuses per AVR Burn O Mat ändern
3) Sketch per Rx/Tx über Arduino IDE

Das ist aber nur meine Reihenfolge. Es gibt sicherlich noch viele andere Wege. Aber so ist es für mich schnell und einfach umsetzbar.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

RaspberryMatic 3.45.7.20190511 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC
FritzBox 7490 FW 7.01 mit Mesh
FritzRepeater 1750E FW 7.01 mit Mesh
FRITZ!DECT 200 (als CUxD Gerät eingebunden)
Etliche selbst gebaute Aktoren und Sender

Bratmaxe
Beiträge: 1364
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von Bratmaxe » 06.06.2018, 13:04

Vielen Dank für die Config-Datei.

Ich habe die Datei geladen und im Programm ersetzt.
Aber wie ich nun den internen Oszillator aktiviere ist für mich noch nicht ersichtlich.
Ist es das Häkchen "divide system clock by 8".. devide = teilen verstehe ich, das der interne Clock zusätzlich nach draußen geführt wird. aber dafür scheint es nochmal ein Häkchen zu geben "output system clock on pin CLKO (PB0)
Muss ich also für den internen Clock beide Harken entfernen?

Dann bin ich auch erst mal fertig mit meiner Fragerei :D
Gruß Carsten

jp112sdl
Beiträge: 3027
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von jp112sdl » 06.06.2018, 13:08

Ich setze immer
L:FF, H:D2, E:FE

Hier gibts nen schönen Online-Fusecalculator:
http://www.engbedded.com/fusecalc
Bildschirmfoto 2018-06-06 um 13.07.27.png

VG,
Jérôme

deimos
Beiträge: 2886
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von deimos » 06.06.2018, 13:21

Hi,

BOD ganz aus spart noch etwas mehr Strom im Sleep. Ich verwende daher efuse=0xFF.

Zusätzlich experimentiere ich grade noch damit den internen RC Osz. statt dem externen Resonator zu nutzen (hfuse=0xE2), weil das auch nochmal einiges einspart. Beim Arduino ist extern auch kein Quarz, sondern ein Keramikresonator verbaut und die schwingen ähnlich ungenau. Erst mit einem echten Quarz kommt da Genauigkeit rein.

Und ganz wichtig: Wenn du keinen externen Resonator oder Quarz hast und die Fuse für extern setzt, dann hast du danach ein Problem, weil der ATmega dann nur noch ansprechbar ist, wenn extern auch was dran hängt. (Oder über High Voltage Programming, aber das ist ein komplett eigenes Thema mit zusätzlich notwendiger Hardware).

Auch von Debug Wire und Reset Disable auf jeden Fall die Finger lassen, da kannst du dich auch perfekt mit aussperren.

Viele Grüße
Alex

jp112sdl
Beiträge: 3027
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von jp112sdl » 06.06.2018, 13:22

deimos hat geschrieben:Hi,

BOD ganz aus spart noch etwas mehr Strom im Sleep. Ich verwende daher efuse=0xFF.
Im Sleep<> wird BOD deaktiviert, das mach die LowPower Lib.

Edit:
https://github.com/pa-pa/AskSinPP/blob/ ... vity.h#L63

VG,
Jérôme

deimos
Beiträge: 2886
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

Re: Nachbau HM-Geräte mit AVR und AskSinPP - Platine 1

Beitrag von deimos » 06.06.2018, 13:35

Hi,
jp112sdl hat geschrieben:
deimos hat geschrieben: BOD ganz aus spart noch etwas mehr Strom im Sleep. Ich verwende daher efuse=0xFF.
Im Sleep<> wird BOD deaktiviert, das mach die LowPower Lib.
BOD per Software abschalten kann aber leider nur der 328P (zumindest laut allen Datenblättern).

Viele Grüße
Alex

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“