Stm32f103zg can

Тема в разделе " Умный дом ", создана пользователем asasl , Искать только в заголовках Сообщения пользователя: Имена участников разделяйте запятой. Новее чем: Искать только в этой теме Искать только в этом разделе Отображать результаты в виде тем. Быстрый поиск. Метки: arm can stm32 умный дом.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Work in progress: STM32F103 based vehicle computer

STM32F103CBT6, Микроконтроллер 32-Бит, Cortex-M3, 72МГц, 128КБ Flash, USB, CAN, [LQFP-48]


В рамках данной статьи я постараюсь максимально подробно разобрать программный код и подробно описать "подводные камни", с которыми может впервые столкнуться новичок. Каждый порт - это две ножки: TX - для передачи данных и RX - для приема данных с шины.

CAN-порт для удобства можно перенаправить на другие ножки контроллера, это может облегчить разводку платы. Для подсоединения контроллера к шине требуется еще один электронный компонент - приемопередатчик физического уровня сети трансивер , как правило -это 8-ми контактная микросхема в корпусе SOIC-8 или DIP Трансивер в виде отдельной микросхемы является необходимостью.

Объясняется это, прежде всего, высокими требованиями к его надежности и рабочим характеристикам, поскольку работает он с цепями, физически выходящими за пределы устройства в данном случае это сама шина CAN.

А условия, в которых находятся эти цепи, зачастую не определены: например, сильные магнитные поля или пролегающие рядом силовые высоковольтные цепи. Более того, при необходимости гальванической развязки ее удобнее всего осуществлять именно между трансивером и контроллером CAN-сети.

Данный материал посвящен больше программной части, поэтому более подробно о "железной" составляющей проекта, о видах трансиверах и вариантах их использования, я опишу в отдельной статье. Вдобавок нужно также предусмотреть обработку ошибок CAN, но сделаем это в отдельной статье, так как для первого запуска и понимания работы с шиной этого будет достаточно. В определениях сразу предусмотрим возможность переопределения портов обмена с CAN шиной.

Следует обратить внимание на то, что если в Вашем микроконтроллере несколько CAN устройств, то настройка переадресации, как и настройка CAN в целом, может немного отличаться. Далее в процедуре инициализации мы включаем тактирование альтернативных функций, CAN-шины и порта, на котором будет "висеть" наша шина, иначе у нас ничего не заработает, так как контроллер не будет знать, что эту периферию нужно активировать.

Если у нас включена переадресация, то компилятор добавит в код еще и команду ремапинга портов шины. Если этот режим включен, то микроконтроллер при передаче кадра не будет проверять подтверждение получения пакета всеми устройством на шине. Другими словами: При включенном параметре передал и забыл, при выключенном - передал и проверил, если не смог отправить, то пытается еще раз, пока не сможет отправить.

Если устройство не подключено к шине или если неправильно настроены тайминги, то при выключении этого параметра контроллер будет бесконечно пытаться отправлять пакет в шину. При подключении осциллографа к шине, если устройство нормально функционирует, мы увидим всплески активности в зависимости от того, как часто передаем данные по шине. Если же устройство не будет получать подтверждение о получении пакетов, то осциллограф нарисует "расческу", так как устройство будет бесконечно пытаться передать пакеты, пока не получит подтверждения.

В этих режимах Вы сможете отправлять пакеты данных и принимать их же на одном устройстве. Синхронизация и тайминги в CAN — отдельный, важный и сложный вопрос. Однако, благодаря сложности и продуманности становится не так важна возможная рассинхронизация и нестабильность тактовых частот узлов сети, и связь становится возможной даже в тяжёлых условиях. Захват значения бита происходит на границе BS1 и BS2. В процессе приёма приёмник определяет, в какой из временных периодов произошёл перепад сигнала то есть начало приёма нового бита.

Таким образом, происходит постоянная пересинхронизация с частотой других приёмников. В нашем примере мы настраиваем тайминги с учетом того, что перефирия настроена на частоту 8MHz.

С помощью калькулятора таймингов, выбираем оптимальные под нашу шину и микроконтроллер. Скорость шины настраивается с помощью прескалера. В принципе можно добится скорости вплоть до 1 Мбита. Более подробно о том что такое тайминги, а также как их правильно выставить описано в отдельной статье STM Настройка таймингов работы CAN. Все входящие сообщения проходят через фильтр. Благодаря этому уменьшается нагрузка на процессор, так как ему не приходится самому отфильтровывать ненужные сообщения — это делается на аппаратном уровне.

В рамках данной публикации я не буду подробно описывать настройку работы с фильтрами, это материал для отдельной статьи см. Почтовые ящики. Фильтры пакетов CAN. Необходимо обратить внимание, что настройка фильтров и включение их обязательно, иначе Вы не сможет получать сообщение из шины. С прерываниями дела обстоят ни чуть не сложнее, чем со структурой инициализации.

