Перейти к содержанию
    

STM32 автоопределение типа

Нужно определить тип чипа, на котором выполняется прошивка.

Есть CPUID base register (SCB_CPUID)

Reset value: 0x411F C231 (STM32F1 series)

Reset value: 0x412F C230 (STM32F2 and STM32L series)

но здесь недостаточно информации. Конкретно нужно отличить F100 и F103, однако не помешал бы и более общий алгоритм.

Понятно, что можно обратиться к периферии, которая есть только в одном МК, и при её отсутствии получить HardFault, но хотелось бы обойтись без этого

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посмотрите вот здесь, обсуждают ту же тему. http://electronix.ru/forum/lofiversion/ind...hp/t100864.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё бы размер страницы флеша узнать. Не общий размер, а именно размер страницы. Хотя его можно вычислить зная общий размер, но может он где-то хранится?

И размер ОЗУ до кучи :)

Видимо, вам нужен регистр DBGMCU_IDCODE

Для F103 в errata пишут о недоступности DBGMCU_IDCODE:

The DBGMCU_IDCODE and DBGMCU_CR debug registers are accessible only in debug

mode (not accessible by the user software). When these registers are read in user mode,

the returned value is 0x00.

 

посмотрите вот здесь

Спасибо, интересная идея - через проверку возможности тактирования модулей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...