mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit CC2420 und MSP430


Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will mit der AppNote von TI (RF Blinking LED) den CC2420 ansteuern.

Allerdings kann ich nichts aus dem Chip auslesen. Die Software bleibt in 
folgender Routine hängen.
void halRfWaitForCrystalOscillator(void)
{
    UINT8 spiStatusByte;

    // Poll the SPI status byte until the crystal oscillator is stable
    do {
      DISABLE_GLOBAL_INT();
        FASTSPI_UPD_STATUS(spiStatusByte);
      ENABLE_GLOBAL_INT();
    } while (!(spiStatusByte & (BM(CC2420_XOSC16M_STABLE))));

} // halRfWaitForCrystalOscillator


Jemand eine Idee?

Grüsse
John

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der 16MHz Quarz denn richtig angeschlosse? Quarze dran? 
Spannungsregler der CC2420 aktiviert? Liegen die 1,8V an? Nutzt du ein 
Evaluation Board oder ein selbst gemachtes?

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, am CC2420 sollte es nicht liegen. Ist ein Eval-Board.
Die 1.8V liegen auch an.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist die SPI Kommunikation noch nicht richtig. Hast du das 
Header-File entsprechend angepasst?

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich auch vermutet. Den Header hab ich angepasst. Bin aber nicht 
sicher ob alles richtig ist. Auf der Clock Leitung kommen immer kurze 
Strobes raus (100kHz).

Auf der MOSI Leitung kommt eine konstante Frequenz von 5kHz raus.

Hier die SPI init. Habe eigentlich nur nur die Ports geändert. Und den 
UART von 1 auf 0.
void halSpiInit(void)
{  
  U0CTL  = CHAR + SYNC + MM + SWRST;  // SW  reset, 8-bit transfer, SPI master
  U0TCTL = CKPH + SSEL1 + STC;      // Data on Rising Edge, SMCLK, 3-wire

  U0BR0  = 0x02;                   // SPICLK set baud
  U0BR1  = 0;                         // Dont need baud rate control register 2 - clear it
  U0MCTL = 0;                       // Dont need modulation control

  P3SEL= BIT3;        // Select Peripheral functionality (SPI clock)
        P2SEL= BIT4+BIT5;                       // Select Peripheral functionality (SI,SO)
  P2DIR= BIT4+BIT6;          // Configure as outputs(SIMO,CSn)
        P3DIR= BIT3;  
  
  ME1   |= USPIE0;                // Module enable
  U0CTL &= ~SWRST;                  // Remove RESET
} // SpiInit

Auch bei den restlichen Initialisierungen hab ich eigentlich nur die 
Ports geändert.

VREG_EN/RESET/FIFO/FIFO_P hab ich von Port 2 auf Port 1 geändert (Der 
hat ja auch einen External Interrupt).

Grüsse John

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für einen MSP verwendest du denn genau?

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MSP430FG439

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...so ein neuer, na gut, da ist alles bissl anders. Sicher, dass die 
USART da genauso angesprochen wird? Hat der nicht schon diese USCI drin?

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne die alten leider nicht.

USCI ist so ein zusätzliches Modul welches als USART, SPI oder I2C 
konfiguriert werden kann. Die bisherigen USART register sind aber immer 
noch vorhanden.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, da weiß ich nicht so genau. Da musst du eben debuggen. Mal die SPI 
Routine anschauen, ob die wirklich 100% kompatibel zum neuen USCI Modul 
ist.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo danke... Dann wer ich mal schauen.

Kannst du sagen ob diese 100kHz Clock Strobes welche in der "void 
halRfWaitForCrystalOscillator(void)" rauskommen ok sind? Bei der MOSI 
Leitung müsste doch die Adresse anliegen welche den Status des CC2420 
abfragt... ist das richtig so?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also 100kHz klingt bissl wenig. Mit welcher Taktfrequenz läuft denn dein 
MSP430? Die Funktion schickt ja ständig ein oder 2 Byte an den CC2420, 
die solltest du auf MOSI sehen können. Falls der CC antwortet, solltest 
du das auf SOMI sehen.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt hab ich mal im datenblatt geschaut. Du musst die SPI 
Schnittstelle schon richtig beschalten. USART0 im SPI Mster Modus ist 
P3.1 bis P3.3
Du hast P2.4 und 2.5 genommen, das ist aber im UART Modus.

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.