altos/telelco-v3.0: Control LCD backlight with PWM
[fw/altos] / src / telelco-v3.0 / ao_pins.h
index e1beaab88344a7a3a866b6b05dd58cc23ec0011d..7a7ffae2acff8e78f565dc386dd15513133b7a0d 100644 (file)
@@ -61,6 +61,7 @@
 #define BEEPER_CHANNEL         1
 #define BEEPER_PORT            (&stm_gpioc)
 #define BEEPER_PIN             6
+#define AO_BEEP_MID_DEFAULT    179     /* 2100 Hz */
 #define HAS_RADIO              1
 #define HAS_RADIO_RATE         1
 #define HAS_TELEMETRY          0
@@ -73,7 +74,8 @@
 
 #define HAS_SPI_1              1       /* NHD-C12864LZ LCD Module */
 #define SPI_1_PA5_PA6_PA7      1
-#define SPI_1_MODE_OUTPUT      STM_GPIO_CR_MODE_OUTPUT_10MHZ
+#define SPI_1_PA6_DISABLE      1
+#define SPI_1_MODE_OUTPUT      STM_GPIO_CR_MODE_OUTPUT_50MHZ
 #define SPI_1_PB3_PB4_PB5      0
 #define SPI_1_PE13_PE14_PE15   0
 
@@ -93,6 +95,7 @@
 #define PACKET_HAS_SLAVE       0
 #define PACKET_HAS_MASTER      0
 
+#define AO_FAST_TIMER          4
 #define FAST_TIMER_FREQ                10000   /* .1ms for debouncing */
 
 /* LCD module */
 #define AO_ST7565_RESET_PIN    5
 #define AO_ST7565_A0_PORT      (&stm_gpioa)    /* pin 3 */
 #define AO_ST7565_A0_PIN       3
-#define AO_ST7565_SPI_BUS      AO_SPI_1_PA5_PA6_PA7
+#define AO_ST7565_SPI_BUS      (AO_SPI_1_PA5_PA6_PA7 | AO_SPI_MODE_3)
 #define AO_ST7565_WIDTH                128
 #define AO_ST7565_HEIGHT       64
 #define AO_ST7565_BIAS         ST7565_LCD_BIAS_1_9
 #define LED_11_PORT            (&stm_gpioa)
 #define LED_11_PIN             0
 
-#define AO_LED_CONTINUITY_1    AO_LED_12       /* PA1 */
+#define AO_LED_CONTINUITY_1    AO_LED_12       /* PA6 */
 #define LED_12_PORT            (&stm_gpioa)
-#define LED_12_PIN             1
+#define LED_12_PIN             6
 
 #define AO_LED_CONTINUITY_0    AO_LED_13       /* PB1 */
 #define LED_13_PORT            (&stm_gpiob)
 #define AO_QUADRATURE_0_A      12
 #define AO_QUADRATURE_0_B      11
 
-#define AO_QUADRATURE_SELECT   10
+#define AO_QUADRATURE_SELECT   0
 
 /*
  * Buttons
@@ -270,7 +273,7 @@ struct ao_adc {
 #define HAS_ADC_TEMP           0
 #define HAS_BATTERY_REPORT     1
 
-#define AO_ADC_V_BATT          0
+#define AO_ADC_V_BATT          2
 #define AO_ADC_V_BATT_PORT     (&stm_gpioa)
 #define AO_ADC_V_BATT_PIN      2
 
@@ -293,5 +296,34 @@ struct ao_adc {
 #define AO_ADC_REFERENCE_DV    33
 
 #define AO_LCO_SEARCH_API
+#define AO_LCO_HAS_CONTRAST    1
+#define AO_LCO_MIN_CONTRAST    0
+#define AO_LCO_MAX_CONTRAST    63
+#define AO_LCO_CONTRAST_STEP   1
+
+#define AO_LCO_HAS_BACKLIGHT   1
+#define AO_LCO_MIN_BACKLIGHT   0
+#define AO_LCO_MAX_BACKLIGHT   65535
+#define AO_LCO_BACKLIGHT_STEP  771
+
+/*
+ * LCD Backlight via PWM.
+ *
+ * Pin PA1, TIM2_CH2
+ */
+
+#define NUM_PWM                        1
+#define PWM_MAX                        65535
+#define AO_PWM_TIMER           stm_tim2
+#define AO_LCD_BL_PWM_CHAN     1
+#define AO_PWM_0_GPIO          (&stm_gpioa)
+#define AO_PWM_0_PIN           1
+#define AO_PWM_TIMER_ENABLE    STM_RCC_APB1ENR_TIM2EN
+#define AO_PWM_TIMER_SCALE     1
+
+#define AO_AFIO_PWM_REMAP      STM_AFIO_MAPR_TIM2_REMAP
+#define AO_AFIO_PWM_REMAP_VAL  STM_AFIO_MAPR_TIM2_REMAP_PA0_PA1_PA2_PA3
+#define AO_AFIO_PWM_REMAP_MASK STM_AFIO_MAPR_TIM2_REMAP_MASK
+
 
 #endif /* _AO_PINS_H_ */