helft mir bitte weiter
helft mir bitte weiter
Ja, so ist es.Zitat von _R2D2
Genau. Umgekehrte LogikMüsste man dann nicht vor dem Senden eines Befehls den Port deaktivieren?Ein "LOW" aktiviert, ein "HIGH" deaktiviert. Ist bei SPI so üblich.
Nein, zumindest das timing diagramm ist OK.Oder ist im Datenblatt ein Fehler
Im Prinzip musst du ein SPI-Bus im Programm schreiben. Also etwa in dieser Reihenfolge:
1.) Cable-Select auf low
2.) Ausgangspin (MOSI) setzen
3.) Clock setzen
4.) Eingangspin (MISO)einlesen
5.) Clock setzen
6.) Zurück zu 2.) (Bei 8-Bit Befehlen 8 mal)
7.) Cable-Select auf high
Timing habe ich jetzt mal rausgelassen, steht aber im weiter oben aufgeführtem Link.
Ich habe irgendwo im Internet einen C Code für die Module gefunden. Hier ist mal die Init-Funktion:
Müsste ich dann diese Zeile jetzt umändern, weil CS da ja aktiviert wird?Code:void rf12_init(void) { RF_DDR=(1<<SDI)|(1<<SCK)|(1<<CS); RF_PORT=(1<<CS); for (unsigned char i=0; i<10; i++) _delay_ms(10); // wait until POR done rf12_trans(0xC0E0); // AVR CLK: 10MHz rf12_trans(0x80D7); // Enable FIFO rf12_trans(0xC2AB); // Data Filter: internal rf12_trans(0xCA81); // Set FIFO mode rf12_trans(0xE000); // disable wakeuptimer rf12_trans(0xC800); // disable low duty cycle rf12_trans(0xC4F7); // AFC settings: autotuning: -10kHz...+7,5kHz }
RF_PORT=(1<<CS);
mfg
Ich habe noch eine Frage:
Ich habe mal gelesen, dass man bei dem RFM12 Modul die Pin FSK/DATA/nFFS über einen Widerstand mit ca. 10kOhm mit VDD verbinden soll.
Muss man bei dem RFM01 Modul die Pin DATA/nFFS auch mit VDD verbinden?
Danke für eure Hilfe
mfg _R2D2
Kann mir denn niemand weiter helfen???![]()
Lesezeichen