Инструменты пользователя

Инструменты сайта


ob:o7:stm32f103c8t6

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ob:o7:stm32f103c8t6 [2017/10/03 10:37]
prospero78 [Подключение]
ob:o7:stm32f103c8t6 [2020/10/29 07:08] (текущий)
Строка 5: Строка 5:
  
 ==== Почему именно этот контроллер? ==== ==== Почему именно этот контроллер? ====
-Как уже было сказано в одной статье, этот контроллер достаточно дешёвый (130 рублей на январь 2017 года), есть компилятор под него на языке **Oberon-07**, который работает как подсистема в среде **BlackBox Component Builder**. Контроллер весьма развит, так что это вполне разумный выбор.+Как уже было сказано в одной статье, этот контроллер достаточно дешёвый (130 рублей на январь 2017 года), есть [[ob:o7|компилятор под него на языке **Oberon-07**]], который работает как подсистема в среде **BlackBox Component Builder**. Контроллер весьма развит, так что это вполне разумный выбор.
  
 ==== Заказ контроллера ==== ==== Заказ контроллера ====
Строка 55: Строка 55:
 || GND   || GND || || GND   || GND ||
  
-На контроллере, по крайней мере, две точки подключения 3V3 и GND. Никакой разницы нет между контактами с одинаковой маркировкой. Тут проблем не будет.+На контроллере, по крайней мере, две точки подключения `3V3и `GND`. Никакой разницы нет между контактами с одинаковой маркировкой. Тут проблем не будет.
  
 ==== Подготовка инструментов ==== ==== Подготовка инструментов ====
-Разумеется, потребуется BlackBox Component Builder. На этой Вики, в разделе ссылки можно скачать этот пакет. +Разумеется, потребуется **BlackBox Component Builder**. На этой Вики, в разделе ссылки можно скачать этот пакет. 
-В данном случае был использован пакет для Linux (x64). Он свободно скачивается с сайта http://oberoncore.ru/, раздел "Проекты". Пакет подготовлен Иваном Денисовым ((Новосибирск рулит)), потому, как всегда всё работает)). Выбор такого пакета обусловлен тем, что у автора статьи на личном ноуте стоит Linux Mint (x64). Обратите внимание: чтобы под Linux запустился BlackBox -- необходимо установить все пакеты, от которых зависит BlackBox. На странице загрузки Иван Денисов представил исчерпывающую информацию, как это сделать. На http://youtube.com/ можно посмотреть дополнительно видео.+В данном случае был использован пакет для **Linux (x64)**. Он свободно скачивается с сайта http://oberoncore.ru/, раздел "Проекты". Пакет подготовлен **Иваном Денисовым** ((Новосибирск рулит)), потому, как всегда всё работает)). Выбор такого пакета обусловлен тем, что у автора статьи на личном ноуте стоит **Linux Mint (x64)**. Обратите внимание: чтобы под **Linux** запустился **BlackBox** -- необходимо установить //все// пакеты, от которых зависит **BlackBox**. На странице загрузки **Иван Денисов** представил исчерпывающую информацию, как это сделать. На http://youtube.com/ можно посмотреть дополнительно видео.
  
-Кроме BlackBox потребуется компилятор от Александра Ширяева((https://github.com/aixp/O7)). В этой подсистеме для BlackBox будет несколько папок: +Кроме **BlackBox** потребуется компилятор от** Александра Ширяева** ((https://github.com/aixp/O7)). В этой подсистеме для **BlackBox** будет несколько папок: 
-  * Micro -- содержит набор модулей для описания внутренней архитектуры множества контроллеров и их распиновку. Практически все они построены поверх ядер процессоров ARMv6 и ARMv7((Тех самых, что стоят в наших мобильных телефонах на базе Android)) +  * `Micro-- содержит набор модулей для описания внутренней архитектуры множества контроллеров и их распиновку. Практически все они построены поверх ядер процессоров **ARMv6** и **ARMv7** ((Тех самых, что стоят в наших мобильных телефонах на базе **Android** )) 
-  * O7 -- собственно, сам компилятор Oberon-O7. +  * `O7-- собственно, сам компилятор **Oberon-O7**
-  * Examples -- содержит ряд примеров, но их совсем немного. Так что вероятность, что попадётся пример под нужную модель контроллера весьма низка.+  * `Examples-- содержит ряд примеров, но их совсем немного. Так что вероятность, что попадётся пример под нужную модель контроллера весьма низка.
  
 ==== Код программы ==== ==== Код программы ====
