STM32H7S3との格闘(USB編)
んが、まだ格闘中なので、雑なメモ的な感じ
事の発端は、STの評価ボードNucleo-H7S3L8でUSB周りの実装を確認しようとSTM32CubeH7RSにあるCDC_Standaloneが動いた(ここまでは良かった)ので、Template_boardをベースにUSB CDCに対応させようとしたらどえらい目に遭った。
usbpd_dpm_user.c
USBPD_DPM_Notification関数のSwitch文のコメントを消す。
case USBPD_NOTIFY_USBSTACK_START
に
USBPD_USBIF_DeviceStart(PortNum);
を追加。
case USBPD_NOTIFY_USBSTACK_STOP
に
USBPD_USBIF_DeviceStop(PortNum);
を追加
usbpd_usb_if.c
USBPD_USBIF_DeviceStart関数に
if (USBD_Start(&hUsbDeviceHS) != USBD_OK)
{
Error_Handler();
}
を追加
USBPD_USBIF_DeviceStop関数に
if (USBD_Stop(&hUsbDeviceHS) != USBD_OK)
{
Error_Handler();
}
を追加
stm32h7rsxx_nucleo.c/.h
nucleo-H7S3L8のオンボードLEDとタクトスイッチ、UARTのGPIO設定がここに書かれている。
ボード名やバージョンなどを返す関数が用意されている。
stm32h7rsxx_nucleo_bus.c/.h
TCPP03につながっているI2C3の設定がここに書かれている。
I2CのRead/Writeに使うHALなんちゃら関数をラップした関数群もここにある。
stm32h7rsxx_nucleo_usbpd_pwr.c/.h
TCPP03に繋がっているI2C以外のIO(EN、INT、ADC)の設定がここに書かれている
GPIOの設定、初期化周りを変更して流用
tcpp0203.c/.h
tcpp0203_reg.c/.h
は流用