summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openocd/openocd.stm32l4-disco.cfg5
-rw-r--r--tests/adc-power/adc-power.c1
-rw-r--r--tests/adc-power/main-stm32l4-disco.c10
3 files changed, 14 insertions, 2 deletions
diff --git a/openocd/openocd.stm32l4-disco.cfg b/openocd/openocd.stm32l4-disco.cfg
index fe6f340..93c252f 100644
--- a/openocd/openocd.stm32l4-disco.cfg
+++ b/openocd/openocd.stm32l4-disco.cfg
@@ -4,9 +4,10 @@ source [find target/stm32l4x.cfg]
# serial of my f072 disco board.
hla_serial "066DFF495351885087171826"
-#tpiu config internal swodump.stm32l4-disco.log uart off 168000000
+tpiu config internal swodump.stm32l4-disco.log uart off 48000000
# Uncomment to reset on connect, for grabbing under WFI et al
#reset_config srst_only srst_nogate
-reset_config srst_only srst_nogate connect_assert_srst
+#reset_config srst_only srst_nogate connect_assert_srst
+reset_config none
diff --git a/tests/adc-power/adc-power.c b/tests/adc-power/adc-power.c
index a188649..97a083a 100644
--- a/tests/adc-power/adc-power.c
+++ b/tests/adc-power/adc-power.c
@@ -66,6 +66,7 @@ void adc_power_init(void)
/* same same but different */
rcc_periph_clock_enable(RCC_ADC1);
ADC_CR(ADC1) &= ~ADC_CR_DEEPPWD;
+ RCC_CCIPR |= 3 << 28; // system clock as adc clock. (with CKMODE == 0)
adc_enable_regulator(ADC1);
#else
diff --git a/tests/adc-power/main-stm32l4-disco.c b/tests/adc-power/main-stm32l4-disco.c
index a23266f..ad21fcb 100644
--- a/tests/adc-power/main-stm32l4-disco.c
+++ b/tests/adc-power/main-stm32l4-disco.c
@@ -7,7 +7,9 @@
#include <stdio.h>
#include <unistd.h>
#include <libopencm3/cm3/nvic.h>
+#include <libopencm3/stm32/flash.h>
#include <libopencm3/stm32/gpio.h>
+#include <libopencm3/stm32/pwr.h>
#include <libopencm3/stm32/rcc.h>
#include "trace.h"
@@ -18,6 +20,12 @@
#define LED_DISCO_GREEN_PORT GPIOE
#define LED_DISCO_GREEN_PIN GPIO8
+int hack(void) {
+ pwr_set_vos_scale(PWR_SCALE1);
+ flash_set_ws(FLASH_ACR_LATENCY_2WS);
+ rcc_set_msi_range(RCC_CR_MSIRANGE_48MHZ);
+ return 0;
+}
int main(void)
{
@@ -27,6 +35,8 @@ int main(void)
rcc_periph_clock_enable(RCC_GPIOE); // led
rcc_periph_clock_enable(RCC_GPIOA); // adcs
rcc_periph_clock_enable(RCC_GPIOC); // adcs
+ rcc_periph_clock_enable(RCC_PWR);
+ hack();
printf("hi guys!\n");
/* green led for ticking */
gpio_mode_setup(LED_DISCO_GREEN_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,