Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Чт янв 04, 2024 20:47:20

Добрый день. Посоветуйте, пожалуйста как поступить. Надо сделать два устройства, которые будут обмениваться данными между собой посредством ИК канала. Это 3D щуп и приёмник для станка с ЧПУ. Первое устройство(на батарейках) имеет норм-замкнутую контактную группу. Момент размыкания этой контактной группы надо максимально быстро(задержка не более 1 мсек) передать второму устройству и оно выставляет на выходе активный сигнал. Кроме передачи сигнала размыкания устройства могут обмениваться небольшими пакетами данных с сервисной информацией. Здесь скорость не важна. Самое главное что ИК канал должен быть защищён от помех, соответственно надо его промодулировать. Для упрощения жизни решил использовать TSOP. Нашёл даже TSOP на 455 кГц, для максимально быстрой связи для передачи сигнала срабатывания конт. группы. Правда их выпуск уже прекращён. В Китае продают, но наверное это подделка. Заказал на пробу чтобы посмотреть как они себя покажут.
Отсылать модулированный сигнал вроде получается, правда пока экспериментирую с TSOP-ами на 38 кГц. Настраиваем ШИМ на нужную частоту и старт-стопим его отсылая нолики и единички через ИК светодиод. Больше непоняток с декодированием сигнала. Попробовал два варианта. Первый вариант с https://istarik.ru/blog/stm32/125.html. Тут применяется метод сэмплирования пина, к которому подключен выход TSOPа. Период опроса пина 50мксек по прерыванию от таймера. Второй метод - захват ШИМ сигнала таймером http://we.easyelectronics.ru/STM32/ir-u ... ast-1.html. Вопрос вот в чём. Я думал что второй метод должен более точно декодировать принятые сигналы, но когда я отсылаю с пульта(NEC протокол) команды, то на выходе имею всегда значения длины импульсов и периода разными в сравнении с полученными ранее. Они могут отличаться на несколько десятков микросекунд. И я вот подумал что если я таким методом буду принимать импульсы с длительностью в несколько микросекунд от TSOPа на 455 кГц, то имея такие погрешности ничего не получится. В качестве декодера использую STM32F103С8T6, тактирование мк от внешнего кварца, частота шины 72МГц, тактирование таймера 1 Мгц(период 1 мксек). Длительности входящих импульсов от 560 до 2250 мксек. Неужели мк не справляется или это пульт ДУ формирует такие кривые тайминги? Есть идея использовать TSOPы на 56кГц, так как они доступные и не придётся мучаться с очень короткими импульсами, но для быстрой реакции на размыкание контактной группы всегда придётся реагировать на принятый сигнал и активировать выход. Но тут надо ещё разобраться с алгоритмом стойки ЧПУ, не помешает ли ей сигнал срабатывания конт. группы щупа тогда, когда она его не ожидает.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Пт янв 05, 2024 10:08:31

Когда то на тех приёмниках (на 38кГц правда) делал знакомому счетчик на конвейер. Не знаю, какие по шустрости приёмники на 455кГц (даже не знал, что такие бывают), но на 36-38 были очень таки тугодумы, давали большую задержку между началом прихода пакета и выводом наружу. Походу там АРУ оптического усилителя тупило.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Пт янв 05, 2024 14:35:57

Замерил осциллом задержку между началом излучения модулированного ик сигнала и реакцией TSOPа(цифры маркировки не знаю), получилось 250uS, плюс и отпускание выхода в лог1 тоже занимет примерно столько же. А сюда надо прибавить и длительность самой посылки. Причём минимальная длина посылки, как я понял по даташиту 600uS, итого передача одного бита минимум 1 mS. А передачей одного бита не отделаешься. Чтобы уверенно распознать и отделить полезную посылку от мусора, я думаю надо пару осмысленных битов передать. Я вот думаю, чтобы приёмник максимально быстро среагировал на размыкание конт. группы щупа надо передать хотя бы две посылки, максимально короткие(но чтобы TSOP их уловил) и с жёстко определёнными длительностями. На приёмной стороне надо поточнее измерить их длительность, сравнить с эталонными и принять решение о валидности посылки. Сейчас подыскиваю TSOPы, которые специально рассчитаны на короткие посылки и быструю реакцию.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Пт янв 05, 2024 16:05:06

Может стоит покоситься на коробочки для оптоволоконных сетей? Там очень шустрые оптоприёмники стоят. А сами коробочки (забываю как оно правильно зовется) совсем не дорого стоят

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Сб янв 06, 2024 01:36:56

Варт можно напрямую к ик светику подключать, на приём и передачу. Там для этого отдельный режим есть.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Вс янв 07, 2024 17:01:48

