www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CCA mit dem CC2420


Autor: Christoph M. (ruuby)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich benutze den Chipcon CC2420 Transceiver Chip. Pakete zu senden 
funktioniert einwandfrei, wenn ich den Commandstrobe STXON benutze. Um 
Kollisionen zu vermeiden möchte ich jedoch nur senden wenn der Kanal 
auch wirklich frei ist. Habe hierzu folgen Beispielcode gefunden:

// TX begins after the CCA check has passed
do {
  FASTSPI_STROBE(CC2420_STXONCCA);
  FASTSPI_UPD_STATUS(spiStatusByte);
  halWait(1);
} while (!(spiStatusByte & BM(CC2420_TX_ACTIVE)));

Mein Problem ist jedoch, dass das Status Byte welches bei absetzen des 
Kommandstrobes zurückgeliefert wird, immer auf 0x40 steht und ich daher 
nie aus der Schleife aussteigen kann.

Danke für Hilfe!

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...hast du den Receiver vorher angeschaltet? Ich benutze auch den 
CC2420 mit dem MSP430 zusammen. Da gibts bei TI den MAC-Layer kostenlos 
für MSP430 und Atmel.

Kannst dir das dort ja mal angucken. Übrigens ist das CCA ganz schöner 
Mist, ist zwar laut 802.15.4 Standard so vorgesehn, aber sobald da eine 
Störquelle (Bluetooth argh) in der Nähe ist, bekommst du deine 
nachricht nie los.

Ich hab daher das Senden etwas abgewandelt: Der erste Versuch wird mit 
STXONCCA gemacht, wenn kein Ack kommt bis zu 256 weitere Versuche mit 
STXON. Und dazwischen immer ca 30ms Pause. Somit hab ich die ganze 
Geschichte resistent gegen BT hinbekommen. Wenn ich mein Handy direkt 
neben die Antenne lege, und BT-Geräte suche, geht zwar die 
Übertragungsrate in die Knie (von ca 10kByte/s auf manchmal 1,5kByte/s), 
aber es werden alle Pakete fehlerfrei übertragen.

BT wechselt so schnell den Kanal, dass man im ungünstigsten Fall nie das 
CCA bekommt, weil immer wenn der Transceiver wieder nachguckt, BT gerade 
wieder in der Nähe ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.