Для начала надо настроить и проинициализировать контроллер прерываний NVIC — Nested vectored interrupt controller. В архитектуре STM32 каждому прерыванию можно выставить свой приоритет для случаев, когда возникает несколько прерываний одновременно. Поэтому NVIC представляет нам несколько вариантов формирования приоритетных групп. Для того, чтобы мы смогли получать сообщения из CAN шины, мы должны включить прерывания на получение сообщений шины, а также разрешить прерывания по факту появления сообщений в почтовом ящике.

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

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

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

Рассмотрим вариант обработки прерывания на основе тестового сообщения сети. Идентификаторы команд указаны в заголовочном файле can. Но Вы можете использовать и любые свои. Для начала мы объявляем переменную и заполняем ее нулями. Если этого не сделать, то сообщение будет заполнено "мусором", что может нам несколько усложнить жизнь в случае появления ошибок.

Затем проверим формат кадра: Если стандартный, то проверяем параметр "StdID" , но а если расширенный, то данные команды будут в параметре "ExtId". Здесь мы не рассматриваем передачу блока данных но в тестовом сообщении мы их передавали.

Для отправки тестового пакета в шину напишем отдельную функцию, которая будет вызываться из основного цикла программы несколько раз в секунду. Здесь все просто: объявляем переменную TxMessage, заполняем данные для отправки и выполняем команду передачи данных в шину. Стандартный формат кадра имеет длину в 44 бита, а формат расширенного кадра - 64 бита.

Но полезная нагрузка одного пакета выше у расширенного, так как на 64 бита он имеет 29 бит полезной информации, а в стандартном на 44 бита всего 11 бит полезной нагрузки.

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

Также стоит обратить внимание на устройство, на котором выполняется тестирование: Если это STM Discovery, то есть вероятность того, что на пинах CAN висит дополнительная обвязка отладочной платы, которая может искажать обмен данных с трансивером. Лучше всего использовать отладочные платы с минимальным "обвесом". Так же стоит обратить внимание и на тайминги.

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

Для своих сетей Вы можете настраивать тайминги на свой вкус и требования "скоростного режима", главное не отходить от стандарта и следить, чтобы на всех устройствах тайминги были одинаковыми. Чтобы не очень перегружать информацией, часть материала с более подробным материалом оформил в отдельных статьях. Во вложениях к статье приведен полный код программы, рассматриваемый в статье.

Решения Устройства. CAN протокол Описание. Авторизация Логин. Запомнить меня. Физическая связь В первую очередь попытаемся разобраться как наш микроконтроллер связывается с CAN-шиной. Разберем теперь каждый этап подробнее. В принципе это вся настройка пинов, теперь нам осталось сделать инициализацию самого устройства.

Нам необходимо задать несколько параметров протокола, а также режим работы и тайминги. Листинг 2. Начнем с параметров работы CAN: Таб. Этот параметр влияет на включение таймера.

Внутренний битный таймер используется для привязки метки времени к каждому принятому и отправленному сообщению. Этот таймер начинает счет с момента разрешения работы контроллера CAN. Включение или отключение автоматического отключения шины. Если режим включен, то при накоплении ошибок приема данных из шины, CAN автоматически будет отключен. В любом случае необходимо контролировать ошибки приема, содержимое почтовых ящиков и, при необходимости сбрасывать ошибки вручную.

Включение или отключение автоматического пробуждения устройства по сигналу с CAN-шины. При включении этого параметра устройство будет автоматически просыпаться, но следует обратить внимание что на активацию устройства требуется некоторое время и первый пакет, переданный по шине, может быть утерян. Включение или отключение режима проверки получения пакета. Включение или отключение приоритета передачи FIFO Включение этого параметра определяет, в каком порядке сообщения будут отправляться в шину.

Если же выключен, то пакеты передаются в зависимости от приоритета ID пакета. Данные будут передаваться и читаться из шины. Но пакеты из шины доходить до контроллера не будут.

Например, если нам нужно подключиться к CAN шине автомобиля, но мы боимся допустить какие либо сбои из-за неправильной отправки пакетов в шину, то этот режим будет идеальным, так как в шину автомобиля пакеты из устройства попадать не будут.

Этот режим идеален для отладки устройства.


STM32F103RCT6, Микроконтроллер 32-Бит, Cortex-M3, 72МГц, 256КБ Flash, USB, CAN [LQFP-64]

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Мегапосты: Криминальный квест HR-истории Путешествия гика. Войти Регистрация. В то же самое время на сайтах автолюбителей находились самодельные устройства для подключения к CAN шине автомобиля. Работают они с программой CAN Hacker, которая выглядит достаточно удобной для работы.

Такое у нас уже сделано на STM32F Ну будем делать на Год назад я тоже начинал УД на шине CAN. Разработал несложный.

