MySensors SAMD basiert; gesplittet von :RS485 basierend auf Arduino ProMicro; gesplittet von:Fragen

Begonnen von Brasletti, 31 Dezember 2017, 01:00:30

Vorheriges Thema - Nächstes Thema

Ranseyer

RFM69 funktioniert so nicht:
// Enable debug prints to serial monitor
#define MY_DEBUG
#define MY_RADIO_RFM69
#define MY_IS_RFM69HW // Lokale Vorschriften beachten !
#define MY_RFM69_FREQUENCY RFM69_868MHZ
//#define MY_RFM69_FREQUENCY RF69_433MHZ  // Define for frequency setting. Needed if you're radio module isn't 868Mhz (868Mhz is default in lib)
#define MY_RFM69_NEW_DRIVER


/**
D4=IRG
D10 = SS
D11 = MOSI
D12 = MISO
D13 = SCK
*/

#define MY_RF69_IRQ_PIN 4
#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
//#define MY_RFM69_CS_PIN D10 // NSS. Use MY_RF69_SPI_CS for older versions (before 2.2.0)
//#define MY_RFM69_NETWORKID 100  // Default is 100 in lib. Uncomment it and set your preferred network id if needed
#define MY_RF69_IRQ_NUM 4 // Temporary define (will be removed in next radio driver revision). Needed if you want to change the IRQ pin your radio is connected. So, if your radio is connected to D3/INT1, value is 1 (INT1). For others mcu like Atmel SAMD, Esp8266, value is simply the same as your RF69_IRQ_PIN
// #define MY_RF69_SPI_CS 15 // If using a different CS pin for the SPI bus. Use MY_RFM69_CS_PIN for the development branch.



Aber es ist trotzdem schon mal ein Anfang...
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Brasletti

Ich glaube 4 haben wir schon mit 5V vom Max gegrillt  :o ! Ich hab grad mal den Blink Sketch mit D3 und D4 versucht. D3 blinkt D4 nicht.

Ranseyer

Schei... Ich hab mir den Schaltplan dazu nicht angesehen vor der Inbetriebnahme mit dem MAX487...

Aber:
-Bei der SMD Variante gehen +5V auf die Spannungsversorgung des MAXen
-Bei der DIL Variante ist die Spannungsversorgung gar nicht explizit angeschlossen, wird also eher auf VCC gehen.
=> Ich löte leider irgendwie lieber die SMD Variante...

Wenn ich mit dem Oszi messe sehe ich Aktivität an Pin3  aber nicht an Pin4. Da der Compiler sich nicht weigert und es auch sonst funktionieren sollte ist D4 wohl hinüber.
:'(

Wie hast du den Pin D4 ausgewählt / welchen schlägst du als Ersatz vor?

PS: Gerade neuen Input gefunden: https://www.openhardware.io/view/12/Sensbender-Gateway
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Brasletti

Ich hab mal zwei samd21 chips bestellt, wenn die da sind schickst mir deinen und ich mach ich wieder heile ;). Ich hab den ja auch schon gegrillt.

Den DIP hab ich in eagle nicht angeschlossen weil ich das Invoke noch nicht kannte und deshalb die Anschlüsse verborgen blieben.

Da ist noch der Schaltplan vom Mini. Die Pins unterscheiden sich auch vom Zero!

Ranseyer

Ich wollte nur mal aufzeigen wie es andere machen...

Das Angebot würde ich bei Bedarf gerne annehmen. Aber Frage: Warum nicht einfach nen anderen Pin nehmen ?
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Brasletti

Ja klar, zum testen erst mal nen anderen Pin!
Bin nur gerade ziemlich ratlos ich versuch es schon den ganzen Tag, komm aber irgendwie nicht weiter.
Das Sensbender basiert ja auf der 64Pin Variante, kann das leider nicht eins zu eins übernehem. Um das mit MySensors zum Laufen zu bringen braucht man wahrscheinlich
eine eigen Boarddefinition basierend auf der Arduino Zero nur mit umdefinierter Pinbelegung und anderm Sercom Mux.
Ich hab da mal ein bischen angefangen, hab es aber bis jetzt nicht zum laufen bekommen.

Beim Sensbender gab es da wohl auch Anlaufschwierigkeiten ;)


Brasletti

Ich hab mal den SPI Ausgang auf dem ICSP Header versucht (mit normalen Arduino Zero Bord Definitionen). Auf diesem reagiert wenigstens mal das Funkmodul. Ich muss jetzt nur noch rausfinden wie ich über die Boarddefinitionen den anderen SPI Ausgang aktivieren kann. Ich muss auch mal die Bootloader Sourcen vom Sensbender mit denen vom Zero vergleichen. Vielleicht muss da auch was geändert werden?

Edit: Der Bootloader scheint nicht geändert werden zu müssen, er scheint im "Großen und Ganzen" dem Zero Bootloader zu entsprechen (kleinere Änderungen, die soweit ich das erkennen kann, keinen Einfluss auf den Sercom Mux in den Boarddefinitionen haben sollten).

Brasletti

Neuer Stand: senden ja, empangen nein!

