BluePill LED | PC13 GND |
| PC14 5V |
| PC15 PB9 |
- | PA0 PB8 |
- | PA1 PB7 |
- | PA2 PB6 |
+current sense (OC) | PA0 PB8 |
+ | PA1 PB7 | SSR2 (active low)
+ | PA2 PB6 | SSR1 (active low)
| PA3 PB5 |
| PA4 PB4 |
| PA5 PB3 |
| PB0 PA11 |
| PB1 PA10 | RXD1 - debugging console
| PB10 PA9 | TXD1 - debugging console
- | PB11 PA8 | IR remote control output (via optocoupler, negated)
- | RESET PB15 | MOSI2 - LED driver data input (via optocoupler, negated)
- | 3.3 V PB14 | MISO2 - unused
- | GND PB13 | SCK2 - LED driver clock (via optocoupler, negated)
- | GND PB12 | SS2 - unused
+ | PB11 PA8 |
+ | RESET PB15 |
+ | 3.3 V PB14 |
+ | GND PB13 |
+ | GND PB12 |
+--------------------+
gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13);
gpio_clear(GPIOC, GPIO13);
- // PB6 = SSR (active low)
- gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO6);
- gpio_set(GPIOB, GPIO6);
+ // PB6, PB7 = SSR (active low)
+ gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO6 | GPIO7);
+ gpio_set(GPIOB, GPIO6 | GPIO7);
// PA0 = current sense
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO0);
gpio_clear(GPIOB, GPIO6);
else
gpio_set(GPIOB, GPIO6);
+ if (value & 2)
+ gpio_clear(GPIOB, GPIO7);
+ else
+ gpio_set(GPIOB, GPIO7);
break;
default:
return USBD_REQ_NOTSUPP;