Серия микроконтроллеров широкого назначения STM32F103ZG

Перед разработчиком современных встраиваемых микроконтроллерных систем, как правило, остро стоят следующие задачи:. Именно для решения данных задач и было разработано ядро Cortex-M3 c рядом усовершенствований в архитектуре. В частности ядром, которое содержит 3-ступечатый конвейер и выполнено по Гарвардской архитектуре, поддерживается ряд новых возможностей, в том числе предсказание переходов, однотактное умножение данных, аппаратное деление данных. Реализация данных новаций позволила добиться уровня удельной производительности 1. Снизить стоимость и энергопотребление разработчикам ядра Cortex-M3 удалось за счет оптимизации архитектуры, снижения размеров кристалла вследствие более плотного расположения компонентов ядра, снижения количества логических вентилей и повышения эффективности использования памяти и применения технологии 0,18 мкм. Возможности управления тактовой частотой и доступность нескольких экономичных режимов работы позволяют еще больше снизить энергопотребление. При разработке ядра Cortex-M3 учитывалось, что разработчик должен приложить минимум усилий на освоение программирования.

STM32F103 и CAN HAL

Stm32f103zg can

Серия STM32F с тактовой частотой 36МГц является бюджетным вариантом STM32F и предлагает пользователям битных контроллеров значительный прирост в производительности при том же уровне цен. STM32 идеально подходит для приложений с батарейным питанием, так как работает при напряжении питания от 2 до 3,6В и потребляет до 2мкА в режиме ожидания с работающей схемой сброса. Области применения: автомобильная электроника, промышленная автоматика, оборудование для беспроводной связи. Выберите регион , чтобы увидеть способы получения товара.

Заказал как-то в Китае такую вот отладочную плату.

Умный дом на шине CAN

You can use our design to redesign your board or you can learn to design Schematic and pcb. You can profit from studying and designing by yourself. Welcome to our online store. Доставка Окт 19 и Окт Вы можете использовать эти файлы для редизайна платы или научиться проектировать файлы схем, используя эти исходные файлы.

Настройка модуля CAN на микроконтроллере STM32F103. Часть 1

Модуль реализует оптимальный для многих приложений набор функций, опираясь на преимущества линейки Performance семейства STM На плате установлен двухрядный штыревой разъем 2х25 , на который выведены 48 линий портов микроконтроллера. Для целей отладки служит разъем JTAG. Версии систем программирования также имеются. Исходные тексты программ полностью доступны разработчику. Таким образом, модули могут быть проверены в любой момент в процессе эксплуатации. Отлаженная схемотехника наиболее сложной части встраиваемой системы, оптимизированная топология платы и наличие развитых функций отладки позволяют использовать модуль TE-STM32F как на этапе разработки, так и в составе серийной системы управления. Принципиальная схема в формате.

Микроконтроллеры семейства STM32F10x: серия STM32F с тактовой частотой 72МГц, обеспечивает лучшую в can, i2c, irda, lin, spi, uart, usb.

STM32F103CBT6, Микроконтроллер 32-Бит, Cortex-M3, 72МГц, 128КБ Flash, USB, CAN, [LQFP-48]

Отправить комментарий. CAN bus. Shown is a block diagram of the CAN controller.

Микроконтроллеры на основе ядра ARM Cortex M3

Этим "что-то" будет сказ про наших российских "производителей" и их цены прям заоблачных высот и про простых китайцев с приличным ценником. И тут я вспомнил что не так давно видел пост про IskraJS и припомнил ее тех. И знаете что? А то что плата от китайцев минимум в 4 раза дешевле "российской" и в 6 раз дешевле оригинальной. При идентичных параметрах с оригинальной, китайская плата даже еще меньше чем оригинальная Espruino Board. Контроллер у искры правда следующего поколения но это не повод накидывать 4 цены за плату.

Если я правильно понимаю, STM позиционирует

Выберите регион , чтобы увидеть способы получения товара. Вход с паролем и Регистрация. Мой регион: Россия. Корзина руб. Статус заказа.

Печатную плату STM32FEXB можно изготовить при помощи лазерно-утюжной технологии самостоятельно или заказать готовую у пользователя Volldemar , который является разработчиком данной платы. Как видно из предыдущих рисунков на плате установлено два интерфейса RS , по одному интерфейсу CAN и RS, держатель для часовой батарейки, импульсный преобразователь со входным напряжением 9…36В и выходным 5,2 В, селектор питания для автоматического переключения питания платы между внешним адаптером и питанием от интерфейса USB, цифровой датчик температуры , разъемы расширения портов микроконтроллера и разъемы для установки головной платы STM32H Слоты для установки головной платы не имеют направляющих ключей, поэтому нужно быть внимательным при установке.




Комментарии 0
Спасибо! Ваш комментарий появится после проверки.
Добавить комментарий

  1. Пока нет комментариев.