Строка 210: Строка 210:
 По сути, код показывает, как можно плавно (ШИМ) и дискретно управлять встроенным светодиодом. Вся программа состоит из мелких процедур, разобрать самостоятельно их совсем не сложно. По сути, код показывает, как можно плавно (ШИМ) и дискретно управлять встроенным светодиодом. Вся программа состоит из мелких процедур, разобрать самостоятельно их совсем не сложно.
 ==== Компиляция ==== ==== Компиляция ====
-Файл модуля должен быть сохранён в папке Mod подсистемы Micro. Если попытаться стандартным способом скомпилировать эту программу -- ничего не выйдет. Это правильно. Так как, это не Компонентный Паскаль!! Это Oberon-O7!!! Хотя, спутать их не составит никакой сложности. Разница между этими двумя языками -- в деталях ((именно в деталях кроется дьявол)). +Файл модуля должен быть сохранён в папке `Modподсистемы `Micro`. Если попытаться стандартным способом скомпилировать эту программу -- ничего не выйдет. Это правильно. Так как, это не **Компонентный Паскаль**!! Это **Oberon-O7**!!! Хотя, спутать их не составит никакой сложности. Разница между этими двумя языками -- в деталях ((именно в деталях кроется дьявол)). 
  
-Если подсистема O7 установлена верно, то должно появиться соответствующее меню -- O7. Именно в нём и надо выбрать команду на компиляцию. В нашем случае -- это архитектура ARMv7. Либо воспользоваться коммандером в комментариях, либо за концом модуля.+Если подсистема `O7установлена верно, то должно появиться соответствующее меню -- `O7`. Именно в нём и надо выбрать команду на компиляцию. В нашем случае -- это архитектура **ARMv7**. Либо воспользоваться `коммандеромв комментариях, либо за концом модуля.
  
 И, конечно, полученный бинарник надо скомпоновать с загрузчиком. После этого, бинарный код готов к прошивке на контроллер. И, конечно, полученный бинарник надо скомпоновать с загрузчиком. После этого, бинарный код готов к прошивке на контроллер.
  
 ==== Прошивка контроллера ==== ==== Прошивка контроллера ====
-Для успешной прошивки контроллера необходимо установить программу stm32flash. На контроллере, для успешной прошивки необходимо перемычку boot0 поставить в положение ON((изначально обе перемычки стоят в OFF)). Это разрешит прошивку контроллера в его системную память. И в завершении всего, необходимо нажать кнопку RESET. Это заставит контроллер войти в режим прошивки и ожидать информацию с порта UART1 (те самые две ножки на боковой гребёнке контроллера).+Для успешной прошивки контроллера необходимо установить программу **stm32flash**. На контроллере, для успешной прошивки необходимо перемычку boot0 поставить в положение ON((изначально обе перемычки стоят в OFF)). Это разрешит прошивку контроллера в его системную память. И в завершении всего, необходимо нажать кнопку RESET. Это заставит контроллер войти в режим прошивки и ожидать информацию с порта UART1 (те самые две ножки на боковой гребёнке контроллера).
  
 После этого, из каталога, где лежит готовый файл-прошивка с именем нашего модуля, но расширением *.hex, необходимо выполнить команду: После этого, из каталога, где лежит готовый файл-прошивка с именем нашего модуля, но расширением *.hex, необходимо выполнить команду:
Строка 223: Строка 223:
     stm32flash -w ./SlowLed.hex -v -g 0x0 /dev/ttyUSB0     stm32flash -w ./SlowLed.hex -v -g 0x0 /dev/ttyUSB0
  
-Обратите внимание, что имя файла указано без названия подсистемы. Утилита stm32flash не понимает таких выкрутасов. Кроме того, устройство /dev/ttyUSB0 -- у читателя может называться по-другому. Чтобы узнать название устройства, необходимо запустить stm32flash без параметров((если не получится посмотрите видео Ивана Денисова)).+Обратите внимание, что имя файла указано без названия подсистемы. Утилита **stm32flash** не понимает таких выкрутасов. Кроме того, устройство `/dev/ttyUSB0-- у читателя может называться по-другому. Чтобы узнать название устройства, необходимо запустить **stm32flash** без параметров ((если не получится посмотрите видео **Ивана Денисова** )).
  
