Мелкие вопросы по МК и ПЛИС.
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="Starichok51",url="/forum/viewtopic.php?p=3311819#p3311819"]а в каких случаях нужен бутлодер и что он загружает?[/uquote]
Загружает он прошивку в свободную часть МК, нужен, например для прошивки отличным от Spi интерфейсом (есть бутлоадеры для прошивки через виртуальный USB, Uart и тд). Сам бутлоадер это под программа которая принимает информацию по даному интерфейсу, и записывает её во флеш.
Загружает он прошивку в свободную часть МК, нужен, например для прошивки отличным от Spi интерфейсом (есть бутлоадеры для прошивки через виртуальный USB, Uart и тд). Сам бутлоадер это под программа которая принимает информацию по даному интерфейсу, и записывает её во флеш.
- Starichok51
- Модератор
- Сообщения: 19043
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Мелкие вопросы по МК и ПЛИС.
понятно. это можно назвать "нестандартные" способы прошивки.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Мелкие вопросы по МК и ПЛИС.
Ну почему же не стандартные, вполне стандартные, о чём написано в даташите. Плюс ботлоадера в том что пользователь сам решает через какой интерфейс он хочет обновляться, и помимо этого позволяет переписывать прошивку контроллера постранично, т.е. захотели и переписали например только 3 страницу а не стирая весь кристалл как это обычно происходит при использовании SPI.
Re: Мелкие вопросы по МК и ПЛИС.
Jack-Sidr писал(а):Сам бутлоадер это под программа
Я бы сказал, что это не подпрограмма, а маленькая полноценная отдельная программа со своими прерываниями и полностью независимая от основной программы.
- Starichok51
- Модератор
- Сообщения: 19043
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Мелкие вопросы по МК и ПЛИС.
я когда спросил про возможность писать свою программу в область бутлодера, я предполагал, что там уже записаны стандартные загрузчики и их нельзя стирать.
но если пользователь пишет собственный загрузчик для конкретного интерфейса, то стандартным способом это называть нельзя, я так думаю.
но если пользователь пишет собственный загрузчик для конкретного интерфейса, то стандартным способом это называть нельзя, я так думаю.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="Starichok51",url="/forum/viewtopic.php?p=3312652#p3312652"]я когда спросил про возможность писать свою программу в область бутлодера, я предполагал, что там уже записаны стандартные загрузчики и их нельзя стирать.[/uquote]
Действительно есть и такие, в которых уже заложен загрузчик, например СТМ32 или Мега с аппаратным USB, но стереть его вам никто не помешает.
И да и нет: то что в контроллере специально для этого предусмотрено место и возможность стартовать с него то это как стандартное решение(так разработчиком заложено), а то что пользователь туда положит это не стандартное(индивидуальное).
Действительно есть и такие, в которых уже заложен загрузчик, например СТМ32 или Мега с аппаратным USB, но стереть его вам никто не помешает.
но если пользователь пишет собственный загрузчик для конкретного интерфейса, то стандартным способом это называть нельзя, я так думаю.
И да и нет: то что в контроллере специально для этого предусмотрено место и возможность стартовать с него то это как стандартное решение(так разработчиком заложено), а то что пользователь туда положит это не стандартное(индивидуальное).
- Starichok51
- Модератор
- Сообщения: 19043
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Мелкие вопросы по МК и ПЛИС.
все теперь понятно.
но я спрашивал на всякий случай. у меня пока нет таких больших проектов, чтобы занимать область загрузчика.
два самых больших моих проекта занимают примерно 4 кБ - половину программной памяти. до области загрузчика еще далеко...
но я спрашивал на всякий случай. у меня пока нет таких больших проектов, чтобы занимать область загрузчика.
два самых больших моих проекта занимают примерно 4 кБ - половину программной памяти. до области загрузчика еще далеко...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Мелкие вопросы по МК и ПЛИС.
Вот тут можете посмотреть про бутлоадер
https://hubstub.ru/programming/77-prosh ... ouder.html
https://hubstub.ru/stm32/159-pishim-svo ... stm32.html
https://hubstub.ru/programming/77-prosh ... ouder.html
https://hubstub.ru/stm32/159-pishim-svo ... stm32.html
- Starichok51
- Модератор
- Сообщения: 19043
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Мелкие вопросы по МК и ПЛИС.
спасибо. почитал, интересно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Мелкие вопросы по МК и ПЛИС.
По этим ссылкам не рассмотрен вопрос таблицы адресов прерываний (для STM32). Если и бутлоадер и основная прошивка используют, например, прерывания одного и того же таймера (или любой другой периферии), то возникает коллизия обработчиков этого прерывания. У бутлоадера он один, у основной прошивки другой. А адрес обработчика прерывания указан в таблице адресов прерываний, находящейся по фиксированному адресу (0x08000004). А значит возникает необходимость ремапить таблицу прерываний в конце работы бутлоадера или в начале основной прошивки.
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Вопрос по 32F0308Discovery (которая с F030). Погонял на ней пример с таймерами из сниппетсов "в лоб", без переделки. Теперь вопрос - если в нём имеется всё таки TIM2, что же тогда камень из себя представляет по железу?
Re: Мелкие вопросы по МК и ПЛИС.
По этим ссылкам не рассмотрен вопрос таблицы адресов прерываний (для STM32). Если и бутлоадер и основная прошивка используют, например, прерывания одного и того же таймера (или любой другой периферии), то возникает коллизия обработчиков этого прерывания. У бутлоадера он один, у основной прошивки другой. А адрес обработчика прерывания указан в таблице адресов прерываний, находящейся по фиксированному адресу (0x08000004). А значит возникает необходимость ремапить таблицу прерываний в конце работы бутлоадера или в начале основной прошивки.
В точку, как-то и забыл про это. Делается это так, сначала программы добавляется след учаток кода
Код: Выделить всё
__set_PRIMASK(1);
SCB->VTOR = Application_address;
__set_PRIMASK(0);
Re: Мелкие вопросы по МК и ПЛИС.
Угу, это когда есть возможность ремапить саму таблицу 
В Cortex M0, например, этого нельзя сделать. Более универсальный способ - скопировать таблицу прерываний в оперативку и ремапнуть оперативку на адрес 0x00000000
В конце бутлоадера:
В начале основной программы:
В Cortex M0, например, этого нельзя сделать. Более универсальный способ - скопировать таблицу прерываний в оперативку и ремапнуть оперативку на адрес 0x00000000
В конце бутлоадера:
Код: Выделить всё
__disable_interrupt();
NVIC->ICER[0] = 0xFFFFFFFF;
/* Jump to user application */
JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);
Jump_To_Application = (pFunction) JumpAddress;
/* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
/* Jump to application */
Jump_To_Application();
В начале основной программы:
Код: Выделить всё
const Int32U *flash = (Int32U*)APPLICATION_ADDRESS;
Int32U *svt = (Int32U*)0x20000000;
// copying vector table from ROM to RAM
NVIC->ICER[0] = 0xFFFFFFFF;
for (int i = 0; i < 48; i++)
{
svt[i] = flash[i];
}
// remap SRAM to 0x00000000
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG->CFGR1 |= 0x00000003;
Re: Мелкие вопросы по МК и ПЛИС.
Круто. Спасибо!!!
- Dentorol
- Нашел транзистор. Понюхал.
- Сообщения: 155
- Зарегистрирован: Пн июн 21, 2010 19:57:07
- Откуда: Россия - родина моя
Re: Мелкие вопросы по МК и ПЛИС.
Здравствуйте!
Мне необходимо подключить микроконтроллер STM32F103C8T6 к пору RS-232 компьютера.
Для этого использую микросхему MAX3232. При этом у нее остаются висеть в воздухе 2 входные ножки (в моем случае это 11 и 13).
Обычно в цифровых микросхемах неиспользуемые входа подсоединяют через резистор на плюс питания. По документации на микросхему MAX3232 вывод 13 внутри корпуса подключен через резистор к GND (мультиметром прозвонил действительно так - сопротивление резистора 5 кОм). А вывод 11 висит в воздухе.

По документации на микросхемы MAX232 (это у которых питание 5В) вывод 11 внутри корпуса подключен к +5В через резистор 400 кОм.

И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232? (к земле через резистор какого номинала, или может через резистор на +3,3В, а может оставить висеть в воздухе?).
Мне необходимо подключить микроконтроллер STM32F103C8T6 к пору RS-232 компьютера.
Для этого использую микросхему MAX3232. При этом у нее остаются висеть в воздухе 2 входные ножки (в моем случае это 11 и 13).
Обычно в цифровых микросхемах неиспользуемые входа подсоединяют через резистор на плюс питания. По документации на микросхему MAX3232 вывод 13 внутри корпуса подключен через резистор к GND (мультиметром прозвонил действительно так - сопротивление резистора 5 кОм). А вывод 11 висит в воздухе.

По документации на микросхемы MAX232 (это у которых питание 5В) вывод 11 внутри корпуса подключен к +5В через резистор 400 кОм.

И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232? (к земле через резистор какого номинала, или может через резистор на +3,3В, а может оставить висеть в воздухе?).
Re: Мелкие вопросы по МК и ПЛИС.
Выв.13 оставить в воздухе (он уже внутри подтянут), а выв.11 на любую шину питания, или соединить с выв.12.Dentorol писал(а):И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232?
Последний раз редактировалось korob Пт мар 09, 2018 11:46:49, всего редактировалось 2 раза.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. 
Всегда с уважением, Александр.
Всегда с уважением, Александр.
- Dentorol
- Нашел транзистор. Понюхал.
- Сообщения: 155
- Зарегистрирован: Пн июн 21, 2010 19:57:07
- Откуда: Россия - родина моя
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо за ответ!
[uquote="korob",url="/forum/viewtopic.php?p=3326563#p3326563"]а выв.11 на любую шину питания[/uquote]
Подсоединить напрямую? Или через резистор? Резистор какого номинала?
[uquote="korob",url="/forum/viewtopic.php?p=3326563#p3326563"]а выв.11 на любую шину питания[/uquote]
Подсоединить напрямую? Или через резистор? Резистор какого номинала?
Re: Мелкие вопросы по МК и ПЛИС.
Напрямую.
Про "соединить с выв.12" это я поспешил.

Последний раз редактировалось korob Пт мар 09, 2018 11:46:24, всего редактировалось 1 раз.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. 
Всегда с уважением, Александр.
Всегда с уважением, Александр.
- Dentorol
- Нашел транзистор. Понюхал.
- Сообщения: 155
- Зарегистрирован: Пн июн 21, 2010 19:57:07
- Откуда: Россия - родина моя
Re: Мелкие вопросы по МК и ПЛИС.
Но что-то я не решусь подключить 11 вывод напрямую к +3,3 В.
Наверное подключу к +3,3 В через резистор. Осталось только узнать номинал этого резистора?
Наверное подключу к +3,3 В через резистор. Осталось только узнать номинал этого резистора?
Re: Мелкие вопросы по МК и ПЛИС.
Ваше право. Всё таки я сначала был прав, и я соединил бы с выв.12.Dentorol писал(а):Наверное подключу к +3,3 В через резистор.
Спойлер
Что-то после праздника неуверенно соображаю...

Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. 
Всегда с уважением, Александр.
Всегда с уважением, Александр.