shamrel 0 12 апреля Опубликовано 12 апреля · Жалоба Добрый день. Нужен концептуальный совет. Как такой сигнал ввести в микроконтроллер? Это цифровой поток. На рисунке в приложении осциллограмма дифференциального сигнала. Синий трек — линия P (positive ). Красный трек — N (negative). Средняя точка 1.5 В. Частота 100 кГц. Желательно отслеживать запрещенные состояния. У меня два варианта. Оба не шибко нравятся. 1. Использовать внешние компараторы типа LM393 (их много похожих) 2. Использовать встроенный в STM компаратор (на линию P и L) и отслеживать прерывание. Но при таком подходе часть информации теряется, так как каждый сигнал имеет переходы с разными уровнями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 26 12 апреля Опубликовано 12 апреля · Жалоба Смесь ARINC и 485? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 12 апреля Опубликовано 12 апреля · Жалоба Я бы предложил следующее. Сначала вычесть одно из другого, что позволит избавиться от синфазной помехи. Затем два компаратора с уровнями, подстраиваемыми в зависимости от амплитуды полученного сигнала. Это будет работать устойчиво. А поставить штатный приемник для такого сигнала не вариант? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 136 12 апреля Опубликовано 12 апреля · Жалоба Я бы взял готовый приемник RS485. Но можно завести и на два входа АЦП - скорости у него хватит с большим запасом, а дальше программно можно любую обработку делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 12 апреля Опубликовано 12 апреля · Жалоба Использовать стандартный преобразователь дифференциального сигнала в TTL/CMOS. Что-то типа DS90LV012A, только на нужное дифференциальное напряжение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shamrel 0 12 апреля Опубликовано 12 апреля · Жалоба 14 minutes ago, MrYuran said: Смесь ARINC и 485? Практически в точку. Это ARINC 429, только сигнал после гальванической развязки на стороне МК. Да. Приходиться изобретать велосипед. Найти готовую микросхему line driver/receiver стало очень сложно. 18 minutes ago, Alex11 said: Я бы предложил следующее. Сначала вычесть одно из другого, что позволит избавиться от синфазной помехи. Затем два компаратора с уровнями, подстраиваемыми в зависимости от амплитуды полученного сигнала. Это будет работать устойчиво. А поставить штатный приемник для такого сигнала не вариант? Буду думать думать в этом направлении. 18 minutes ago, Сергей Борщ said: Я бы взял готовый приемник RS485. Но можно завести и на два входа АЦП - скорости у него хватит с большим запасом, а дальше программно можно любую обработку делать. Про АЦП подумал. Но это крайняя мера. Придется использовать производительный МК, а я хотел обойтись STM32L0 18 minutes ago, StewartLittle said: Использовать стандартный преобразователь дифференциального сигнала в TTL/CMOS. Что-то типа DS90LV012A, только на нужное дифференциальное напряжение. На нужные уровни сходу не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 136 12 апреля Опубликовано 12 апреля · Жалоба 31 минуту назад, shamrel сказал: Про АЦП подумал. Но это крайняя мера. Придется использовать производительный МК, а я хотел обойтись STM32L0 У меня не было необходимости укладываться в спецификации ARINC 429, была задача просто читать и писать его на столе для подключения реальных приборов к игровому авиасимулятору. Я просто подавал сигнал через делители на порты (использовал пороги переключения портов), входной регистр порта при помощи ПДП складывал в память и дальше анализировал программно. Аналогично выходной сигнал формировался в массиве, массив при помощи ПДП складывался в выходной регистр порта и с пары ног при помощи сдвоенного ОУ получался выходной сигнал. На F072 получалось одновременно принимать 4 канала и передавать 8, для каждого канала можно было задать высокую (100К) или низкую (12.5К) скорость, процессор успевал еще общаться на 115200 по RS485 и через USB делать виртуальный COM-порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shamrel 0 12 апреля Опубликовано 12 апреля · Жалоба 12 minutes ago, Сергей Борщ said: У меня не было необходимости укладываться в спецификации ARINC 429, была задача просто читать и писать его на столе для подключения реальных приборов к игровому авиасимулятору. Я просто подавал сигнал через делители на порты (использовал пороги переключения портов), входной регистр порта при помощи ПДП складывал в память и дальше анализировал программно. Аналогично выходной сигнал формировался в массиве, массив при помощи ПДП складывался в выходной регистр порта и с пары ног при помощи сдвоенного ОУ получался выходной сигнал. На F072 получалось одновременно принимать 4 канала и передавать 8, для каждого канала можно было задать высокую (100К) или низкую (12.5К) скорость, процессор успевал еще общаться на 115200 по RS485 и через USB делать виртуальный COM-порт. Интересное колдунство 🙂 Спасибо. Попробую с симуляторе. Проблема в том, что с аналоговой схемотехникой я не дружу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 81 12 апреля Опубликовано 12 апреля · Жалоба В 12.04.2024 в 16:44, shamrel сказал: Практически в точку. Это ARINC 429, только сигнал после гальванической развязки на стороне МК. самое простое - использовать приемник RS-485. Так-то лучше знать как реализована развязка, тогда можно что-то осмысленное подсказать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shamrel 0 12 апреля Опубликовано 12 апреля · Жалоба 1 hour ago, HardEgor said: самое простое - использовать приемник RS-485. Так-то лучше знать как реализована развязка, тогда можно что-то осмысленное подсказать. Легко! Кусочек схемы на рисунке в подцепе. RX0, RX1 -- входные линии. Схема защиты на рисунке не показана. Развязка на микросхеме CA-IS1200G. Осциллограмма сигнала на линиях AIN1P и AIN1N относительно линии GND показана в стартовом топике. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 81 12 апреля Опубликовано 12 апреля · Жалоба В 12.04.2024 в 19:30, shamrel сказал: RX0, RX1 -- входные линии. Схема защиты на рисунке не показана. Развязка на микросхеме CA-IS1200G. Осциллограмма сигнала на линиях AIN1P и AIN1N относительно линии GND показана в стартовом топике. +-250 мВ дифференциального - это любой RS-485 приёмник. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 26 12 апреля Опубликовано 12 апреля · Жалоба Терзают меня смутные сомнения, а что выдаст "любой RS-485 приёмник" в неопределенном состоянии. И как это потом интерпретировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shamrel 0 12 апреля Опубликовано 12 апреля · Жалоба 36 minutes ago, MrYuran said: Терзают меня смутные сомнения, а что выдаст "любой RS-485 приёмник" в неопределенном состоянии. И как это потом интерпретировать. Вот вот. RS485 не умеет в третье состояние. И да. CA-IS1200G усиливает в 8 раз. То-есть, на выходе +- 1 В от средней точки. CAN преобразователь, вроде как умеет, но опыта у меня с ним нет вообще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 12 апреля Опубликовано 12 апреля · Жалоба Раз там такая развязка, то вычитать уже ничего не нужно, только два компаратора с регулируемыми уровнями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 12 апреля Опубликовано 12 апреля · Жалоба Вот такой вариант несложный, но вполне рабочий. Можно поиграться параметрами в зависимости от вариантов входного сигнала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться