projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Fix RDF mode data rate and PKT_CFG0 value
[fw/altos]
/
src
/
drivers
/
ao_cc1120.c
diff --git
a/src/drivers/ao_cc1120.c
b/src/drivers/ao_cc1120.c
index 95b21170f597e0b1c468cef9e1d3f97a13c5b014..37dc67db9f8612eb2776e5e9721910dad2563041 100644
(file)
--- a/
src/drivers/ao_cc1120.c
+++ b/
src/drivers/ao_cc1120.c
@@
-25,7
+25,7
@@
uint8_t ao_radio_abort;
#define CC1120_DEBUG 1
#define CC1120_DEBUG 1
-uint32_t ao_radio_cal =
1186611
;
+uint32_t ao_radio_cal =
0x6ca333
;
#define FOSC 32000000
#define FOSC 32000000
@@
-77,13
+77,13
@@
ao_radio_reg_write(uint16_t addr, uint8_t value)
printf("\t\tao_radio_reg_write (%04x): %02x\n", addr, value);
#endif
if (CC1120_IS_EXTENDED(addr)) {
printf("\t\tao_radio_reg_write (%04x): %02x\n", addr, value);
#endif
if (CC1120_IS_EXTENDED(addr)) {
- data[0] = ((
1
<< CC1120_READ) |
+ data[0] = ((
0
<< CC1120_READ) |
(0 << CC1120_BURST) |
CC1120_EXTENDED);
data[1] = addr;
d = 2;
} else {
(0 << CC1120_BURST) |
CC1120_EXTENDED);
data[1] = addr;
d = 2;
} else {
- data[0] = ((
1
<< CC1120_READ) |
+ data[0] = ((
0
<< CC1120_READ) |
(0 << CC1120_BURST) |
addr);
d = 1;
(0 << CC1120_BURST) |
addr);
d = 1;
@@
-197,8
+197,8
@@
ao_radio_recv_abort(void)
*
* To make the tone last for 200ms, we need 2000 * .2 = 400 bits or 50 bytes
*/
*
* To make the tone last for 200ms, we need 2000 * .2 = 400 bits or 50 bytes
*/
-#define RDF_DRATE_E
6
-#define RDF_DRATE_M
511705
+#define RDF_DRATE_E
5
+#define RDF_DRATE_M
25166
#define RDF_PACKET_LEN 50
static const uint16_t rdf_setup[] = {
#define RDF_PACKET_LEN 50
static const uint16_t rdf_setup[] = {
@@
-216,6
+216,11
@@
static const uint16_t rdf_setup[] = {
(CC1120_PKT_CFG1_ADDR_CHECK_CFG_NONE << CC1120_PKT_CFG1_ADDR_CHECK_CFG) |
(CC1120_PKT_CFG1_CRC_CFG_DISABLED << CC1120_PKT_CFG1_CRC_CFG) |
(0 << CC1120_PKT_CFG1_APPEND_STATUS)),
(CC1120_PKT_CFG1_ADDR_CHECK_CFG_NONE << CC1120_PKT_CFG1_ADDR_CHECK_CFG) |
(CC1120_PKT_CFG1_CRC_CFG_DISABLED << CC1120_PKT_CFG1_CRC_CFG) |
(0 << CC1120_PKT_CFG1_APPEND_STATUS)),
+ CC1120_PKT_CFG0, ((0 << CC1120_PKT_CFG0_RESERVED7) |
+ (CC1120_PKT_CFG0_LENGTH_CONFIG_FIXED << CC1120_PKT_CFG0_LENGTH_CONFIG) |
+ (0 << CC1120_PKT_CFG0_PKG_BIT_LEN) |
+ (0 << CC1120_PKT_CFG0_UART_MODE_EN) |
+ (0 << CC1120_PKT_CFG0_UART_SWAP_EN)),
};
#define int_pin(w) printf("\t%s: %d\n", \
};
#define int_pin(w) printf("\t%s: %d\n", \
@@
-492,6
+497,9
@@
ao_radio_get(uint8_t len)
ao_mutex_get(&ao_radio_mutex);
if (!ao_radio_configured)
ao_radio_setup();
ao_mutex_get(&ao_radio_mutex);
if (!ao_radio_configured)
ao_radio_setup();
+ ao_radio_reg_write(CC1120_FREQ2, ao_config.radio_setting >> 16);
+ ao_radio_reg_write(CC1120_FREQ1, ao_config.radio_setting >> 8);
+ ao_radio_reg_write(CC1120_FREQ0, ao_config.radio_setting);
ao_radio_reg_write(CC1120_PKT_LEN, len);
}
ao_radio_reg_write(CC1120_PKT_LEN, len);
}