Arduino Asksin library

Begonnen von trilu, 06 August 2013, 10:02:17

Vorheriges Thema - Nächstes Thema

Dirk

Pünktlich zum Wochenende sind auch meine Module gekommen.
Ich werde am Wochenende auch mal ein Reichweitentest machen.

Gruß
Dirk

Dirk

Hallo,

ZitatIch werde am Wochenende auch mal ein Reichweitentest machen.
Hier die Ergebnisse meines Tests durch ein Paar Wände/Türen zwischen einem HM-LAN und einem HM_HM_LC_SW1_BA_PCB:

HMLAN_RSSI -59: ELV TRX868
HMLAN_RSSI -56: China CC1101-Modul (886Mhz Version)
HMLAN_RSSI -80: China CC1101-Modul (433Mhz Version)

Zum Einsatz kam jeweils eine Drahantenne in identischer Länge wie am ELV TRX868-Modul

Gruß
Dirk

trilu

Danke! Das bestätigt meinen ersten Eindruck.
Die Werte des 433 Moduls kommen sicherlich von dem RC Setup auf 433...
Unterm Strich heissen die Werte, die China Module sind mindestens so gut wie die TRX Module. Bleibt abzuwarten wie sich die fehlende Abschirmung auswirkt.
Viele Gruesse
Horst

Dirk

#378
ZitatDie Werte des 433 Moduls kommen sicherlich von dem RC Setup auf 433...
Ja, das "Netzwerk" aus Balun, Spulen und Kondensatoren ist hier auf 433Mhz abgestimmt. Daher der viel schlechtere Wert beim 433Mhz Modul.
Davon bin ich aber ausgegangen. Das Modul hatte ich nur als Vergleich genommen.

Gruß
Dirk

Update:
Die Platinen haben ja gar kein Balun. Da hatte ich im Schaltplan vom CUL gespickt.
Die Antennenanpassung ist hier diskret aus Kondensatoren und Spulen aufgebaut.

xequtor

#379
Zitat von: PeterS am 04 Dezember 2013, 21:09:33
Hallo Zusammen

Da meine Kombination Arduino Nano (5V-16MHz)+CC1101 von ELV immer noch Probleme beim Pairing macht, überlege ich mir welche weitere Kombination sinnvoll wären.
Der Vorteil des Nanos ist die Programmierung und Spannungsversorgung via USB. Für Tests habe ich mir mal einen anderen Level Converter (5-3,3 V) bestellt.
...

wie verbindest Du deinen Level Converter (5-3,3 V) ?
Ich hab paar Konverter aber bin nicht sicher welche Pins wo gehen sollen  CC1100 <-> Level Converter <-> Arduino
2x RPi FHEM + CUL

trilu

Die Levelkonverter gehören zwischen die Pins
Miso, Mosi, Sck, Cs, GDO0
Input von AVR gesehen: Miso, GDO0
Output von AVR gesehen: Mosi, Sck, CS

Ein weiteres Problem könnten die 16 MHz Takt sein, die Beeinflussen direkt den SPI Takt.
Eine Lösung könnte sein den Taktteiler anzupassen

Viele Grüsse
Horst

xequtor

Zitat von: trilu am 08 Dezember 2013, 08:23:03
...
Ein weiteres Problem könnten die 16 MHz Takt sein, die Beeinflussen direkt den SPI Takt.
Eine Lösung könnte sein den Taktteiler anzupassen

Viele Grüsse
Horst

ich hab hier paar ATmega32U4 8Mhz Development Boards soll also kein Problem sein.

Du schreibst output MOSI, SCK,CS aber input MISO,GDO0 (welches ist cc1100 und arduino?) also mit einem Levelkonverter mit 2in 2out pins komme nicht weiter oder?

2x RPi FHEM + CUL

trilu

Input, output ist gesehen vom arduino.
Ich wuerde den level konverter zumindest fuer miso, mosi und sck verwenden. Gdo0 und cs gehen auch ueber widerstände.
Es geht ja hier nur um logik signale. Nimm 1k und pack sie dazwischen...

Dirk

#383
Mit welcher Frequenz kommen die Daten denn aus den Pins?
Wenn die nicht zu hoch ist, sollte auch ein Levelconverter aus einem einfachen Spannungsteiler ausreichen (2 Widerstände).
Mit meinem 5V - ISP-Programmer z.B. Programmier ich auch 3,3 V AVR's mit einfachen Spannungsteiler ohne Probleme.

