https://github.com/OH1GIU-P/arduino-cc1120
CC1120 partnumber is 0x48.
SPI.begin/endTransaction removed. Write config register and read extended register.
void setup() {
Serial.begin(9600);
pinMode(RESET_PIN, OUTPUT);
pinMode(SS_PIN, OUTPUT);
digitalWrite(SS_PIN, HIGH);
digitalWrite(RESET_PIN, HIGH);
SPI.begin();
strobeSPI(SNOP);
printStatus();
uint8_t v = readSPI(CHAN_BW);
Serial.print(F("CHAN_BW "));
Serial.println(v, HEX);
writeSPI(CHAN_BW, 0x18);
v = readSPI(CHAN_BW);
Serial.print(F("CHAN_BW "));
Serial.println(v, HEX);
v = readExtAddrSPI(PARTVERSION);
Serial.print(F("PARTVERSION "));
Serial.println(v, HEX);
v = readExtAddrSPI(PARTNUMBER);
Serial.print(F("PARTNUMBER "));
Serial.println(v, HEX);
}
void writeSPI(uint8_t addr, uint8_t value) {
digitalWrite(SS_PIN, LOW);
ccstatus.v = SPI.transfer(addr);
ccstatus.v = SPI.transfer(value);
digitalWrite(SS_PIN, HIGH);
}
uint8_t readExtAddrSPI(uint8_t addr) {
uint8_t v;
digitalWrite(SS_PIN, LOW);
ccstatus.v = SPI.transfer(R_BIT | EXT_ADDR);
SPI.transfer(addr);
v = SPI.transfer(0xff);
digitalWrite(SS_PIN, HIGH);
return v;
}
Write extended register
v = readExtAddrSPI(FREQ1);
Serial.print(F("FREQ1 "));
Serial.println(v, HEX);
writeExtAddrSPI(FREQ1, 0x16);
v = readExtAddrSPI(FREQ1);
Serial.print(F("FREQ1 "));
Serial.println(v, HEX);
void writeExtAddrSPI(uint8_t addr, uint8_t value) {
digitalWrite(SS_PIN, LOW);
ccstatus.v = SPI.transfer(EXT_ADDR);
ccstatus.v = SPI.transfer(addr);
ccstatus.v = SPI.transfer(value);
digitalWrite(SS_PIN, HIGH);
}
Kommentit
Tämän blogin kommentit tarkistetaan ennen julkaisua.