summaryrefslogtreecommitdiff
path: root/software/rda1846dongle/rda1846.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2013-03-22 00:30:37 +0000
committerChristian Pointner <equinox@mur.at>2013-03-22 00:30:37 +0000
commitcb0505a880a6d07f6849021578dcdbdb6c89cd60 (patch)
treeb4533c943cb40f5e0f92ef6bbb5c507080193c1e /software/rda1846dongle/rda1846.c
parentbasic RX/TX works now (diff)
added interface to switch between 2m and 70cm
git-svn-id: https://svn.spreadspace.org/mur.sat@705 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software/rda1846dongle/rda1846.c')
-rw-r--r--software/rda1846dongle/rda1846.c47
1 files changed, 39 insertions, 8 deletions
diff --git a/software/rda1846dongle/rda1846.c b/software/rda1846dongle/rda1846.c
index eeb5ba1..9f8f356 100644
--- a/software/rda1846dongle/rda1846.c
+++ b/software/rda1846dongle/rda1846.c
@@ -129,20 +129,18 @@ void rda1846_reg_init(void)
rda1846_write_register(RDA1846_REG_CTL, RDA1846_CTL_SOFT_RST);
rda1846_write_register(RDA1846_REG_CTL, RDA1846_CTL_PDN);
- rda1846_write_register(RDA1846_REG_RF_BAND, RDA1846_RF_BAND_2M);
-// rda1846_write_register(RDA1846_REG_RF_BAND, RDA1846_RF_BAND_70CM);
-
// set crystal frequency (12.288 MHz)
rda1846_write_register(RDA1846_REG_XTAL, RDA1846_XTAL_FREQ);
rda1846_write_register(RDA1846_REG_ADCLK, RDA1846_ADCLK_FREQ);
rda1846_write_register(RDA1846_REG_CLK_MODE, RDA1846_CLK_MODE);
-// rda1846_write_register(RDA1846_REG_CTL, RDA1846_CTL_CH_12K5 | RDA1846_CTL_RX_M_TX_M | RDA1846_CTL_PDN);
- rda1846_write_register(RDA1846_REG_CTL, RDA1846_CTL_CH_25K | RDA1846_CTL_RX_M_TX_M | RDA1846_CTL_PDN);
+ rda1846_write_register(RDA1846_REG_RF_BAND, RDA1846_RF_BAND_2M);
+ rda1846_write_register(RDA1846_REG_CTL, RDA1846_CTL_CH_12K5 | RDA1846_CTL_RX_M_TX_M | RDA1846_CTL_PDN);
-// rda1846_write_register(RDA1846_REG_TX_VOICE, RDA1846_TX_VOICE_NONE);
- rda1846_write_register(RDA1846_REG_TX_VOICE, RDA1846_TX_VOICE_MIC);
+ rda1846_write_register(RDA1846_REG_TX_VOICE, RDA1846_TX_VOICE_NONE);
+// rda1846_write_register(RDA1846_REG_TX_VOICE, RDA1846_TX_VOICE_MIC);
// rda1846_write_register(RDA1846_REG_TX_VOICE, RDA1846_TX_VOICE_TONE2);
+// rda1846_write_register(RDA1846_REG_DTMF_T2, 6689);
// rda1846_write_register(RDA1846_REG_DTMF_CTL, RDA1846_DTMF_DUAL | RDA1846_DTMF_EN);
// rda1846_write_register(RDA1846_REG_INT, RDA1846_INT_DTMF_IDLE);
@@ -176,6 +174,39 @@ void rda1846_wakeup(void)
}
+void rda1846_set_band_2m(void)
+{
+ rda1846_write_register(RDA1846_REG_RF_BAND, RDA1846_RF_BAND_2M);
+}
+
+void rda1846_set_band_70cm(void)
+{
+ rda1846_write_register(RDA1846_REG_RF_BAND, RDA1846_RF_BAND_70CM);
+}
+
+void rda1846_set_bw_12k5(void)
+{
+ uint16_t data;
+ if(rda1846_read_register(RDA1846_REG_CTL, &data))
+ return;
+
+ data &= RDA1846_CTL_CH_RESET;
+ data |= RDA1846_CTL_CH_12K5;
+ rda1846_write_register(RDA1846_REG_CTL, data);
+}
+
+void rda1846_set_bw_25k(void)
+{
+ uint16_t data;
+ if(rda1846_read_register(RDA1846_REG_CTL, &data))
+ return;
+
+ data &= RDA1846_CTL_CH_RESET;
+ data |= RDA1846_CTL_CH_25K;
+ rda1846_write_register(RDA1846_REG_CTL, data);
+}
+
+
void rda1846_idle(void)
{
uint16_t data;
@@ -359,7 +390,7 @@ void rda1846_dump_register(void)
RDA1846_REG_CTL, RDA1846_REG_INT, RDA1846_REG_GPIO,
RDA1846_REG_PA_BIAS, RDA1846_REG_TX_VOICE, RDA1846_REG_VOX_OPEN, RDA1846_REG_VOX_SHUT,
RDA1846_REG_SUBAUDIO, RDA1846_REG_RX_VOICE, RDA1846_REG_SQ_OPEN, RDA1846_REG_SQ_SHUT,
- RDA1846_REG_DTMF_CTL, RDA1846_REG_DTMF_OUT,
+ RDA1846_REG_DTMF_CTL, RDA1846_REG_DTMF_OUT, RDA1846_REG_DTMF_T1, RDA1846_REG_DTMF_T2,
RDA1846_REG_RSSI, RDA1846_REG_VSSI, RDA1846_REG_FLAG };
int i;