www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Умный датчик. Smart sensor. http://www.open-tager.ru/forum/viewtopic.php?f=5&t=4949 |
Страница 5 из 17 |
Автор: | Pingvin [ 28 дек 2016, 09:58 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
К вопросу о надежности UART TTL - терзают меня смутные сомнения... Как бы при длине шлейфа метр-другой не повалились ошибки приема. Может драйвер RS485 поставим? Тогда 500м я вам гарантирую! |
Автор: | Alexies [ 28 дек 2016, 09:58 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Pacifist писал(а): Абсолютно не затасканная, к примеру - Synchronous Serial Port Никогда о таком сокращении не слышал в литературе. Википедия тоже, в общем-то. Только Server-to-Server Protocol и Serial SCSI Protocol, но это не очень популярные понятия, и из другой области. https://en.wikipedia.org/wiki/SSP |
Автор: | Alexies [ 28 дек 2016, 10:01 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Pingvin писал(а): К вопросу о надежности UART TTL - терзают меня смутные сомнения... Как бы при длине шлейфа метр-другой не повалились ошибки приема. А отчего они должны появиться? Шина-то асинхронная. На невысокой скорости, например, 115200 b/s, можно очень длинный кабель класть. А на большей - придется поднимать частоту МК, и не будет хватать стабильности внутреннего тактирующего RC-генератора. |
Автор: | Pingvin [ 28 дек 2016, 10:04 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Alexies писал(а): Pingvin писал(а): К вопросу о надежности UART TTL - терзают меня смутные сомнения... Как бы при длине шлейфа метр-другой не повалились ошибки приема. А отчего они должны появиться? Шина-то асинхронная. На невысокой скорости, например, 115200 b/s, можно очень длинный кабель класть. А на большей - придется поднимать частоту МК, и не будет хватать стабильности внутреннего тактирующего RC-генератора. У меня с SPI проблемы начинаются при длине шины между датчиками более полуметра. Это же не rs232, а TTL уровень. Проверять надо... И от статики никакой защиты. Предлагаю таки частоту тактирования поднять до 24 МГц |
Автор: | Pingvin [ 28 дек 2016, 10:11 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Цитата: У меня на 250 кБод на двух проводах от витой пары при длине провода каких то 30 см работало с ошибками, пока MAX485 не поставил. Правда там у меня было 5-вольтовый к 3 - вольтовому, но суть дела не меняет. Так что без драйверов - никуда. http://www.microchip.su/showthread.php?t=7474 |
Автор: | Alexies [ 28 дек 2016, 10:35 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Pingvin писал(а): Цитата: У меня на 250 кБод на двух проводах от витой пары при длине провода каких то 30 см работало с ошибками, пока MAX485 не поставил. Правда там у меня было 5-вольтовый к 3 - вольтовому, но суть дела не меняет. Так что без драйверов - никуда. http://www.microchip.su/showthread.php?t=7474 Надо попробовать. Не думаю, что будут проблемы. На худой конец, можно понизить скорость. Даже 9600 хватит на всё. Меня больше смущает другое обстоятельство: каждый чип будет подтягивать шину к +3.3. Если их будет с десяток, это может стать проблемой. Может ли STM32 не подтягивать вовсе в режиме UART - не понятно. |
Автор: | Pingvin [ 28 дек 2016, 10:44 ] | ||
Заголовок сообщения: | Re: Умный датчик. Smart sensor. | ||
Ну давайте драйвер воткнём rs485. Шлейф из 255 датчиков длиной до 1500м будет работать "на ура"!
|
Автор: | Alexies [ 28 дек 2016, 11:16 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Pingvin писал(а): Ну давайте драйвер воткнём rs485. Шлейф из 255 датчиков длиной до 1500м будет работать "на ура"! Ага, только это дифференциальная пара, 2 провода. Проще сразу брать I2C. Вот только что для проверки воткнул между платой и USB-UART адаптером по полудуплексной линии провод метров в 5, ничего не поменялось, все работает. Скорость 115200. |
Автор: | Pingvin [ 29 дек 2016, 09:05 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Рано радовался - так до конца этот навороченный Таймер 1 не победил. Начал разные цвета прогонять - хрень какая то получилась. Пересадил я RGB диодик на базовый таймер 3. Вроде все пучком. https://youtu.be/W_ekcYagpiw Прием пакета придется перенести на другой таймер. |
Автор: | Alexies [ 31 дек 2016, 14:05 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Потихоньку запиливаю пионер-friendly библиотеку для взаимодействия со смарт-сенсором. Пока не готово, но дело идет. Вынес её в отдельный репозиторий: https://github.com/DAlexis/lasertag-ssp . Это нужно для того, чтобы облегчить использование библиотеки в разных проектах (лично я буду использовать как минимум в двух: Smart sensor и Caustic system). Git поддерживает подмодули (submodules) - это кода один репозиторий включается в другой в виде директории. Таким образом, не нужно содержать одинаковые файлы в разных репозиториях и потом, при изменении, лихорадочно всё синхронизировать руками. В общем, кто не знаком с этим - вот инфа: https://git-scm.com/book/ru/v1/%D0%98%D ... 0%BB%D0%B8 . Подмодули - это фишка git, а не github, так что если ваш закрытый-засекреченный репозиторий лежит, например, на bitbucket.org, всё равно можно использовать подмодули с github. Я проектирую библиотеку так, что она не тянула с собой никаких зависимостей: ни HAL, ни SPL ей не нужен. Она не завязана на какую-то конкретную реализацию ИК-приемника или систему управления светодиодами, то есть подойдет для любого проекта. Она даже не знает, через какую шину всё работает. В случае чего можно будет переключиться на другой вид связи. Привязка к "внешнему миру" происходит через драйвер: https://github.com/DAlexis/lasertag-ssp ... p-driver.h . Часть смарт-сенсора почти готова, часть "мастер-устройства" (повязки) в процессе. Пионер-friendly потому, что количество функций, выведенных наружу, минимально и их назначение довольно очевидно. Для отладки с компьютера решил писать эмулятор на C++. Он не готов, работа в процессе. Для работы с последовательным портом и для других асинхронных операций я использовал Boost Asio - всем, кто пишет на C++, рекомендую освоить, это мощнейший инструмент для работы с любыми видами связи. Код будущего эмулятора тут: https://github.com/DAlexis/lasertag-sma ... /master-pc Интерфейс протокола сводится к следующим командам от повязки к сенсору: - Запросить данные, принятные ИК-приемником. На эту команду сенсор отвечает. - Передать ИК-пакет - Добавить задание для "анимации". Подразумевается следующее: у повязки есть RGB-диод и вибромотор. Одно "задание" означает: через столько-то миллисекунд после предыдущего задания значения R, G, B каналов и состояние вибромотора должны стать такими-то. Между двумя состояниями значения R, G, B автоматически линейно меняются. Задания образуют очередь. Таким образом можно реализовать практически любую цветовую анимацию, и у смарт-сенсора нет никаких "пресетов" изначально. То есть, по идее, его не понадобится перепрошивать никогда. Pingvin писал(а): onegray писал(а): Наверное вы MOE для 1-го таймера забыли включить. Нашел в ref man Код: TIMy->BDTR |= TIM_BDTR_MOE; Pingvin писал(а): Рано радовался - так до конца этот навороченный Таймер 1 не победил. Начал разные цвета прогонять - хрень какая то получилась. Вот именно поэтому я стараюсь пользоваться HAL, а не устаревшим SPL. Такие вещи, как инициализация каналов таймеров для разных нужд ещё ни разу не подводили, причем для чипов разных серий. Эта магическая операция с битом TIM_BDTR_MOE где-то в недрах HAL успешно делается, я смотрел. ЗЫ: Вот в самый неподходящий момент подводит железо. Помер китайский USB-UART преобразователь на FT232RL, поэтому приходится писать код вслепую. Сегодня будет новый. ЗЗЫ: Всех с наступающим новым годом! |
Страница 5 из 17 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |