Hi, keine Ahnung ob ich jetzt im richtigen Forum bin, ansonsten bitte wenn es geht verschieben. Danke liebe Moderatoren. So nun zu meinem Problem. Ich habe zwei atmega128RFA1, die ich inzwischen Programmieren und bearbeiten kann. Dabei handelt es sich ja bekanntlich um Single-Chips-Solutions für IEEE 802.15.4. Nun habe ich mir in meiner Naivität vorgestellt, dass ich mir die Lightweight Mesh Tutorials von Atmel runterlade, die Examples ansehe, die Doku lese und dann in der Lage bin diese beiden Chips miteinander kommunizieren zu lassen. Tja wie soll ich sagen, bin ich nicht. Die Examples sind auf Grund der Komplexität der Api für mich nur schwer nachzuvollziehen und die Dokus sind meines Erachtens ein Witz. Diese beschreiben auch nur die Funktionsnamen, aber nicht wirklich den sinnvollen Einsatz. Aber das ist jetzt eigentlich auch egal, warum ich mich nun hier an euch wende, ist ganz einfach. Hat schon jemand Erfahrung mit dem Lightweight Mesh gesammelt und kann mir vielleicht einen kleinen Tipp geben, wie da ein Programm aussehen sollte? Ich doktore momentan an dem Peer2Peer-Example rum. Meines Erachtens müsste ich das auf beide Chips drauf spielen, dabei den Parameter "APP_ADDR" pro Gerät um 1 verändern und dann müssten doch eigentlich die beiden Geräte sich pairen, oder? Wie sende ich dann etwas hin und her? Die Funktion fehlt mir irgendwie, bzw. wie ich die dann verwende. Das nächste was mir fehlt, ist wo kommen empfangene Pakete denn an? Aber alles zu seiner Zeit. Bisher pairen sich die Chips nicht mal und ich habe nicht den leisesten Plan warum nicht, bzw. was ich noch tun muss, damit etwas passiert. Sollte mir also jemand helfen können, oder einen Link zu einer Quelle haben, die mir da helfen kann, dann wäre ich zutiefst dankbar. Vielen Dank Ganz viele Grüße Florian
der Fehler liegt in deinem Code, und den kennst nur du und willst ihn nicht zeigen.
Hi, das Problem ist ja, dass ICH keinen Code habe. Ich nehme das Atmel Lightweight Mesh Tutorial "Peer2Peer". So wie es aus der Library von Atmel kommt. Das sind endlos viele Dateien und mega viel Script. Ich denke, dass es wenig Sinn macht den hier zu posten. Ich habe auch nicht gesagt, dass der nicht funktioniert, ich sagte ich kapiere den nicht und würde dafür etwas Anleitung benötigen. Wofür soll ich da jetzt Script posten? Derjenige, der mir helfen kann den Script zu kapieren, da er ihn selber schon mal benutzt hat, hat den theoretisch ja dann eh vorliegen Aber danke für die Antwort VG Florian
Hast Du ein eigenes Board entwickelt? Hast Du die Fuses richtig gesetzt (so wie es im User guide beschrieben wird)? Hast Du jedem Device eine eigene ID vergeben? Der LWMS von Atmel ist super einfach, ich hab mir drei ATmega256RFR2 Xplain pro boards geholt und das Mesh network wird mir schön ´über das WSNDemo am PC visuell angezeigt.
Hi, ich habe ein eigenes Board entwickelt. Inzwischen habe ich es hinbekommen. die größten Probleme hatte ich in dem korrekten einsetzen der Send-Adress-Parameter. Alle Demos die dabei waren konnte ich nur begrenzt benutzen, da ich ja wie gesagt ein eigenes Board habe. Aber jetzt läuft alles ganz gut. Vor allem hatte ich es eigentlich leicht, da ich nur 2 Nodes haben will. Quasi einen Sender und einen Empfänger (Fernsteuerungsmäßig). Aber danke für deine konstruktive Antwort. Viele Grüße Florian
Hallo Florian, ich arbeite mich derzeit auch in das Thema ein. Kannst du vielleicht noch ein zwei Sätze zu deiner Lösung sagen? Was waren das denn für Parameter die du setzen musstest? Hast du weiterhin das Peer2peer template verwendet oder was eigenes programmiert. Mit freundlichen Grüßen Sebastian
Hi, ich habe das Template - Template verwendet und mal alles anhand des UserGuide Zeile für Zeile selber reingeschrieben. Am meisten Probleme hatte ich damit die Adressierung passend zu machen. Es gibt da 5 wichtige Parameter (ich bin gerade in der Arbeit und habe daher den Code nicht da, ich versuche aber die richtigen Namen mich zu erinnern): srcAddy dstAddy srcMac DstMac networkNumber (<- boah ich krieg den Namen gerade gar nicht mehr zusammen, aber das ist der Parameter, der quasi das Netzwerk einheitlich macht. Der war aber leicht zu finden) In der config.h waren 4 der 5 Parameter enthalten. Der letzte wurde dann bei der Sende-Routine direkt angegeben. Ich habe den mal auch extrahiert. Da ich kein Netzwerk, sondern nur 2 Nodes hatte, tat ich mich relativ leicht, da ich dann einfach so lange die src und dst Adresse ausprobiert habe bis es klappte. Also mit 1 und 2. Ich kann dir leider nur auswendig das Ergebnis nicht sagen, aber ich schaue heute Abend nach und poste es dann. Effektiv war es eigentlich nicht schwer, wie gesagt, diese Parameter müssen halt stimmen. Ich habe mir das etwas vereinfacht, um zu sehen ob es stimmt. Ich habe eine LED an meinem Board angeschaltet, wenn ich versendet habe und wenn ein ACK zurückkam (kommt automatisch durch die API) habe ich die LED wieder ausgeschaltet. Sollte eine nicht erfolgreiche Rückmeldung kommen, lasse ich die LED blinken. So ging es relativ gut. Ich melde mich heute Abend. Viel Erfolg schonmal
Hallo, also ich habe es jetzt mit der peer2peer Vorlage gemacht. Als Hardware habe ich von Dresden Elektronik das deRFmega128 (22A00). Das ging auch erstmal sehr einfach. Man muss in der Vorlage nur die config.h anpassen und ggf. die HAL_UartInit(38400), falls man eine andere Baudrate möchte. Meine config.h sieht wie folgt aus:
1 | #ifndef _CONFIG_H_
|
2 | #define _CONFIG_H_
|
3 | |
4 | |
5 | //---mydefines--------------------------------------------------------------
|
6 | #define D0TOGGLE (PORTE ^= (1 << PE5))
|
7 | #define D0ON (PORTE |= (1 << PE5))
|
8 | #define D0OFF (PORTE &= ~(1 << PE5))
|
9 | |
10 | /*- Definitions ------------------------------------------------------------*/
|
11 | #define APP_ADDR 0x8000
|
12 | #define APP_PANID 0x4567
|
13 | #define APP_ENDPOINT 1
|
14 | #define APP_SECURITY_KEY "TestSecurityKey0"
|
15 | #define APP_FLUSH_TIMER_INTERVAL 20
|
16 | |
17 | #ifdef PHY_AT86RF212
|
18 | #define APP_CHANNEL 0x01
|
19 | #define APP_BAND 0x00
|
20 | #define APP_MODULATION 0x24
|
21 | #else
|
22 | #define APP_CHANNEL 0x0f
|
23 | #endif
|
24 | |
25 | #define HAL_UART_CHANNEL 1
|
26 | #define HAL_UART_RX_FIFO_SIZE 200
|
27 | #define HAL_UART_TX_FIFO_SIZE 200
|
28 | |
29 | #define SYS_SECURITY_MODE 0
|
30 | |
31 | #define NWK_BUFFERS_AMOUNT 3
|
32 | #define NWK_DUPLICATE_REJECTION_TABLE_SIZE 10
|
33 | #define NWK_DUPLICATE_REJECTION_TTL 3000 // ms
|
34 | #define NWK_ROUTE_TABLE_SIZE 100
|
35 | #define NWK_ROUTE_DEFAULT_SCORE 3
|
36 | #define NWK_ACK_WAIT_TIME 1000 // ms
|
37 | |
38 | #define NWK_ENABLE_ROUTING
|
39 | //#define NWK_ENABLE_SECURITY
|
40 | |
41 | #endif // _CONFIG_H_
|
Das sind in allen Modulen nur die APP_ADDR. Ich habe jeweils verschiedene. Bin mir aber nicht sicher, ob das nötig ist. Alles andere passt schon. Dann aufspielen und schon hat man eine WirelessUART mit dem Modul. So jetzt versuche ich das nochmal mit dem template-Template. Gruß Sebastian
Hi Zusammen, kann mir jemand verraten, ob bei dem Atmel Mesh Netzwerk die "routing-nodes" keinerlei Daten senden können (zb Sensordaten), sondern ausschließlich auf "Durchzug" geschaltet sind? So verstehe ich Seite 4 (unterer Absatz) und Seite 5 (Skizze) Die Skizze erinnert mich an mehrere p2p-Verbindungen und jede Menge RangeExtender um die Reichweite zu bekommen. Aber bei Mesh Netzwerken kann doch JEDER Teilnehmer adressiert Daten verschicken und die Datenpakete sollten doch solange "geroutet" werden, bis die Daten beim adressierten Teilnehmer ankommen? Egal ob es ein Routing node oder ein non-Routing node ist? Kann mir einer bestätigen, dass bei einem Atmel LWMesh JEDER Teilnehmer (routing und non-Routing) in der Lage ist Daten rauszuschicken? Besten Dank und Gruß Andy
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.