Skip to content

Commit

Permalink
Merge pull request #20120 from krzysztof-cabaj/nucleo-wb55-PWM2
Browse files Browse the repository at this point in the history
boards/p-nucleo-wb55: add PWM configuration
  • Loading branch information
benpicco authored Nov 30, 2023
2 parents 20c3898 + c0a4b9c commit f22405e
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 20 deletions.
1 change: 1 addition & 0 deletions boards/p-nucleo-wb55/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ config BOARD_P_NUCLEO_WB55
# Put defined MCU peripherals here (in alphabetical order)
select HAS_PERIPH_I2C
select HAS_PERIPH_LPUART
select HAS_PERIPH_PWM
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_SPI
Expand Down
1 change: 1 addition & 0 deletions boards/p-nucleo-wb55/Makefile.features
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ CPU_MODEL = stm32wb55rg
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_lpuart
FEATURES_PROVIDED += periph_pwm
FEATURES_PROVIDED += periph_rtc
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_spi
Expand Down
40 changes: 20 additions & 20 deletions boards/p-nucleo-wb55/doc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -106,25 +106,25 @@ make BOARD=p-nucleo-wb55 -C examples/hello-world term

## Implementation Status

| Device | ID | Supported | Comments |
|:----------------- |:----------------- |:--------- |:--------- |
| MCU | stm32wb | yes | |
| | M0+ co-processor | no | |
| | BLE | no | |
| | 802.15.4 | no | |
| Low-level driver | GPIO | yes | |
| | UART | yes | USART1 |
| | LPUART | yes | LPUART1 |
| | I2C | yes | I2C1 |
| | SPI | yes | |
| | ADC | yes | |
| | RTT | yes | |
| | RTC | yes | |
| | RNG | yes | |
| | Timer | yes | TIM2 |
| | WDT | yes | |
| | USB | yes | |
| | PWM | no | |
| | AES | no | |
| Device | ID | Supported | Comments |
|:----------------- |:----------------- |:--------- |:---------- |
| MCU | stm32wb | yes | |
| | M0+ co-processor | no | |
| | BLE | no | |
| | 802.15.4 | no | |
| Low-level driver | GPIO | yes | |
| | UART | yes | USART1 |
| | LPUART | yes | LPUART1 |
| | I2C | yes | I2C1 |
| | SPI | yes | |
| | ADC | yes | |
| | RTT | yes | |
| | RTC | yes | |
| | RNG | yes | |
| | Timer | yes | TIM2 |
| | WDT | yes | |
| | USB | yes | |
| | PWM | yes | dev 0/4 ch |
| | AES | no | |

*/
32 changes: 32 additions & 0 deletions boards/p-nucleo-wb55/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,38 @@ static const spi_conf_t spi_config[] = {
#define SPI_NUMOF ARRAY_SIZE(spi_config)
/** @} */

/**
* @name PWM configuration
*
* To find appriopate device and channel find in the MCU datasheet table
* concerning "Alternate function AF0 to AF7" a text similar to TIM[X]_CH[Y],
* where:
* TIM[X] - is device,
* [Y] - describes used channel (indexed from 0), for example TIM2_CH1 is
* channel 0 in configuration structure (cc_chan - field),
* Port column in the table describes connected port.
*
* For Nucleo-WB55 this information is in the datasheet, Table 18, page 72.
*
* @{
*/
static const pwm_conf_t pwm_config[] = {
{
.dev = TIM1,
.rcc_mask = RCC_APB2ENR_TIM1EN,
.chan = { { .pin = GPIO_PIN(PORT_A, 8) /* CN9 D6 */, .cc_chan = 0},
{ .pin = GPIO_PIN(PORT_A, 9) /* CN5 D9 */, .cc_chan = 1},
{ .pin = GPIO_PIN(PORT_A, 10) /* CN9 D3 */, .cc_chan = 2},
{ .pin = GPIO_PIN(PORT_A, 11) /* CC10 14 */, .cc_chan = 3} },
.af = GPIO_AF1,
.bus = APB2
},
};

#define PWM_NUMOF ARRAY_SIZE(pwm_config)

/** @} */

/**
* @brief USB device FS configuration
*/
Expand Down

0 comments on commit f22405e

Please sign in to comment.