summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/ao_cc115l.c2
-rw-r--r--src/drivers/ao_sdcard.c11
-rw-r--r--src/telegps-v0.1/ao_telegps.c2
3 files changed, 10 insertions, 5 deletions
diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c
index 9a4908b5..d6a938ac 100644
--- a/src/drivers/ao_cc115l.c
+++ b/src/drivers/ao_cc115l.c
@@ -23,7 +23,7 @@
#define AO_RADIO_MAX_SEND sizeof (struct ao_telemetry_generic)
-static uint8_t ao_radio_mutex;
+uint8_t ao_radio_mutex;
static uint8_t ao_radio_fifo; /* fifo drained interrupt received */
static uint8_t ao_radio_done; /* tx done interrupt received */
diff --git a/src/drivers/ao_sdcard.c b/src/drivers/ao_sdcard.c
index 6073677a..59ac9400 100644
--- a/src/drivers/ao_sdcard.c
+++ b/src/drivers/ao_sdcard.c
@@ -18,9 +18,11 @@
#include "ao.h"
#include "ao_sdcard.h"
-#define ao_sdcard_get_slow() ao_spi_get(AO_SDCARD_SPI_BUS, AO_SPI_SPEED_250kHz)
-#define ao_sdcard_get() ao_spi_get(AO_SDCARD_SPI_BUS, AO_SPI_SPEED_FAST)
-#define ao_sdcard_put() ao_spi_put(AO_SDCARD_SPI_BUS)
+extern uint8_t ao_radio_mutex;
+
+#define ao_sdcard_get_slow() do { ao_mutex_get(&ao_radio_mutex); ao_spi_get(AO_SDCARD_SPI_BUS, AO_SPI_SPEED_250kHz); } while (0)
+#define ao_sdcard_get() do { ao_mutex_get(&ao_radio_mutex); ao_spi_get(AO_SDCARD_SPI_BUS, AO_SPI_SPEED_FAST); } while (0)
+#define ao_sdcard_put() do { ao_spi_put(AO_SDCARD_SPI_BUS); ao_mutex_put(&ao_radio_mutex); } while (0)
#define ao_sdcard_send_fixed(d,l) ao_spi_send_fixed((d), (l), AO_SDCARD_SPI_BUS)
#define ao_sdcard_send(d,l) ao_spi_send((d), (l), AO_SDCARD_SPI_BUS)
#define ao_sdcard_recv(d,l) ao_spi_recv((d), (l), AO_SDCARD_SPI_BUS)
@@ -686,6 +688,9 @@ static const struct ao_cmds ao_sdcard_cmds[] = {
void
ao_sdcard_init(void)
{
+ stm_pupdr_set(AO_SDCARD_SPI_PORT, AO_SDCARD_SPI_SCK_PIN, STM_PUPDR_PULL_UP);
+ stm_pupdr_set(AO_SDCARD_SPI_PORT, AO_SDCARD_SPI_MISO_PIN, STM_PUPDR_PULL_UP);
+ stm_pupdr_set(AO_SDCARD_SPI_PORT, AO_SDCARD_SPI_MOSI_PIN, STM_PUPDR_PULL_UP);
ao_spi_init_cs(AO_SDCARD_SPI_CS_PORT, (1 << AO_SDCARD_SPI_CS_PIN));
#if SDCARD_DEBUG
ao_cmd_register(&ao_sdcard_cmds[0]);
diff --git a/src/telegps-v0.1/ao_telegps.c b/src/telegps-v0.1/ao_telegps.c
index 4620de3b..68116bfb 100644
--- a/src/telegps-v0.1/ao_telegps.c
+++ b/src/telegps-v0.1/ao_telegps.c
@@ -52,7 +52,7 @@ main(void)
ao_fat_init();
ao_gps_init();
-// ao_gps_report_mega_init();
+ ao_gps_report_mega_init();
ao_telemetry_init();
ao_telemetry_set_interval(AO_SEC_TO_TICKS(1));