Spi scheint zu laufen mit geänderter Boarddefinition. Auf Empfangen schaltet er ja mit dem Interrupt Pin um oder? Falls ja scheint es da noch ein Problem zu geben :(

Im Anhang habe ich mal meine Boarddefinition reingepackt (unter Windows nach "...\Users\"User Name"\Documents\Arduino\hardware\" entpacken).

Brasletti

So, geschafft  8) Kontakt ist hergestellt !!! War mit meinen libs in der Arduino IDE schon auf development und das GW noch auf master. Mit den im vorherigen Post angehängten Boarddefinitionen läuft das Ganze. Getestet mit dem MotionSensor sketch von unten.

@Ranseyer: Kannst es ja mal noch mit der development Version probieren. evtl bekommt das RFM69 noch zu wenig Saft ich hab das ganze mal auf nem Breadboard aufgebaut mit
separater Stromversorgung als Interrupt hab ich im Sketch Pin8. Solltest Du einen anderen Pin versuchen wollen musst du evtl. die Boarddefinitionen anpassen (varian.cpp) !

//{ PORTA,  6, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // TCC1/WO[0]
  { PORTA,  6, PIO_DIGITAL, (PIN_ATTR_DIGITAL),                          No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },

So sieht da Pin 8 aus Pin 3 und 5 sind entsprechend vorbereitet. evtl. muss auch nichts geändert werden, werd ich gleich mal ausprobieren.

Edit: Muss nichts geändert werden, wenn du einen anderen PIN nimmst!!!
Edit2: Strom reicht auch per M0_Mini per USB!

Brasletti

Welchen Pin soll ich denn jetzt als Interupt Pin nehmen?
Pin 4 schein nicht ideal. Im Samd21 Manual steht, dass PIN 4 ein NMI (Non-Maskable Interrupt) Pin sei (hab mich noch nicht näher damit beschäftigt).

Deshalb würde ich jetzt mal Pin 9 vorschlagen, der liegt auf Sercom 0 und stört deshalb nicht falls man weitere SPIs benötigt zudem liegen dann die nötigen Pins genau neben einander :) . Getestet ist er auch!

Für das nächste Layout würde ich auch den Interupt für den Max auf Pin8 verlegen oder?

Ranseyer

Hört sich doch gut an. Ich würde am Wochenende mal versuchen das nachzubauen und zu dokumentieren. 

Danke für den Einsatz!
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

ulli

Hallo zusammen,
ich bin gerade am überlegen von meinem atmega328p umzusteigen.
https://forum.fhem.de/index.php?topic=85069.msg773983#msg773983
Und bin auf diesen Thread hingewiesen worden.

Dazu habe ich zwei Fragen an euch
* woher bezieht ihr den ATSAMD21? Ich finde nirgends den Chip für einen akzeptablen Preis.
   Den Stm32f  gibt es für 2€ beim ali. Den stm32l0 finde ich wieder nirgends.
* warum nicht den stm32f103 nutzen? Das Thema Stromverbrauch sehe ich aus folgenden Gründen nicht:
   1. Ein Gateway wird von euch vermutlich eh nicht über einen Akku oder Batterien betrieben.
   2. Der Verbrauch des rfm69 ist sowieso um ein vielfaches höher als der des Controllers
   3. Der stm32 ist um ein vielfaches schneller und damit arbeitet er die Befehle schneller ab und ist damit schneller wieder im deep sleep mode
* der Funktionsumfang ist beim stm32 doch größer als beim ATSAMD

Gerne beteilige ich mich ggf. an der Entwicklung, ich kenne den rfm69 schon sehr gut.

Hier noch ein interessantes Board. Das mit nem rfm69hw, da will ich evtl hin.
http://flabbergast.github.io

Viele Grüße,
   Ulli

Brasletti

Hier gibt es den SAMD21 zu einem akzeptablen Preis.
https://de.aliexpress.com/item/ATSAMD21G18A-AU-ATSAMD21-G18A-U/32836378682.html

MySensors unterstütze den SAMD21 bereits in der letzten Version durch das Sensbender, deshalb bin ich davon ausgegangen dass es erst mal leichter ist mysensors auf diesem uC zum laufen zu bringen. Zwischenzeitlich wird der STM32 auch von mySensors in der Development Branch unterstützt. Vom Speicher her ist der SAMD21 etwas besser bestückt aber sonst hast du recht der STM32 ist auch sehr attraktiv.
Hier https://forum.fhem.de/index.php/topic,81944.0.html wird parallel am STM32 gewerkelt ;)

Viele Grüße

Ranseyer

ZitatHier https://forum.fhem.de/index.php/topic,81944.0.html wird parallel am STM32 gewerkelt

Das stimmt. Als RS485 Gateway läuft es bisher absolut zufriedenstellend. RFM69 habe ich etwas nach hinten geschoben, weil ich nicht sofort die Pin-Definition verstanden hatte.
Wer sich da einbringen möchte kann gerne 1-2 Platinen haben. Das sollten wir dann aber per PN oder im anderen Thread besprechen.

PS: Ich habe schon einige der MAPLEs verbaut und finde die sehr gut. Aber das SAMD-Board von WeMos finde ich fast schicker. Das ist nur auf einer Seite bestückt und absolut geschmeidig beim flashen. (Den MAPLE kann man mit der Arduino IDE erst mal gar nicht flashen, man muss erst ein bisschen frickeln bis der erste Sketch darauf läuft und dann ist es meist auch easy, aber nicht ganz so schnell wie beim SAMD)
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!