Миландр. Неожиданное поведение CAN.

У контроллеров Миландр 1986ВЕ9х довольно много небольших проблем, описанных в errata, но так же есть и не описанные. Об одной из таких проблем и поговорим. Здесь не будет кода, только поток мыслей.

Cover Image
  • Из чего состоит проблема?
  • Проблема ли это?
  • Как решить этот вопрос?

Проблема проявляется следующим образом.

Несколько буферов настроены на отправку ответа на запрос RTR. Несколько буферов на приём. Из одного буфера периодически отправляется пакет (обычный пакет данных).

Имеет несколько ситуаций:

  1. Если мы получали RTR запрос и после него решили отправить какие-то данные в простом пакете, то замечаем такую картину - отправляется пакет данных, а за ним отправляется ответ на RTR запрос (хотя никакого запроса сейчас небыло).
  2. Если мы не получали RTR запросов или получили после них просто пакеты данных (в нём не установлен флаг RTR), то при отправке лишнего пакета не наблюдается.

Отладочная плата для 1986ВЕ91Т.

Самодельная отладочная плата для микроконтроллера 1986ВЕ91Т.

Cover Image

В стране во всю силу идёт импортозамещение, компания Миландр выпускает довольно неплохие контроллеры, правда отладочные платы стоят не дёшево, да и не хватает порой в них необходимого функционала, а иногда он слишком большой. Но выход есть - изготовление своей отладки.

Данная заметка будет в виде небольшого туториала. Буду рассмотрены несколько моментов: установка keil v5 и настройка для работы с микроконтроллерами различных производителей на примере STMicroelectronics и АО "ПКК Миландр".

Установка Keil.

Одним Keil нравится, другие его презирают, другие просто его не использовали ни разу. Я себя отношу к первой группе людей, меня он в принципе устраивает многим, хороший компилятор, поддержка многих семейств микроконтроллеров, удобная отладка. Из минусов разве что бедный текстовый редактор, который можно сравнить с notepad++, который за счет большого числа плагинов и то имеет более продвинутый функционал. Но всё же есть подсветка синтаксиса, индикация ошибок, какое никакое, но автодополнение и навигация по коду. И ещё он платный, что не мало важно, хотя и имеется бесплатная версия с ограничением размера кода(прошивки) в 32 килобайта.

Подключаем FreeRTOS к Миландр.

Миландр и FreeRTOS. Как установить и настроить FreeRTOS на микроконтроллере Миландр. Описание процесса настройки и использования.

Cover Image

О полезности операционных систем реального времени можно говорить часами, ровно как и о их вреде. Но раз уж читаете эту запись, значит RTOS вам действительно нужна.

Здесь не будет описания как пользоваться FreeRTOS. Всё что будет затронуто - это запуск на микроконтроллере 1986ВЕ92У (К1986ВЕ92QI) фирмы Миландр. В принципе данный гайд аналогичен для 91, 93 и 94 чипа.

Если разобраться, и разложить всё по пунктам, то можно привести всю задачу к нескольким простым шагам:

  • скачиваем FreeRTOS и распаковываем;
  • создаем проект в Keil (я использую версию 5);
  • подключаем операционную систему;
  • настраиваем и пользуемся.

Управление выводами порта совмещенного с JTAGом.

Управление выводами портов MDR_PORTB и MDR_PORTD, при использовании отладочного интерфейса JTAGA и/или JTAGB. Глюки JTAG. Что делать если отваливается JTAG.

Cover Image

Данная статья носит характер небольшой заметки, а не учебного пособия.

Одной из особенностей микроконтроллеров Миландр серии 9х (точно знаю о 92, 93 с которыми работаю), на мой взгляд, это не совсем продуманная организации управления портами ввода вывода, а именно отсутствие привычных для пользователей stm32 регистров BRR и BSRR, которые позволяют атомарно устанавливать и сбрасывать их состояние. Соответственно необходимо выполнять команды чтение-модификация-запись, что в принципе приемлемо, но...