From e63657fb26aade3486fd671e344d72e0bf2312d6 Mon Sep 17 00:00:00 2001 From: Manfred Steiner Date: Sun, 11 Aug 2024 19:07:57 +0200 Subject: [PATCH] Test-Software Unit CC1101New ... --- .../cc1101/osci/cc1101_01a_reset-1.png | Bin 0 -> 25854 bytes .../cc1101/osci/cc1101_01b_reset-2.png | Bin 0 -> 26911 bytes .../cc1101/osci/cc1101_01c_reset-3.png | Bin 0 -> 26976 bytes .../cc1101/osci/cc1101_02a_init-register-1 | 5 + .../osci/cc1101_02a_init-register-1.png | Bin 0 -> 30774 bytes .../test_2024-07-23/.vscode/settings.json | 3 + software/nano-644/test_2024-07-23/Makefile | 28 ++- .../nano-644/test_2024-07-23/src/main.cpp | 5 +- .../test_2024-07-23/src/units/cc1101.cpp | 28 +-- .../test_2024-07-23/src/units/cc1101.hpp | 2 +- .../test_2024-07-23/src/units/cc1101new.cpp | 233 ++++++++++++++++++ .../test_2024-07-23/src/units/cc1101new.hpp | 119 +++++++++ 12 files changed, 403 insertions(+), 20 deletions(-) create mode 100644 docs/v1a/messung/cc1101/osci/cc1101_01a_reset-1.png create mode 100644 docs/v1a/messung/cc1101/osci/cc1101_01b_reset-2.png create mode 100644 docs/v1a/messung/cc1101/osci/cc1101_01c_reset-3.png create mode 100644 docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1 create mode 100644 docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1.png create mode 100644 software/nano-644/test_2024-07-23/src/units/cc1101new.cpp create mode 100644 software/nano-644/test_2024-07-23/src/units/cc1101new.hpp diff --git a/docs/v1a/messung/cc1101/osci/cc1101_01a_reset-1.png b/docs/v1a/messung/cc1101/osci/cc1101_01a_reset-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca20f207a3eea6cf63a27b97cb66485cb81846a GIT binary patch literal 25854 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 H_{RPZce=?$ literal 0 HcmV?d00001 diff --git a/docs/v1a/messung/cc1101/osci/cc1101_01c_reset-3.png b/docs/v1a/messung/cc1101/osci/cc1101_01c_reset-3.png new file mode 100644 index 0000000000000000000000000000000000000000..5047c30ff991fde3c2fe3c5768e6929c401d8961 GIT binary patch literal 26976 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 HK literal 0 HcmV?d00001 diff --git a/docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1 b/docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1 new file mode 100644 index 0000000..d4bc9c2 --- /dev/null +++ b/docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1 @@ -0,0 +1,5 @@ + +[writeRegister(0x00, 0x29)]: IOCFG2 +[writeRegister(0x01, 0x2e)]: IOCFG1 +[writeRegister(0x02, 0x3e)]: IOCFG0: 0x3F (default) -> 0x3E => CLK_XOSC/192 -> CLK_XOSC/128 +[writeRegister(0x03, 0x47)] FIFTHR; FIFO_THR=7 -> Threshold: TX-FIFO: 33 Bytes, RX_FIFO: 32 Bytes diff --git a/docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1.png b/docs/v1a/messung/cc1101/osci/cc1101_02a_init-register-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f21b6afdfc7c53b7fe9c4f56a7281aa9b3bc7425 GIT binary patch literal 30774 zcmdRWcRZEtAAf^mlf5IWjF7#h>>Um#87HGMvV|j*Q&~}VR#qYNpt9-MBeGXUh-}%( z`dtV0^o*YG^LqVWzdwHU2e0G4ulpLG>vO%|@6Y=_0os~MMEG?0$BrE%Qc;%IId<$M z^RZ*cKjEGLpLAM2PXRy9xG2C}E<0IXcd@d!W7e~}ZFx+9|ANSQe!=tn!ps*$B?QDI z`1$#6+w~qh=GLwvFQ?~jGGD>>jIAharmeP_%pUYB66@#e4=F5|ypU0j>BoH6R{BrNiJNUsbj|mB>Fdw{Y z{M!e%gK)2%Z_8yxqpep*yuS$Dx{kRJCiGDl#^kg2ZE?7)CcS2PdY{WrmEnn7B|yVMjI_0UyLSPo~YklNo{#QTT)WusOv21 zc5ri#{{lVr2l+eAqm8X293NztZ=|Ghbd)yhw$qh~;sk4+tm!ytg8Q9&u48FBv)I<2 zz-o`I&dz4h@SNN5vP;k8u##->*9~>6va07>Eqz~%OZ-2^5y(h=Z>pWyTuj`b-TPjY zZbBTrv+F4X!%Qt({Yi^&A9S;2wA;(J);D z7kq7}7R?fFzr+Uuipz_YG^s`#h@vEpdgtL7t<9ODu8G7arIO4;pNlzDO7Jx+t2pu_ zRaQ5bOiIPVUyw7zeH+J7?2JY2TeQ^Y4SDZ7`xJ;kIYc8!(samx!{ zKhrkXf!U3BIc>(flXF>&r5p`DxGn2Nq6TyfI>?W!Mf(zNj=7rn@Fy>^i+7T&!o{vR zm-0%AGWx>XZHT7WV$1cpI^mOpl?pqn)qSQcq`+|aswD`gsrLmKadE2{pXR(9x8+u%Zn2q-C) zTU0xb!11dOX0Cm|L?yg<{ta5flP5B56OYSWsxLuoc+gOqmgghh@W6bBrZ^X46MKi~ zTW7{GcY8J>jWn?G!U4)OJTu;8_9(G$iR0Td=){2%#?syL?;DdrtFmhz0w3<@3liWf zJA88~-rs%hQ6R%IPO3glgup}JP5-PAiSqi4XYv?!F6Bv3lDdJ5ZniKD!^3SG@_~o- z_=>(7Gl9|X=c6&BKlCKN~tm<T(I)^9V}5?jEv9T%SR1)1+?rn zX|l6!hTgnFyOu;yk8~YohviYl2YG@py_CMav|mh<{hquO(^r0-9nKEpdA8D)GcYQd!OJET{g`~(W_Gbs!-$42Cp=$5=VorjCSbrnRZXAUJ9v`;XB8SURYSDVIm2; zN3N5D<_&-&5+CSRXTDfSReHo*9Vb0KvC{v_(?qfOIc{eX!}1+vQoiYBhubXl4bCIy zx+qs*i(U2?Y2UyWD{C#a?r<@B@Jj{F*PiA?!%=D|6LI$|YhJv|Zs$VsAR(pCW*UyE z4!~v^2}NMp4}Yq-O;S%rCS?+*Jgcm5c8-HD#dAj4&i8@V{VbpTyrtu?bHl5$3*}{e z%HvG&7U`X#4V5=T8B4DrH*M#|lghB>Rw3qitSh%9`;4bu!qFgrg9eO0vR+EBTS0~j zka<;bl+e!CRlDf&9n5k1Rr>6*In$6+JEe&B(Z-~`OObb<)S0MyH|@$^Hg$572_R?K ze8gAMUqWV{?^~S(hr)=g7`xV;S%j`4 zZpDWa-}H$_3cp*O%C4PVg}5f*D?M609EvRML3j^f7GI23|0C}TIOmQKev%&poNoIED{=Ef{1|E52QnXz9mde)>kU;EqZ6=twyY$C6u~WZC7M z6;YY_T%ss?W$(Eb*R3yAZFsq<^DO)NPi!K6o;EBDZJp;-*;maeyRj$qN-yPu_VKd0 zYPp0{^X#lqrG4DW^Tp*MhzOXx&!AhFKKDyVUrvs~3v{P$5gK>j|LK&{2N)}<{%NoT zQSq^jTbr|boyKM{uDvNe{oO)t#>a03-1_*QW~l7F z*IW^pooS9y5#uG&cUy*yn4XRhYj{gNdNK&_sk4zRAi~B_x9P|+Q_IJd}B9srtGAf z-x7!12g2*Zu(B`XZxD$EYj++`y2lMY%(#J?I*~blF)~2}%0ATd__er!wk1yHJSy{q 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 Zul)+t8aYry1rVSEdfG->C7QM&{{u5V_A3AY literal 0 HcmV?d00001 diff --git a/software/nano-644/test_2024-07-23/.vscode/settings.json b/software/nano-644/test_2024-07-23/.vscode/settings.json index b2e94c9..58539af 100644 --- a/software/nano-644/test_2024-07-23/.vscode/settings.json +++ b/software/nano-644/test_2024-07-23/.vscode/settings.json @@ -22,5 +22,8 @@ "cSpell.words": [], "cSpell.ignorePaths": [ "**/*.json", "**/*.c", "**/*.h", "**/*.cpp", "**/*.hpp", "**/Makefile" + ], + "java.project.sourcePaths": [ + "src/units" ] } diff --git a/software/nano-644/test_2024-07-23/Makefile b/software/nano-644/test_2024-07-23/Makefile index 41a8b6e..06747cf 100644 --- a/software/nano-644/test_2024-07-23/Makefile +++ b/software/nano-644/test_2024-07-23/Makefile @@ -86,9 +86,33 @@ simuc: sim/$(NAME).elf gdb: sim/$(NAME).elf avr-gdb $< + flash: dist/$(NAME).elf all avrdude -c arduino -P /dev/ttyUSB0 -p m644p -e -U flash:w:$< +flash0: dist/$(NAME).elf all + avrdude -c arduino -P /dev/ttyUSB0 -p m644p -e -U flash:w:$< + +flash1: dist/$(NAME).elf all + avrdude -c arduino -P /dev/ttyUSB1 -p m644p -e -U flash:w:$< + +flash2: dist/$(NAME).elf all + avrdude -c arduino -P /dev/ttyUSB2 -p m644p -e -U flash:w:$< + +picocom: + # picocom sends CR for ENTER -> convert cr (\r) to lf (\n) + picocom -b 115200 --omap crlf --raise-dtr /dev/ttyUSB0 + +picocom0: + picocom -b 115200 --omap crlf --raise-dtr /dev/ttyUSB0 + +picocom1: + picocom -b 115200 --omap crlf --raise-dtr /dev/ttyUSB1 + +picocom2: + picocom -b 115200 --omap crlf --raise-dtr /dev/ttyUSB2 + + isp-644p: avrdude -c usbasp -p m644p @@ -99,10 +123,6 @@ flash-644p: dist/$(NAME).elf all avrdude -c arduino -p m644p -P /dev/ttyUSB0 -b 115200 -e -U flash:w:$< -picocom: - # picocom sends CR for ENTER -> convert cr (\r) to lf (\n) - picocom -b 115200 --omap crlf --raise-dtr /dev/ttyUSB0 - isp-fuse-644p: avrdude -c usbasp -p m644p -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m -U lock:w:0xFF:m diff --git a/software/nano-644/test_2024-07-23/src/main.cpp b/software/nano-644/test_2024-07-23/src/main.cpp index 14b9399..d64616f 100644 --- a/software/nano-644/test_2024-07-23/src/main.cpp +++ b/software/nano-644/test_2024-07-23/src/main.cpp @@ -24,6 +24,7 @@ #include "units/modbus.hpp" #include "units/rtc8563.hpp" #include "units/cc1101.hpp" +#include "units/cc1101new.hpp" extern "C" { void __cxa_pure_virtual () {} @@ -126,6 +127,7 @@ extern "C" { Rtc8563 rtc8563; Cc1101 cc1101Send(Cc1101::Send); Cc1101 cc1101Receive(Cc1101::Receive); + Cc1101New cc1101New(Cc1101New::Test); } @@ -182,7 +184,7 @@ int main () { #ifdef __AVR_ATmega644P__ TestUnit *unit[] = { &led, &sw, &rgb, &seg7, &poti, &encoder, &r2r, &motor, &portExp, &lcd, &uart1, &modbus, &ieee485, - &i2cMaster, &i2cSlave, &i2cSparkfun, &rtc8563, &cc1101Send, &cc1101Receive + &i2cMaster, &i2cSlave, &i2cSparkfun, &rtc8563, &cc1101Send, &cc1101Receive, &cc1101New }; #endif @@ -302,6 +304,7 @@ ISR (TIMER2_COMPA_vect) { // every 100us i2cSparkfun.tick1ms(); cc1101Send.tick1ms(); cc1101Receive.tick1ms(); + cc1101New.tick1ms(); #ifdef __AVR_ATmega644P__ if (timerFlashRedLed > 0) { if (--timerFlashRedLed < 128) { diff --git a/software/nano-644/test_2024-07-23/src/units/cc1101.cpp b/software/nano-644/test_2024-07-23/src/units/cc1101.cpp index 59cdb1e..968bb3d 100644 --- a/software/nano-644/test_2024-07-23/src/units/cc1101.cpp +++ b/software/nano-644/test_2024-07-23/src/units/cc1101.cpp @@ -52,19 +52,16 @@ const uint8_t PMEM_CC1101_INIT[] PROGMEM = { CC1101_FSCAL2, 0x2A, // Frequency Synthesizer Calibration CC1101_FSCAL1, 0x00, // Frequency Synthesizer Calibration CC1101_FSCAL0, 0x11, // Frequency Synthesizer Calibration - // CC1101_FSTEST, 0x59, // Frequency Synthesizer Calibration Control - // CC1101_TEST2, 0x81, // Various Test Settings - // CC1101_TEST1, 0x35, // Various Test Settings - // CC1101_TEST0, 0x09, // Various Test Settings + CC1101_FSTEST, 0x59, // Frequency Synthesizer Calibration Control + CC1101_TEST2, 0x81, // Various Test Settings + CC1101_TEST1, 0x35, // Various Test Settings + CC1101_TEST0, 0x09, // Various Test Settings CC1101_IOCFG2, 0x0B, // GDO2 Output Pin Configuration -> Serial Clock. Synchronous to the data in synchronous serial mode. CC1101_IOCFG0, 0x06, // GDO0 Output Pin Configuration -> Asserts when sync word has been sent / received, and de-asserts at the end of the packet. CC1101_PKTCTRL1, 0x04, // Packet Automation Control CC1101_PKTCTRL0, 0x05, // serial clock.synchronous to the data in synchronous serial mode CC1101_ADDR, 0x00, // asserts when sync word has been sent/received, and de-asserts at the end of the packet - CC1101_PKTLEN, 0x3D, // two status bytes will be appended to the payload of the packet,including RSSI LQI and CRC OK - CC1101_PKTCTRL0, 0x05, // whitening off; normal mode, CRC enabled, variable packet length - CC1101_ADDR, 0x00, // address used for packet filtration. - CC1101_PKTLEN, 0x3D // 61 bytes max length + CC1101_PKTLEN, 0x3D // two status bytes will be appended to the payload of the packet,including RSSI LQI and CRC OK }; @@ -191,6 +188,12 @@ bool Cc1101::writeRegister (uint8_t addr, uint8_t value) { bool Cc1101::writeRegisters (uint8_t addr, uint8_t *buffer, uint8_t length) { bool ok = true; + printf_P(PSTR(" [writeRegisters(0x%02x): "), addr); + for (uint8_t i = 0; i < length; i++) { + printf_P(PSTR(" 0x%02x"), buffer[i]); + } + printf_P(PSTR("] ")); + addr |= WRITE_BURST; setChipEnableLow(); ok &= waitForMisoLow(); @@ -314,9 +317,9 @@ bool Cc1101::initModem () { SPCR = 0; setChipEnableLow(); - _delay_us(20); + _delay_ms(1); // _delay_us(20); //? setChipEnableHigh(); - _delay_us(30); + _delay_ms(1); //_delay_us(30); //? setChipEnableLow(); timer = 10; ok &= waitForMisoLow(); @@ -326,14 +329,12 @@ bool Cc1101::initModem () { ok &= waitForMisoLow(); setChipEnableHigh(); - PORTB |= (1 << PB0); - + _delay_ms(5); // ? ok &= initModemConfig(MHZ868); uint8_t pa_table[8]; memcpy_P(pa_table, PMEM_CC1101_PA_TABLE, 8); ok &= writeRegisters(CC1101_PATABLE, pa_table, 8); - PORTB &= ~(1 << PB0); return ok; } @@ -341,7 +342,6 @@ bool Cc1101::initModem () { bool Cc1101::initModemConfig (InitFrequency f) { bool ok = true; - ok &= writeRegister(CC1101_FSCTRL1, 0x08); // frequency synthesizer control 1 (RX frequency) ok &= writeRegister(CC1101_FSCTRL1, 0x08); // frequency synthesizer control 1 (RX frequency) ok &= writeRegister(CC1101_FSCTRL0, 0x00); // frequency synthesizer control 0 (RX frequency offset) diff --git a/software/nano-644/test_2024-07-23/src/units/cc1101.hpp b/software/nano-644/test_2024-07-23/src/units/cc1101.hpp index 2893591..84c6bb2 100644 --- a/software/nano-644/test_2024-07-23/src/units/cc1101.hpp +++ b/software/nano-644/test_2024-07-23/src/units/cc1101.hpp @@ -8,7 +8,7 @@ class Cc1101 : public TestUnit { public: typedef enum { MHZ915, MHZ433, MHZ868 } InitFrequency; - typedef enum { Send, Receive } Cc1101Mode; + typedef enum { Send, Receive, Test } Cc1101Mode; public: Cc1101 (Cc1101Mode mode) { this->mode = mode; }; diff --git a/software/nano-644/test_2024-07-23/src/units/cc1101new.cpp b/software/nano-644/test_2024-07-23/src/units/cc1101new.cpp new file mode 100644 index 0000000..0828912 --- /dev/null +++ b/software/nano-644/test_2024-07-23/src/units/cc1101new.cpp @@ -0,0 +1,233 @@ +#include +#include +#include +#include + +#include "cc1101new.hpp" +#include "../main.hpp" + +// 868MHz Modem E07-900MM1DS (chipset CC1101) +// https://jlcpcb.com/partdetail/Chengdu_Ebyte_ElecTech-E07900MM10S/C5844212 + +#ifdef __AVR_ATmega328P__ + + // Arduino-Nano-5V + // ------------------------------------ + // not available + + void Cc1101New::init () {} + void Cc1101New::cleanup () {} + void Cc1101New::setChipEnable () {} + void Cc1101New::clearChipEnable () {} + +#endif + + +#ifdef __AVR_ATmega644P__ + + // Nano-644 + // -------------------------------------------------------- + // PA4 ... nCS + // PB4 ... nSS (not used, but must be high, otherwise AVR SPI master not working) + // PB5 ... MOSI + // PB6 ... MISO + // PB7 ... SCK + + int8_t Cc1101New::run (uint8_t subtest) { + while (wait(0) == EOF) { + } + return -1; + } + + // -------------------------------------------------------- + + const Cc1101New::Register_t PMEM_CC1101_REGISTER_INIT PROGMEM = { + { Cc1101New::CHIP_NOT_READY, 0, 0 }, // iocfg2 (GDO2) + { Cc1101New::HIGH_IMPEDANCE_WHEN_CHIP_SELECT_HIGH, 0, 0 }, // iocfg1 (GDO1/MISO) + { Cc1101New::CLK_XOSC_DIV_128, 0, 0 }, // iocfg0 (GDO0) + { 7, 0, 1, 0 }, // fifothr (fifo_thr = 7, close_in_rx=0, adc_retention = 1) + // { 0x91, 0xd3 }, // sync word = 0xd391 + { 0x7a, 0x0e }, // sync word = 0xd391 + + }; + + +// const uint8_t PMEM_CC1101_INIT[] PROGMEM = { +// CC1101_MDMCFG4, 0x5B, // modem config 4 -> ADC decimation rate, symbol rate exponent +// CC1101_MDMCFG3, 0xF8, // modem config 3 -> symbol rate mantissa +// CC1101_MDMCFG2, 0x03, // modem config 2 -> DC blocking filter, modulation type, manchaster enoding, sync-mode, +// CC1101_MDMCFG1, 0x22, // modem config 1 -> forw error correction, min number of preamble bytes, channel spacing exponent +// CC1101_MDMCFG0, 0xF8, // modem config 0 -> channel spacing mantissa +// CC1101_CHANNR, 0x00, // channel number +// CC1101_DEVIATN, 0x47, // modem deviation setting +// CC1101_FREND1, 0xB6, // front end RX configuration +// CC1101_FREND0, 0x10, // front end TX configuration +// CC1101_MCSM0 , 0x18, // Main Radio Control State Machine Configuration +// CC1101_FOCCFG, 0x1D, // Frequency Offset Compensation Configuration +// CC1101_BSCFG, 0x1C, // Bit Synchronization Configuration +// CC1101_AGCCTRL2, 0xC7, // AGC Control +// CC1101_AGCCTRL1, 0x00, // AGC Control +// CC1101_AGCCTRL0, 0xB2, // AGC Control +// CC1101_FSCAL3, 0xEA, // Frequency Synthesizer Calibration +// CC1101_FSCAL2, 0x2A, // Frequency Synthesizer Calibration +// CC1101_FSCAL1, 0x00, // Frequency Synthesizer Calibration +// CC1101_FSCAL0, 0x11, // Frequency Synthesizer Calibration +// CC1101_FSTEST, 0x59, // Frequency Synthesizer Calibration Control +// CC1101_TEST2, 0x81, // Various Test Settings +// CC1101_TEST1, 0x35, // Various Test Settings +// CC1101_TEST0, 0x09, // Various Test Settings +// CC1101_IOCFG2, 0x0B, // GDO2 Output Pin Configuration -> Serial Clock. Synchronous to the data in synchronous serial mode. +// CC1101_IOCFG0, 0x06, // GDO0 Output Pin Configuration -> Asserts when sync word has been sent / received, and de-asserts at the end of the packet. +// CC1101_PKTCTRL1, 0x04, // Packet Automation Control +// CC1101_PKTCTRL0, 0x05, // serial clock.synchronous to the data in synchronous serial mode +// CC1101_ADDR, 0x00, // asserts when sync word has been sent/received, and de-asserts at the end of the packet +// CC1101_PKTLEN, 0x3D // two status bytes will be appended to the payload of the packet,including RSSI LQI and CRC OK +// }; + + uint8_t Cc1101New::sendSpiByte (uint8_t b) { + SPDR = b; + while (!(SPSR & (1< +#include "../main.hpp" +#include + +class Cc1101New : public TestUnit { + public: + typedef enum { MHZ915, MHZ433, MHZ868 } InitFrequency; + typedef enum { Test } Cc1101Mode; + + + public: + Cc1101New (Cc1101Mode mode) { timer = 0; this->mode = mode; }; + virtual void init (); + virtual void cleanup (); + virtual int8_t run (uint8_t subtest); + virtual PGM_P getName (); + + public: + void tick1ms () { if (timer > 0) timer--; }; + + private: + typedef enum { SRES = 0x30, SCAL = 0x33, SRX = 0x34, STX = 0x35, SIDLE = 0x36 } StrobeCommand_t; + + private: + uint8_t sendSpiByte (uint8_t b); + void triggerOn(); + void triggerOff(); + void setChipEnableLow (); + void setChipEnableHigh (); + bool isMisoHigh (); + bool isGd0High (); + bool waitForMisoLow (); + bool strobe (StrobeCommand_t strobe); + bool writeRegister (uint8_t addr, uint8_t value); + bool resetCC1101 (); + bool initRegister (); + + + private: + Cc1101Mode mode; + uint8_t timer; + + + public: + typedef enum { + IOCFG2 = 0x00, IOCFG1 = 0x01, IOCFG0 = 0x02, + FIFOTHR = 0x03 + } RegisterAddress_t; + + typedef enum { + RX_FIFO_FILLED_OR_ABOVE_THRESHHOLD = 0x00, + RX_FIFO_FILLED_OR_ABOVE_THRESHHOLD_OR_END_OF_PACKAGE_UNTIL_FIFO_EMPTY = 0x01, + TX_FIFO_FILLED_OR_ABOVE_THRESHHOLD = 0x02, + TX_FIFO_FULL_UNTIL_BELOW_THRESHHOLD = 0x03, + RX_FIFO_OVERFLOW_UNTIL_FIFO_FLUSHED = 0x04, + TX_FIFO_UNDERFLOW_UNTIL_FIFO_FLUSHED = 0x05, + SYNC_SENT_OR_RECEIVED_UNTIL_END_OF_PACKET = 0x06, + PACKET_RECEIVED_WITH_CRC_OK_UNTIL_FIRST_BYTE_READ_FROM_RXFIFO = 0x07, + PREAMBLE_QUALITY_REACHED_UNTIL_REENTER_RX = 0x08, + RSSI_LEVEL_BELOW_THRESHOLD = 0x09, + LOCK_DETECTOR_OUTPUT = 0x0a, + SERIAL_CLOCK = 0x0b, + SERIAL_SYNCHRONOUS_DATA_OUTPUT = 0x0c, + SERIAL_ASYNC_DATA_OUTPUT = 0x0d, + CARRIER_DETECTED_UNTIL_ENTER_IDLE = 0x0e, + CRC_OK_UNTIL_REENTER_RX = 0x0f, + RX_HARD_DATA_1 = 0x16, + RX_HARD_DATA_0 = 0x17, + PA_PD = 0x1b, + LNA_PD = 0x1c, + RX_SYMBOL_TICK = 0x1d, + WAKEUP_ON_RECEIVE_EVENT0 = 0x24, + WAKEUP_ON_RECEIVE_EVENT1 = 0x25, + CLK_256 = 0x26, + CLK_32K = 0x27, + CHIP_NOT_READY = 0x29, + XOSC_STABLE = 0x2b, + HIGH_IMPEDANCE_WHEN_CHIP_SELECT_HIGH = 0x2e, + HW_TO_0 = 0x2f, + CLK_XOSC = 0x30, + CLK_XOSC_DIV_1P5 = 0x31, + CLK_XOSC_DIV_2 = 0x32, + CLK_XOSC_DIV_3 = 0x33, + CLK_XOSC_DIV_4 = 0x34, + CLK_XOSC_DIV_6 = 0x35, + CLK_XOSC_DIV_8 = 0x36, + CLK_XOSC_DIV_12 = 0x37, + CLK_XOSC_DIV_16 = 0x38, + CLK_XOSC_DIV_24 = 0x39, + CLK_XOSC_DIV_32 = 0x3a, + CLK_XOSC_DIV_48 = 0x3b, + CLK_XOSC_DIV_64 = 0x3c, + CLK_XOSC_DIV_96 = 0x3d, + CLK_XOSC_DIV_128 = 0x3e, + CLK_XOSC_DIV_192 = 0x3f + } GDOx_CFG_t; + + typedef struct { GDOx_CFG_t gdo0_cfg:6; uint8_t gdo0_inv:1; uint8_t bit7:1; } IOCFG0_t; + typedef struct { GDOx_CFG_t gdo1_cfg:6; uint8_t gdo1_inv:1; uint8_t bit7:1; } IOCFG1_t; + typedef struct { GDOx_CFG_t gdo2_cfg:6; uint8_t gdo2_inv:1; uint8_t bit7:1; } IOCFG2_t; + typedef struct { uint8_t fifo_thr:4; uint8_t close_in_rx:2; uint8_t adc_retention:1; uint8_t bit7:1; } FIFOTHR_t; + typedef struct { uint8_t lowByte; uint8_t highByte; } SYNC_t; + + typedef struct { + IOCFG2_t iocfg2; + IOCFG1_t iocfg1; + IOCFG0_t iocfg0; + FIFOTHR_t fifothr; + SYNC_t sync; + } Register_t; + + + +}; + +#endif \ No newline at end of file -- 2.39.5