Замерил осциллом задержку между началом излучения модулированного ик сигнала и реакцией TSOPа(цифры маркировки не знаю), получилось 250uS, плюс и отпускание выхода в лог1 тоже занимет примерно столько же. А сюда надо прибавить и длительность самой посылки. Причём минимальная длина посылки, как я понял по даташиту 600uS, итого передача одного бита минимум 1 mS.
О каком TSOP идёт речь? Что за TSOP на 455кГц?
Написана куча буков, но ни одного внятного упоминания о каких именно приёмниках идёт речь - нету. Какие-то ковыряния с осциллографами и ИК-пультами, вместо чтения даташитов. Типичный наколенно-гаражный стиль работы. Какие тут ещё станки.... :dont_know:
И при чём тут ИК-пульт? если нужна передача данных. Естественно никакой из TSOP, предназначенный для "remote control", не станет качать данные килобайтами/сек. Потому как им это и не нужно (для remote control). Если нужен TSOP для передачи данных, то видимо такой и нужно искать.
Заходим на: https://www.vishay.com/en/ir-receiver-modules и выбираем те, у которых назначение указано "Data transmission". Естественно никакой ИК-пульт, в качестве передатчика, использовать нельзя.
Для TSDP341..., TSDP343... даташитом обещается скорость:
Continuous data rates up to 7777 bps
Отсюда и надо плясать. Скорость вроде достаточная для хотелок ТС.

PS: А начинать разработку на чипе уже снятом с производства - это гарантированный epic fail.
PPS: И непонятно - почему тема в разделе ARM? Хотя к ARM никак не относится.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Пн янв 08, 2024 15:02:33

Экспериментирую с TSOPом на 38 кГц, точную маркировку его не знаю, выпаял откуда-то. На 455кГц выпускался TSOP7700, но сейчас есть аналоги только на Алиэкспресс. Станок есть и прекрасно работает. Любым TSOPом можно передавать данные, даже тем которые для световых барьеров предназначены. ИК пульт от телика как раз и передаёт данные. Обычно 32 бита, в зависимости от используемого протокола. В моём случае надо изредка передавать один байт данных(состояние батареи), его можно передать не быстро, но есть и условие когда надо максимально быстро передать приёмнику о том что в щупе разомкнулись контакты. Можете это понимать как смешанный режим, когда присутствует и передача данных и как-бы простой дискретный сигнал. Из экспериментов стало понятно, что необязательно использовать модуляцию на 455 кГц, можно любую, лишь бы сам приёмник пошустрее реагировал на входящий ик сигнал. Но для помехозащищённости надо использовать промодулированный сигнал. И я уже нашёл TSOPы, которые могут реагировать на 6 импульсов модулированного сигнала, чтобы выставить лог0 на выходе, а не 10 импульсов, как в TSOPе с которым я провожу эксперименты. Почему написал в раздел АРМ, да потому что на stm32 делаю и есть вопросы по его быстродействию и реализации алгоритма. На все ваши вопросы ответил или нет? И да, я работаю в мастерской в гараже, и даташиты на английском читать умею и читаю. Куда мне до вас, сидящих в уютном офисе на оборонном заводе. Что за пессимизм, надо всех обхаять, послать даташиты читать? Посмотрел на вашу карму и всё понятно стало.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Вт янв 09, 2024 16:19:59

ИК пульт от телика как раз и передаёт данные. Обычно 32 бита, в зависимости от используемого протокола. В моём случае надо изредка передавать один байт данных(состояние батареи), его можно передать не быстро
Выше вы вроде писали про частоту передачи данных = 1 кГц. Или это были не вы?
И что такое "не быстро"? Это сколько в граммах? 1Гц или 1 ГГц?
Если нужно всё-таки 1кГц, то достаточно заглянуть в даташит на TSOP, чтобы понять, что "пульт от телика" не подходит.

Из экспериментов стало понятно, что необязательно использовать модуляцию на 455 кГц, можно любую, лишь бы сам приёмник пошустрее реагировал на входящий ик сигнал.
Так и не понял - какая связь между частотой модуляции излучения и скоростью передачи? :shock: Может поясните?
Многие радиопередатчики работают на ГГц. Но из этого никак не следует, что все они обязаны передавать гигабайты в сек.

Почему написал в раздел АРМ, да потому что на stm32 делаю и есть вопросы по его быстродействию и реализации алгоритма.
Среди ваших вопросов нет ничего касающегося ARM. Все ваши вопросы - по ИК-приёмникам и передатчикам.
Более того: Для такой несложной задачи, как приём посылок от ИК-пульта, ARM не обязателен. С этим справится даже STM8 с таймером, умеющим работать в режиме захвата.

Посмотрел на вашу карму и всё понятно стало.
Что именно "понятно"? И какое отношение имеет какая-то "карма" к обсуждаемой теме?

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Вт янв 09, 2024 20:44:15