Den Levelconverter braucht es auch nur für die Signale die zum CC1101 verlaufen, wie trilu bereits sagte (SI, SCLK, CSN)
Signale zum Arduino können direkt verbunden werden. Die AVR's erkennen 3V auch als High.

Übrigens teste ich derzeit (mangels Alternativen) mit einem 5V/16Mhz Arduino, welcher allerdings nur mit 3V Läuft. (2 AAA-Zellen direkt an VCC) Das Funktioniert bisher prima.

Gruß
Dirk

Update:
Aus: http://www.mikrocontroller.net/articles/Pegelwandler#5_V_.E2.87.94_3.2C3_V
(http://www.mikrocontroller.net/wikifiles/6/64/Pw_st_5-3.png)
Spannungsteiler mit 680 Ω und 1 kΩ. Der Nachteil dieser Lösung ist der relativ hohe Stromverbrauch (~3mA), der relativ geringe Ausgangsstrom (mehr als 200..300 µA sollte man da nicht rausziehen) und die relativ geringe Geschwindigkeit (ca. 10 MHz).

trilu

@Dirk - soweit ich weiss, hat der 328 auch einen internen Clock Generator. Den müsstest du per Fuse einschalten koennen. Damit koenntest du den 16MHz AVR auf die 8 MHz bringen. Was dann wieder zu den 3Volt passen wuerde.

Ich werde heute Nachmittag mal schauen auf welchen Takt der SPI gesetzt ist...

Dirk

Aktuell läuft das Ganze ja erstmal.
Ich hatte im Datenblatt auch mal nach dem Diagramm Versorgungsspannung / Takt welches ich von anderen AVR-Typen kenne gesucht, aber irgendwie nicht gefunden. Daher nehme ich mal an dass die 16 Mhz über den gesamten Versorgungsspannungsbereich funktionieren.

8 Mhz Arduinos für die Zielsysteme sind aber auch noch unterwegs.

trilu

Zum testen spielt das bestimmt auch keine grosse rolle. Bei produktiv einsatz waere ich vorsichtiger...
Mehr frequenz heisst mehr verlust, deshalb mehr spannung...
http://i.stack.imgur.com/98hvi.jpg
Ich glaube du suchst diese grafik  8)

trilu

es gibt ein neues update zum 6 tasten switch sketch auf der ersten seite.
der power saving mode funktioniert jetzt wie erwartet, stromverbrauch im power mode 3 und 4 ist kleiner 1ua.
also nicht mehr messbar mit meinem messgerät. damit könnte man den switch mit einem satz batterien so lange betreiben, wie
die selbstentladungsrate der batterien her gibt...

Dirk

Zitathttp://i.stack.imgur.com/98hvi.jpg
Ich glaube du suchst diese grafik 
Das ist korrekt.

Zitatstromverbrauch im power mode 3 und 4 ist kleiner 1ua.
Das klingt ja super. Danke für deine Arbeit.
Dann kann ich meine FS20-Selbstbautaster ja nun langsam auf HM umrüsten. :)

Gruß
Dirk

trilu

#389
@dirk

gerne doch - bitte teste aber auch noch mal die funktionalität. ich habe meinen selbstbautaster derzeit mit einem dimmer gepeert und das funktioniert einwandfrei. ich habe noch nicht getestet wie es sich mit mehreren peers verhält...

zum thema spi-takt, ich initialisiere derzeit den spi wie folgt
SPCR = _BV(SPE) | _BV(MSTR);                                    // SPI speed = CLK/4

_BV(SPE) - enables spi device
_BV(MSTR) - configure SPI device as a master


SPI2X SPR1 SPR0 SCK Frequenz
0 0 0 fOSC/4
0 0 1 fOSC/16
0 1 0 fOSC/64
0 1 1 fOSC/128
1 0 0 fOSC/2
1 0 1 fOSC/8
1 1 0 fOSC/32
1 1 1 fOSC/64


d.h. ich initzialisiere den spi port mit clk/4
wenn ihr jetzt einen arduino mit 16mhz habt, würde es sinn machen den port mit clk/8 zu initialisieren.
also folgende zeile in asksin.cpp/cc:init zu verwenden:

SPCR = _BV(SPE) | _BV(MSTR) | _BV(SPI2X) | _BV(SPR0);

update: gerade noch mal den stromverbrauch mit arduino pro mini und funkmodul getestet, hier sind es ~30uA mit still gelegter power led. der mehrverbrauch liegt vermutlich am nicht stillgelegtem power regler...

viele grüsse
horst