first cut at turnon scripts for EasyTimer v2
[fw/altos] / src / nucleao-32 / ao_pins.h
1 /*
2  * Copyright © 2016 Keith Packard <keithp@keithp.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17  */
18
19 #ifndef _AO_PINS_H_
20 #define _AO_PINS_H_
21
22 #define LED_PORT_ENABLE STM_RCC_AHBENR_IOPBEN
23 #define LED_PORT        (&stm_gpiob)
24 #define LED_PIN_GREEN   3
25 #define AO_LED_GREEN    (1 << LED_PIN_GREEN)
26 #define AO_LED_PANIC    AO_LED_GREEN
27 #define AO_CMD_LEN      128
28 #define AO_LISP_POOL_TOTAL      3072
29 #define AO_LISP_SAVE    1
30 #define AO_STACK_SIZE   1024
31
32 #define LEDS_AVAILABLE  (AO_LED_GREEN)
33
34 #define AO_POWER_MANAGEMENT     0
35
36 /* 48MHz clock based on USB */
37 #define AO_HSI48        1
38
39 /* HCLK = 48MHz */
40 #define AO_AHB_PRESCALER        1
41 #define AO_RCC_CFGR_HPRE_DIV    STM_RCC_CFGR_HPRE_DIV_1
42
43 /* APB = 48MHz */
44 #define AO_APB_PRESCALER        1
45 #define AO_RCC_CFGR_PPRE_DIV    STM_RCC_CFGR_PPRE_DIV_1
46
47 #define HAS_USB                         1
48 #define AO_USB_DIRECTIO                 0
49 #define AO_PA11_PA12_RMP                0
50 #define HAS_BEEP                        0
51
52 #define IS_FLASH_LOADER 0
53
54 #define HAS_SERIAL_2            0
55 #define SERIAL_2_PA2_PA15       1
56 #define USE_SERIAL_2_FLOW       0
57 #define USE_SERIAL_2_STDIN      1
58 #define DELAY_SERIAL_2_STDIN    0
59
60 #define HAS_SPI_1       1
61 #define SPI_1_PA5_PA6_PA7       1
62 #define SPI_1_OSPEEDR           STM_OSPEEDR_HIGH
63 #define SPI_1_PB3_PB4_PB5       0
64
65 #define HAS_SPI_2       0
66
67 #define HAS_BMI088      1
68 #define HAS_IMU         1
69
70 #define ao_data_along(packet)   ((packet)->bmi088.acc.x)
71 #define ao_data_across(packet)  (-(packet)->bmi088.acc.y)
72 #define ao_data_through(packet) ((packet)->bmi088.acc.z)
73
74 #define ao_data_roll(packet)    ((packet)->bmi088.gyr.x)
75 #define ao_data_pitch(packet)   (-(packet)->bmi088.gyr.y)
76 #define ao_data_yaw(packet)     ((packet)->bmi088.gyr.z)
77
78 #define AO_BMI088_ACC_CS_PORT   (&stm_gpioa)
79 #define AO_BMI088_ACC_CS_PIN    0
80 #define AO_BMI088_GYR_CS_PORT   (&stm_gpioa)
81 #define AO_BMI088_GYR_CS_PIN    1
82 #define AO_BMI088_SPI_BUS       (AO_SPI_1_PA5_PA6_PA7 | AO_SPI_MODE_0)
83
84 #define AO_DATA_RING    32
85
86 #endif /* _AO_PINS_H_ */