Про какой 1 кГц вы говорите? Вы знаете как работает 3D щуп чпу станка? Расскажу. Его задача найти, а вернее сообщить стойке чпу о моменте касания. Стойка чпу по программе двигает щуп в направлении детали и одновременно ждёт от щупа сигнал что произошло касание. В щупе есть Н.З. контактная группа, которая при контакте стилуса с деталью размыкается. И этот момент размыкания надо передать стойке. Стойка мгновенно сохраняет координату в которой произошло размыкание конт. группы и использует эти данные для вычислений. До запуска программы измерения(типа Idle режим) щуп может выдать 1-2 байта сервисной инфы, типа Low Bat или конт. группа разомкнута(грязь внутри) или другие данные. Скорость выдачи не важна, так как она передаётся в режиме простоя щупа, а не во время измерения. У меня уже собрана передающая часть которая пока выплёвывает один байт модулированным сигналом на несущей 38 кГц. Сейчас пытаюсь принять этот байт на стороне приёмника и декодировать его. Заодно продумываю как сделать так чтобы в этот байт запихнуть момент размыкания конт. группы щупа, типа преамбула. Пока упёрся в быстродействие TSOPoв и приёмом байта на приёмной стороне. Но дело двигается. Почему АРМ? Да потому что работаю только с АРМ. Какой смысл использовать тот де АВР, если цены сопоставимы, а характеристики у АРМ круче. Или предлагаете вернуться к АВР? Я от них отвык и во всех своих проектах использую(заодно и учусь) только STM32. Был проект на Atmega328? который разростался и наконец наступил момент, когда компилятор мне сообщил что не хватает памяти. с тех пор АВР в прошлом, только для повторения какого-нибудь проекта на АВР, без исходников. В первом моём сообщении я спрашивал про варианты захвата сигнала и почему в режиме захвата шим сигнала значения длины импулса и периода постоянно разнятся на 10-15%. Были сомнения в производительности МК или характеристиках приходящего сигнала от ИК передатчика. Сегодняшний эксперимент с подключение генератора вместо TSOPа показал что дело всё-таки в излучаемом сигнале от передатчика. Так как с генератором всё было стабильно и повторяемо. Благодаря вам моя тема превратилась в какую-то мусорку, где я должен толко вам объяснять посему сто-то именно так, а не так как вы бы сделали. У других участников таких вопросов не возникло.

Добавлено after 1 minute 52 seconds:
Непонятно почему Vishay прекратил выпуск всех ик приёмников на 455 кГц, и не выпустил ничего нового на замену. Классные у них были характеристики.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Вт янв 09, 2024 21:36:28

Про какой 1 кГц вы говорите?
Момент размыкания этой контактной группы надо максимально быстро(задержка не более 1 мсек) передать второму устройству
Это кто писал?

Почему АРМ? Да потому что работаю только с АРМ. Какой смысл использовать тот де АВР, если цены сопоставимы, а характеристики у АРМ круче. Или предлагаете вернуться к АВР?
Да уж.... просто пипец... Что у вас в голове?? Страшно даже представить. :shock: Совсем ничего не поняли о чём я писал....

Благодаря вам моя тема превратилась в какую-то мусорку, где я должен толко вам объяснять посему сто-то именно так, а не так как вы бы сделали.
Вроде вы спрашивали совета? Или нет? если вам советы не нужны - зачем тогда спрашивали?
Советы я вам давал. В ответ получил только наезды и какие-то детские обиды непонятно на что.

У других участников таких вопросов не возникло.
Видимо остальным наср*ть на ваши страдания? Или они полностью согласны со мной? Не думали?

PS: Впрочем теперь и мне на них также пофиг. Ковыряйтесь сами. Очередной случай завышенного ЧСВ.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Ср янв 10, 2024 08:17:12

Про какой 1 кГц вы говорите?
Момент размыкания этой контактной группы надо максимально быстро(задержка не более 1 мсек) передать второму устройству
Это кто писал?

Причём здесь частота 1 кГц и время на реакцию системы не более 1 мсек? Знакомые соотношения узрели, 1кГц = период 1мсек? Тут это не причём.

Почему АРМ? Да потому что работаю только с АРМ. Какой смысл использовать тот де АВР, если цены сопоставимы, а характеристики у АРМ круче. Или предлагаете вернуться к АВР? Да уж.... просто пипец... Что у вас в голове?? Страшно даже представить. :shock: Совсем ничего не поняли о чём я писал....

А про STM8 мне кто писал?

У других участников таких вопросов не возникло. Видимо остальным наср*ть на ваши страдания? Или они полностью согласны со мной? Не думали?
PS: Впрочем теперь и мне на них также пофиг. Ковыряйтесь сами. Очередной случай завышенного ЧСВ.

C сего вы взяли что я страдаю? И всё-таки ваша карма всё за вас говорит. Вы только палки в колёса умеете вставлять и легко можете отвлечь человека от проекта своими тупыми вопросами и предложениями.
Почему АРМ, почему АРМ. Да какая вам разница, АРМ и всё.

Re: Посоветуйте по ИК передаче-приёму данных от 3D щупа ЧПУ

Ср янв 10, 2024 17:00:15

Причём здесь частота 1 кГц и время на реакцию системы не более 1 мсек?
Теперь уже не узнаете. Далее - ковыряйтесь в своём г* сами.

своими тупыми вопросами и предложениями.
Да вижу - хамить уже умеете. Продолжайте в том же духе и далеко пойдёте.

PS: Закономерность давно известная: чем меньше знаний - тем больше хамства и выше ЧСВ.
Ответить