Выход VREF на STM32L0 - PullRequest
0 голосов
/ 07 мая 2018

У меня есть STM32L051 и я хочу управлять внешним ЦАП (SPI).

Для этого я хотел бы использовать эту функцию, описанную в ручном , для вывода внутреннего опорного напряжения на PB1 штифт STM32.

Я использую STM32Cube HAL в качестве основы. Однако примеры использования VREF ограничены внутренним использованием для АЦП и компараторов.

Если я правильно понимаю, я могу использовать регистр CFGR3, чтобы включить VREF, а также подключить его к PB1. Используя драйверы Cube, я могу использовать функцию HAL_SYSCFG_VREFINT_OutputSelect(SYSCFG_VREFINT_OUT_PB1), но для ее включения я должен использовать либо HAL_ADCEx_EnableVREFINT(), либо HAL_COMPEx_EnableVREFINT(). Информация о SEL_VREF_OUT, указанная в руководстве, указывает, что необходимо установить ENBUF_VREFINT_ADC.

Кроме того, не упоминается конфигурация самого вывода. Должен ли я просто объявить его как вывод ЦАП? Вывод АЦП?

1 Ответ

0 голосов
/ 15 мая 2018

Ответ

Это так же просто, как

if ( HALD_ADCEx_EnableVREFINT() != HAL_OK )
{
  Error_Handling();
}
HAL_SYSCFG_VREFINT_OutputSelect(SYSCFG_VREFINT_OUT_PB1);

И я вижу напряжение 1,22 В на выходе PB1.

Не требует дополнительной настройки контактов (GPIO).


Осложнения и обоснование вопроса (можно пропустить)

У меня были некоторые проблемы с доской из нашего электронного отдела. и, таким образом, переключился на плату STM32L053-Discovery. Вышеуказанное решение не сработало, и я продолжал видеть 0 В на PB1 (или PB0).

Я предположил, что это связано с отсутствием какой-либо конфигурации. Однако после некоторых дальнейших испытаний я обнаружил, что на этой плате Discovery PB1 и PB0 зарезервированы для датчика. При закрытии моста SB23, я мог бы использовать PB1 обратно в GPIO, и, таким образом, видеть опорное напряжение на выводе.

...