Всем привет! Вопрос про контроллеры STM32, пытаюсь разобраться в чем дело.
На сайте ST для контроллеров серии stm32l1xx везде указано, что у них есть 20 штук 32 битных RTC BACKUP регистров, которые не сбрасываются при software reset или при уходе в режим StandBy:
страница 547 документации
RM0038 Reference manual for STM32L100xx, STM32L151...:
20.6.20 RTC backup registers (RTC_BKPxR)
Address offset: 0x50 to 0x60 (value line devices)
Address offset: 0x50 to 0x9C (Cat.1 and Cat.2 devices)
Address offset: 0x50 to 0xCC (Cat.3, Cat.4, Cat.5 and Cat.6 devices)
У меня контроллер STM32L151CB-A и в нем работает только первые 5 таких регистров. При этом он имеет:
DEV_ID = 0x0429
REV_ID = 0x1038
то есть является Cat.2 device, почему остальные регистры не работают?
Я посмотрел внутрь исходников CMSIS для STM32L1xx, там определяются defines для этих регистров следующим образом:
Если название микроконтроллера выглядит как STM32L1xxXX-A значит установить максимальное количество таких регистров равным 5 регистров, если окончания -A нет, значит установить максимальное количество равным 20.
Конкретно для моего микроконтроллера вставляется файл stm32l151xba.h, в нем есть строки:
/******************** Number of backup registers ******************************/
#define RTC_BKP_NUMBER 5
Но где об этом написано в официальной документации?
Я нашел только вот такую таблицу на сайте ST:
https://www.st.com/en/microcontrollers-microproces...
и там указывается только то, что контроллеры без приставки "-A" содержат меньше kB RAM, а контроллеры с приставкой "-A" содержат больше kB RAM.
Что это? Заговор? Ошибка этой линейки контроллеров, которая описана в каком-нибудь ERRATA и который я не нашёл на официальном сайте? Или у меня просто кривые руки?
Есть ли у кого какая-то информация по этому поводу?