Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
Следующая версия
Следующая версия справа и слева
|
ob:o7:stm32f103c8t6 [2017/10/03 10:41] prospero78 [Подготовка инструментов] |
ob:o7:stm32f103c8t6 [2017/10/03 10:59] prospero78 [Заключение] |
По сути, код показывает, как можно плавно (ШИМ) и дискретно управлять встроенным светодиодом. Вся программа состоит из мелких процедур, разобрать самостоятельно их совсем не сложно. | По сути, код показывает, как можно плавно (ШИМ) и дискретно управлять встроенным светодиодом. Вся программа состоит из мелких процедур, разобрать самостоятельно их совсем не сложно. |
==== Компиляция ==== | ==== Компиляция ==== |
Файл модуля должен быть сохранён в папке 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, необходимо выполнить команду: |
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**! :-) |
| |