-Если прошивка прошла успешно, утилитка stm32flash выведет сообщение, что прошивка залита на 100%. У автора статьи за примерно 20 попыток прошить -- не было ни одного сбоя. Признаком передачи информации будет моргание светодиода на контроллере UART (Если, конечно, такой есть. А он обычно есть).+Если прошивка прошла успешно, утилитка **stm32flash** выведет сообщение, что прошивка залита на 100%. У автора статьи за примерно 20 попыток прошить -- не было ни одного сбоя. Признаком передачи информации будет моргание светодиода на контроллере `UART(Если, конечно, такой есть. А он обычно есть).
  
 После окончания прошивки контроллер сразу перейдёт к исполнению программы. Смотрим ссылку на видео: [[https://vk.com/videos309656471?z=video309656471_456239142%2Fpl_309656471_-2|вот так оно работает]], и, как говорится, не забываем ставить лайки :-) После окончания прошивки контроллер сразу перейдёт к исполнению программы. Смотрим ссылку на видео: [[https://vk.com/videos309656471?z=video309656471_456239142%2Fpl_309656471_-2|вот так оно работает]], и, как говорится, не забываем ставить лайки :-)
  
-Для того, чтобы контроллер работал сразу после подачи питания в автономном режиме, необходимо перемычку boot0 вернуть в положение OFF. В качестве источника питания подойдёт любая зарядка от сотового телефона с выходным током от 250 мА.+Для того, чтобы контроллер работал сразу после подачи питания в автономном режиме, необходимо перемычку `boot0вернуть в положение `OFF`. В качестве источника питания подойдёт любая зарядка от сотового телефона с выходным током от 250 мА. Если будет необходимость питать дополнительную периферию -- не следует стесняться взять блок питания под 1000 мА.
  
 ==== Заключение ==== ==== Заключение ====
-Большая часть операций выполняется один раз, привыкание к языку Oberon-O7 происходит быстро. На долю без повторений выпадает, по сути, только написание кода и полезной обвязке ((Схемотехника очень схожа на Arduino, с той лишь разницей, что напряжение 3,3 Вольта вместо 5 Вольт у Arduino. Все схемы адаптируются достаточно легко.)) Необходимо обратить внимание читателей: использование силовой электроники (от 50 Вольт переменки и выше) опасно для жизни. Поэтому, обязательно -- почитайте про правильную работу с высокими напряжениями при завязке на низковольтные контроллеры.+Большая часть операций выполняется один раз, привыкание к языку **Oberon-O7** происходит быстро. На долю без повторений выпадает, по сути, только написание кода и полезной обвязке ((Схемотехника очень схожа на **Arduino** , с той лишь разницей, что напряжение 3,3 Вольта вместо 5 Вольт у **Arduino** . Все схемы адаптируются достаточно легко.)) Необходимо обратить внимание читателей: использование силовой электроники (от 50 Вольт переменки и выше) опасно для жизни. Поэтому, обязательно -- почитайте про правильную работу с высокими напряжениями при завязке на низковольтные контроллеры.
  
-И удачи всем в освоении Oberon-O7! :-)+И удачи всем в освоении **Oberon-O7**! :-)
  
ob/o7/stm32f103c8t6.1507016223.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)