The VREFINTON bit in the ADC_TRIGR1 register must be set to enable the internal reference voltage. This reference voltage must be enabled only if its conversion is required. (п. 14.3.17, стр. 212)
Так вот, что будет, если я включу источник опорного напряжения и оставлю его включенным на все время работы, чтобы периодически его читать? Правда случится что-то страшное, или наличие там слова "must" определяется только тем, что писавшие даташит плохо знают английский?
Вообще, документация на STM8L крайне халтурная. Вполне себе встречаются параграфы типа такого:
As shown in [где???], four different input modes can be theoretically be configured by software: floating without interrupt, floating with interrupt, pull-up without interrupt or pull-up with interrupt. However in practice, not all ports have external interrupt capability or pull-ups. You should refer to the datasheet pin-out description for details on the actual hardware capability of each port. (п. 10.3.1, стр. 118)
Cами же контроллеры вмещают в себя набор самых, гм, интересных технических решений - регистры USART_BRRn устроены крайне интересно, а АЦП имеет предельный период бездействия, после которого его обязательно надо перезапускать. А, да, и опорное напряжение нельзя использовать прямо как опорное напряжение АЦП, по нему можно только калиброваться.
Я читал аппноут от ST, посвященный конкретно АЦП STM8L, но там про этот момент ничего нет.
UPD:
Вопрос во многом отпал сам собой. Оказывается, канал источника опорного напряжения нельзя поставить в очередь каналов!
Bit 4 CHSEL_SVREFINT: Selection of channel VREFINT for scan
These bits are set/reset by software. Channels VREFINT must be kept reset.
A value ‘1’ in the CHSEL_Sx bit means that channel x is assigned in the scan sequence.
- 14.6.11, стр. 221.
Фантастика! Бит есть, он не зарезервирован, его технически можно поставить, но это запрещено. То есть, я не могу использовать DMA и сделать так, чтобы в двух переменных автоматически появлялись два значения: измеренное на внешнем входе и значение с опорного источника. Без такой возможности моя затея теряет смысл... Придется ставить внешнюю опору.