summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-02-18 22:49:34 -0800
committerKeith Packard <keithp@keithp.com>2017-02-20 11:16:52 -0800
commit1dc31a46f1d1adfdeab444664e581a780d995bf7 (patch)
tree9a7ca76456195963ddcf9c3316f891b47270a5d6 /src
parent0bf267a6e2d401c8bd6a06d995e3d000777d622a (diff)
altos: Require SPI speed to be declared for cc1200
The cc1200 can't run SPI faster than 10MHz, so make sure every device picks a SPI clock slower than that. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/drivers/ao_cc1200.c8
-rw-r--r--src/telebt-v3.0/ao_pins.h1
-rw-r--r--src/teledongle-v3.0/ao_pins.h1
-rw-r--r--src/telefiretwo-v0.1/ao_pins.h1
-rw-r--r--src/telelco-v0.3/ao_pins.h1
-rw-r--r--src/telelcotwo-v0.1/ao_pins.h1
-rw-r--r--src/telemega-v2.0/ao_pins.h1
-rw-r--r--src/telemetrum-v3.0/ao_pins.h1
8 files changed, 13 insertions, 2 deletions
diff --git a/src/drivers/ao_cc1200.c b/src/drivers/ao_cc1200.c
index 2bc99734..de282000 100644
--- a/src/drivers/ao_cc1200.c
+++ b/src/drivers/ao_cc1200.c
@@ -51,7 +51,11 @@ extern const uint32_t ao_radio_cal;
#define FOSC 40000000
#endif
-#define ao_radio_select() ao_spi_get_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS,AO_SPI_SPEED_FAST)
+#ifndef AO_CC1200_SPI_SPEED
+#error AO_CC1200_SPI_SPEED undefined
+#endif
+
+#define ao_radio_select() ao_spi_get_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS,AO_CC1200_SPI_SPEED)
#define ao_radio_deselect() ao_spi_put_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS)
#define ao_radio_spi_send(d,l) ao_spi_send((d), (l), AO_CC1200_SPI_BUS)
#define ao_radio_spi_send_fixed(d,l) ao_spi_send_fixed((d), (l), AO_CC1200_SPI_BUS)
@@ -1323,7 +1327,7 @@ static void ao_radio_packet(void) {
void
ao_radio_test_recv(void)
{
- uint8_t bytes[34];
+ static uint8_t bytes[34];
uint8_t b;
if (ao_radio_recv(bytes, 34, 0)) {
diff --git a/src/telebt-v3.0/ao_pins.h b/src/telebt-v3.0/ao_pins.h
index 61cbe9bb..1f7af41b 100644
--- a/src/telebt-v3.0/ao_pins.h
+++ b/src/telebt-v3.0/ao_pins.h
@@ -197,6 +197,7 @@ struct ao_adc {
#define AO_CC1200_SPI_CS_PIN 10
#define AO_CC1200_SPI_BUS AO_SPI_1_PA5_PA6_PA7
#define AO_CC1200_SPI stm_spi1
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_FAST
#define AO_CC1200_INT_PORT (&stm_gpiob)
#define AO_CC1200_INT_PIN (11)
diff --git a/src/teledongle-v3.0/ao_pins.h b/src/teledongle-v3.0/ao_pins.h
index effc2322..be710aef 100644
--- a/src/teledongle-v3.0/ao_pins.h
+++ b/src/teledongle-v3.0/ao_pins.h
@@ -96,6 +96,7 @@
#define AO_CC1200_SPI_CS_PIN 3
#define AO_CC1200_SPI_BUS 0
#define AO_CC1200_SPI 0
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_8MHz
#define AO_CC1200_INT_PORT 0
#define AO_CC1200_INT_PIN 2
diff --git a/src/telefiretwo-v0.1/ao_pins.h b/src/telefiretwo-v0.1/ao_pins.h
index f56061b2..1e5c0d09 100644
--- a/src/telefiretwo-v0.1/ao_pins.h
+++ b/src/telefiretwo-v0.1/ao_pins.h
@@ -110,6 +110,7 @@
#define AO_CC1200_SPI_CS_PIN 7
#define AO_CC1200_SPI_BUS AO_SPI_2_PB13_PB14_PB15
#define AO_CC1200_SPI stm_spi2
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_FAST
#define AO_CC1200_INT_PORT (&stm_gpiob)
#define AO_CC1200_INT_PIN (11)
diff --git a/src/telelco-v0.3/ao_pins.h b/src/telelco-v0.3/ao_pins.h
index d874a19b..dd4aaafb 100644
--- a/src/telelco-v0.3/ao_pins.h
+++ b/src/telelco-v0.3/ao_pins.h
@@ -89,6 +89,7 @@
#define AO_CC1200_SPI_CS_PIN 0
#define AO_CC1200_SPI_BUS AO_SPI_2_PD1_PD3_PD4
#define AO_CC1200_SPI stm_spi2
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_FAST
#define AO_CC1200_INT_PORT (&stm_gpioc)
#define AO_CC1200_INT_PIN (15)
diff --git a/src/telelcotwo-v0.1/ao_pins.h b/src/telelcotwo-v0.1/ao_pins.h
index 714a5c3a..60e94c67 100644
--- a/src/telelcotwo-v0.1/ao_pins.h
+++ b/src/telelcotwo-v0.1/ao_pins.h
@@ -91,6 +91,7 @@
#define AO_CC1200_SPI_CS_PIN 7
#define AO_CC1200_SPI_BUS AO_SPI_2_PB13_PB14_PB15
#define AO_CC1200_SPI stm_spi2
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_FAST
#define AO_CC1200_INT_PORT (&stm_gpiob)
#define AO_CC1200_INT_PIN (11)
diff --git a/src/telemega-v2.0/ao_pins.h b/src/telemega-v2.0/ao_pins.h
index b1c472da..c7c8ad19 100644
--- a/src/telemega-v2.0/ao_pins.h
+++ b/src/telemega-v2.0/ao_pins.h
@@ -309,6 +309,7 @@ struct ao_adc {
#define AO_CC1200_SPI_CS_PIN 5
#define AO_CC1200_SPI_BUS AO_SPI_2_PB13_PB14_PB15
#define AO_CC1200_SPI stm_spi2
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_FAST
#define AO_CC1200_INT_PORT (&stm_gpioe)
#define AO_CC1200_INT_PIN 1
diff --git a/src/telemetrum-v3.0/ao_pins.h b/src/telemetrum-v3.0/ao_pins.h
index ccf2f18f..b937b422 100644
--- a/src/telemetrum-v3.0/ao_pins.h
+++ b/src/telemetrum-v3.0/ao_pins.h
@@ -259,6 +259,7 @@ struct ao_adc {
#define AO_CC1200_SPI_CS_PIN 2
#define AO_CC1200_SPI_BUS AO_SPI_2_PB13_PB14_PB15
#define AO_CC1200_SPI stm_spi2
+#define AO_CC1200_SPI_SPEED AO_SPI_SPEED_FAST
#define AO_CC1200_INT_PORT (&stm_gpioa)
#define AO_CC1200_INT_PIN (3)