Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Контроллер RS-485
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
AlexeyT
Всем привет!

Нет ли у кого-нибудь информации по отечественным ARM-процесорам с встроенным контроллером RS-485?
Может быть, кто о разработках таких знает?

Может отдельная отечественная микросхема существует?

Сразу отвечаю, что Гугл не помог




jcxz
Цитата(AlexeyT @ Nov 13 2017, 14:05) *
Нет ли у кого-нибудь информации по отечественным ARM-процесорам с встроенным контроллером RS-485?

Например: все LPC17xx.
@Ark
Цитата(AlexeyT @ Nov 13 2017, 15:05) *
Нет ли у кого-нибудь информации по отечественным ARM-процесорам с встроенным контроллером RS-485?

Вообще-то, "встроенным контроллером RS-485" является обычный UART. Ну, разве что, с дополнительным сигналом управления передатчиком. Чисто для удобства, если лень в "ручную" переключать с приема на передачу и обратно. А драйвер RS-485 в процессор обычно не встраивают, на что есть свои причины.

gosha-z
Цитата(@Ark @ Nov 13 2017, 15:34) *
Вообще-то, "встроенным контроллером RS-485" является обычный UART. Ну, разве что, с дополнительным сигналом управления передатчиком. Чисто для удобства, если лень в "ручную" переключать с приема на передачу и обратно. А драйвер RS-485 в процессор обычно не встраивают, на что есть свои причины.

Я на этом обжегся на малинке - она делала это настолько медленно, что не успевала прочитать ответ на команду. В результате поставил FT232 и забыл о проблемах.
richie
Цитата(jcxz @ Nov 13 2017, 15:20) *
Например: все LPC17xx.


Когда это мы NXP купить успели?
jcxz
Цитата(richie @ Nov 13 2017, 14:46) *
Когда это мы NXP купить успели?

Да, слова "отечественные" я не заметил laughing.gif
Хотя в то же время ни из сообщения ни из личных данных автора не ясно к какому отечеству он относится.
Так что - откуда Вы знаете, что у Вас с ним одно отечество? cool.gif
Corvus
За отечественным RS-485 к Миландру.

http://ic.milandr.ru/products/mikrokontrol...krokontrollery/
+
http://ic.milandr.ru/products/interfeysnye...my/rs485-rs422/
AVR
Цитата(AlexeyT @ Nov 13 2017, 15:05) *
Нет ли у кого-нибудь информации по отечественным ARM-процесорам с встроенным контроллером RS-485?
Может быть, кто о разработках таких знает?
Может отдельная отечественная микросхема существует?

Назовите хоть один отечественный современный МК без UART.
И да, такая существует: http://ic.milandr.ru/products/interfeysnye...my/rs485-rs422/
Даже такая: http://ic.milandr.ru/products/interfeysnye...s422/2011vv024/
mantech
Цитата(gosha-z @ Nov 13 2017, 15:40) *
Я на этом обжегся на малинке - она делала это настолько медленно,


Так все ж наверно драйвер это делал медленно, а не процессор, не удивлюсь, если обработку пакетов на каком-нить скрипте делали rolleyes.gif
AVR
Цитата(mantech @ Nov 13 2017, 20:10) *
Так все ж наверно драйвер это делал медленно, а не процессор, не удивлюсь, если обработку пакетов на каком-нить скрипте делали rolleyes.gif

А может операционная система? Вот на МК Миландр, т.к. нет ОС, получается рулить направлением передачи с точностью до микросекунд.
Вопрос этой темы очень прост, и ответы такие же простейшие - любой отечественный МК справится с нехитрой задачей работы с моим любимым RS-485.
gosha-z
Именно. В Raspbian работа с GPIO сделана через файловый ввод-вывод - а это затратная операция.
Alechek
Цитата(AVR @ Nov 14 2017, 12:34) *
Вопрос этой темы очень прост, и ответы такие же простейшие - любой отечественный МК справится с нехитрой задачей работы с моим любимым RS-485.

Может любой, а может и нет.... Все зависит от реалзации UART!
В буржуйских вышеупомянутых NXP UART сделан 550 совместимым. И 100% узнать, когда же ушел последний бит наружу, не представляется возможным!
Т.е. микросекундные задержки в управлении направлением передачи не получатся, можно пропустить ответ.

В серии 17ХХ они сделали костыль в виде аппаратной ноги TX_OE.
AVR
Цитата(Alechek @ Nov 14 2017, 14:05) *
Может любой, а может и нет.... Все зависит от реалзации UART!
В буржуйских вышеупомянутых NXP UART сделан 550 совместимым. И 100% узнать, когда же ушел последний бит наружу, не представляется возможным!
Т.е. микросекундные задержки в управлении направлением передачи не получатся, можно пропустить ответ.
В серии 17ХХ они сделали костыль в виде аппаратной ноги TX_OE.

Прерывание или просто флаг FIFO empty + фиксированное время. Зачем знать последний бит? Скорость мы знаем. Может в каких-то моделях такого флага нет, за всё не ручаюсь.
gosha-z
Вот хочу попробовать в этом плане очень забавный костыль - MAX3109.
Эдди
Цитата(gosha-z @ Nov 14 2017, 11:00) *
Именно. В Raspbian работа с GPIO сделана через файловый ввод-вывод - а это затратная операция.

А вот не надо было так делать. Потому как есть через mmap. И очень даже быстро. Та же WiringPi для "малинки" отлично работает через mmap.
gosha-z
Цитата(Эдди @ Nov 14 2017, 18:07) *
А вот не надо было так делать. Потому как есть через mmap. И очень даже быстро. Та же WiringPi для "малинки" отлично работает через mmap.
Если ткнете носом в описания/примеры - буду весьма благодарен. Хотя, RS-485 extensions все равно в Raspbian не включены.
Alechek
Цитата(AVR @ Nov 14 2017, 16:47) *
Прерывание или просто флаг FIFO empty + фиксированное время. Зачем знать последний бит? Скорость мы знаем. Может в каких-то моделях такого флага нет, за всё не ручаюсь.

Это у STM32 таймеров как грязи. Не у всех так. А у LPC их впритык.... Выделить на такое дело не всегда возможно.
alag57
Цитата
Выделить на такое дело не всегда возможно

А что у LPC флаг TEMT , который говорит, что сдвиговый регистр пуст, а значит
передача закончена отменили?
jcxz
Цитата(alag57 @ Nov 15 2017, 18:00) *
А что у LPC флаг TEMT , который говорит, что сдвиговый регистр пуст, а значит
передача закончена отменили?

По данному флагу нет прерывания.
AlexeyT
Цитата(AVR @ Nov 13 2017, 15:58) *
Назовите хоть один отечественный современный МК без UART.
И да, такая существует: http://ic.milandr.ru/products/interfeysnye...my/rs485-rs422/
Даже такая: http://ic.milandr.ru/products/interfeysnye...s422/2011vv024/



Спасибо за ответы, только у Миландра - это приемопередатчики, а нужен бы специализированный контроллер. Почему не можем использовать UART - потому что скорости не хватает - 921600 бод, а нам надо около 2 Мбит (RS-485 с такими скоростями позволяет работать)
Огурцов
Цитата(AlexeyT @ Nov 17 2017, 19:47) *
нам надо около 2 Мбит (RS-485 с такими скоростями позволяет работать)

извращение, stm 21 мегабит позволяет, а драйверы можно и на 40 найти
mantech
Цитата(AlexeyT @ Nov 17 2017, 21:47) *
Спасибо за ответы, только у Миландра - это приемопередатчики, а нужен бы специализированный контроллер. Почему не можем использовать UART - потому что скорости не хватает - 921600 бод, а нам надо около 2 Мбит (RS-485 с такими скоростями позволяет работать)


Да, у миландра там медленный уарт и кан, что поделаешь... Хотя 485й, как правило используется в низкоскоростном режиме (до 115200).
Используйте Эзернет, там скорость еще больше, гальваноразвязка и еще много плюшек...
@Ark
Цитата(AlexeyT @ Nov 17 2017, 21:47) *
Почему не можем использовать UART - потому что скорости не хватает - 921600 бод, а нам надо около 2 Мбит...

Если тактовая частота позволяет, то скоростной UART можно программно реализовать.
Передача вообще не представляет ни какой сложности. С приемом - чуть сложнее.
Нужно задействовать прерывание.

Сергей Борщ
QUOTE (alag57 @ Nov 15 2017, 18:00) *
А что у LPC флаг TEMT , который говорит, что сдвиговый регистр пуст, а значит передача закончена
Это вовсе не говорит о том, что передача окончена. После возникновения этого флага еще передается последний бит, биты четности и стоповый.
AlexeyT
Цитата(@Ark @ Nov 18 2017, 00:58) *
Если тактовая частота позволяет, то скоростной UART можно программно реализовать.
Передача вообще не представляет ни какой сложности. С приемом - чуть сложнее.
Нужно задействовать прерывание.



Мы используем Миландровский 1986ВЕ1Т с тактовой 144 МГц. На такой частоте по Вашей оценке можно реализовать программный контроллер RS-485 со скоростью 2 Мбит/с?
@Ark
Цитата(AlexeyT @ Nov 18 2017, 12:28) *
Мы используем Миландровский 1986ВЕ1Т с тактовой 144 МГц. На такой частоте по Вашей оценке можно реализовать программный контроллер RS-485 со скоростью 2 Мбит/с?

Думаю, да.
Во всяком случае, стоит попробовать.

Михась
Цитата(@Ark @ Nov 18 2017, 16:36) *
Думаю, да.
Во всяком случае, стоит попробовать.


Примеров софт UART куча, надо тупо попробовать.
jcxz
Цитата(@Ark @ Nov 18 2017, 11:36) *
Думаю, да.
Во всяком случае, стоит попробовать.

2 МБод на 144МГц тактовой? Может как-то и получится, но думаю процессор только этим и будет заниматься.
Огурцов
Цитата(jcxz @ Nov 18 2017, 10:55) *
процессор только этим и будет заниматься.

поставят два
mantech
Цитата(Огурцов @ Nov 18 2017, 14:22) *
поставят два


Вот она - веселуха!! Даешь 5 портов из контроллеров biggrin.gif

Цитата(jcxz @ Nov 18 2017, 13:55) *
2 МБод на 144МГц тактовой? Может как-то и получится, но думаю процессор только этим и будет заниматься.


В аппаратном уарте есть фильтр выборок, на мелких скоростях он так-то нафиг не нужен, но на мегагерцах уже вполне, так что прерываний там не 2мульона в сек. будет, а заметно больше. rolleyes.gif
ИМХО - изврат чистой воды!
AVR
Цитата(AlexeyT @ Nov 18 2017, 12:28) *
Мы используем Миландровский 1986ВЕ1Т с тактовой 144 МГц. На такой частоте по Вашей оценке можно реализовать программный контроллер RS-485 со скоростью 2 Мбит/с?

Вы это серьезно? Я думал это технический сайт, а не юмористический sm.gif
@Ark
Цитата(jcxz @ Nov 18 2017, 13:55) *
2 МБод на 144МГц тактовой? Может как-то и получится, но думаю процессор только этим и будет заниматься.

От загрузки канала зависит. Сколько времени идет прием/передача, столько и будет отвлекаться на это процессор. Плюс небольшие накладные расходы.
Если по RS485 идет сплошной поток в ту или другую сторону, то на остальное времени почти не останется...
jcxz
Цитата(@Ark @ Nov 18 2017, 14:05) *
От загрузки канала зависит. Сколько времени идет прием/передача, столько и будет отвлекаться на это процессор.

А если канал сильно недогружен, то может имеет смысл во столько же раз уменьшить скорость?
А если не уменьшили, то видимо нельзя - не успевают передавать.
Так что мимо кассы - процессор должен уметь принять и непрерывный поток.
редактор
Цитата
Мы используем Миландровский 1986ВЕ1Т с тактовой 144 МГц. На такой частоте по Вашей оценке можно реализовать программный контроллер RS-485 со скоростью 2 Мбит/с?
Спасибо за ответы, только у Миландра - это приемопередатчики, а нужен бы специализированный контроллер. Почему не можем использовать UART - потому что скорости не хватает - 921600 бод, а нам надо около 2 Мбит (RS-485 с такими скоростями позволяет работать)

У вас наверняка устаревшие данные. В описании сказано UART до 9 Мбит/сек, IrDA 460800 Мбит/сек. (Описание от 31.01.2014 г. стр 323)
@Ark
Цитата(jcxz @ Nov 20 2017, 12:19) *
А если канал сильно недогружен, то может имеет смысл во столько же раз уменьшить скорость?

Не всегда.
Например, для внешнего устройства, работающего в связке с ПК, зачастую предпочтительнее быстро передать пакет данных на высокой скорости. Чтобы освободить линию связи и собственные ресурсы МК до передачи следующего пакета. А не растягивать этот процесс на низкой скорости.
А когда устройств на линии предполагается много, то их максимальное количество будет напрямую зависеть от выбранной скорости обмена. "Сильно недогруженный канал" с точки зрения МК, "догружается" другими устройствами на линии, вплоть до непрерывного потока. wink.gif

jcxz
Цитата(@Ark @ Nov 20 2017, 11:57) *
А когда устройств на линии предполагается много, то их максимальное количество будет напрямую зависеть от выбранной скорости обмена. "Сильно недогруженный канал" с точки зрения МК, "догружается" другими устройствами на линии, вплоть до непрерывного потока. wink.gif

И что?
Эти данные, передаваемые "другими устройствами" будут также поступать на вход RX микроконтроллера и загружать его процедурой приёма байт.
В чём разница-то? wacko.gif
Ситуация даже хуже получается: даже когда к устройству нет обращений от ПК, его процессор всё равно будет сильно загружен приёмом чужих обменов.
richie
Цитата(AlexeyT @ Nov 17 2017, 21:47) *
...
Почему не можем использовать UART - потому что скорости не хватает - 921600 бод,
...
а нам надо около 2 Мбит
...
(RS-485 с такими скоростями позволяет работать)

Контроллеру среда передачи пофигу должна быть, хоть RS-232, хоть RS-485, хоть RS-422.
Зависит от устройства и способов его использования.
Уровень приложения знать не должен, какая среда используется.
Только максимум в драйвере протокола может быть управление направлением передачи.

P.S. С каких пор полудуплекс стал быстрее полного дуплекса?
@Ark
Цитата(jcxz @ Nov 20 2017, 13:23) *
И что?
Эти данные, передаваемые "другими устройствами" будут также поступать на вход RX микроконтроллера и загружать его процедурой приёма байт.
В чём разница-то? wacko.gif

Разница в том, что линия связи освобождается для работы других устройств.
МК, конечно, придется анализировать поток на линии. Чем он, в основном, и будет заниматься. Когда придет запрос, адресованный именно данному устройству, он обрабатывается, передается ответ. А дальше устройство снова "курит бамбук", анализируя линию и ожидая следующего запроса. Это достаточно часто встречающаяся ситуация...

jcxz
Цитата(@Ark @ Nov 20 2017, 12:36) *
А дальше устройство снова "курит бамбук", анализируя линию и ожидая следующего запроса. Это достаточно часто встречающаяся ситуация...

Я Вам говорю о том, что это "курит бамбук" при программном UART-е на 2МБод-а выльется в очень большую загрузку CPU. Что уже как-то не похоже на "курит бамбук".
И как раз часто встречающаяся ситуация, когда устройство занимается ещё чем-то, кроме того, что ждёт запроса от ПК. Оно же для чего-то создавалось, чтобы выполнять какую-то работу, а не просто "курить бамбук".
И при программном UART-е 2МБод оно будет в основном заниматься анализом потока на линии, как Вы правильно заметили. И на другие (полезные) дела ресурсов уже не останется.

Цитата(richie @ Nov 20 2017, 12:31) *
P.S. С каких пор полудуплекс стал быстрее полного дуплекса?

Как Вы себе представляете полный дуплекс на 2х-проводном RS-485 (автор вроде его имел в виду) ?
@Ark
Цитата(jcxz @ Nov 20 2017, 13:55) *
И при программном UART-е 2МБод оно как раз будет в основном заниматься анализом потока на линии, как Вы правильно заметили. И на другие (полезные) дела ресурсов уже не останется.

.. За исключением случаев, когда "полезные дела" выполняются устройством только "по команде" (по запросу). Что, поверьте, не редкость...
Устройства разные бывают, в том числе совсем простые, с очень ограниченными ресурсами. И их может быть много на одной линии. Ставить в каждое процессор с аппаратной поддержкой 2Мбит по UART не всегда рационально. Вот тогда программный UART рулит...

Obam
Цитата(редактор @ Nov 20 2017, 13:20) *
…IrDA 460800 Мбит/сек

? 450Гбит/с ??? Запятая где, всё-таки, должна стоять?
Огурцов
Цитата(Obam @ Nov 20 2017, 12:06) *
450Гбит/с ???

ну это же православный контроллер
Obam
Цитата(Огурцов @ Nov 20 2017, 15:31) *
ну это же православный контроллер

Да ладно гнать, ядро бесовскОе-англичанское (;
mantech
Цитата(@Ark @ Nov 20 2017, 13:36) *
Разница в том, что линия связи освобождается для работы других устройств.
МК, конечно, придется анализировать поток на линии. Чем он, в основном, и будет заниматься. Когда придет запрос, адресованный именно данному устройству, он обрабатывается, передается ответ. А дальше устройство снова "курит бамбук", анализируя линию и ожидая следующего запроса. Это достаточно часто встречающаяся ситуация...


Часто, но на более медленных скоростях, когда "долбежка" проца не отнимает много времени. Для скоростной связи с компом лучше выбрать другой интерфейс, например еще один уарт(485), усб или эзернет, как уже говорил.

Цитата(@Ark @ Nov 20 2017, 14:05) *
Вот тогда программный UART рулит...


Только тогда, когда нет никакой возможности использовать аппаратный порт.
@Ark
Цитата(mantech @ Nov 20 2017, 15:42) *
... Для скоростной связи с компом лучше выбрать другой интерфейс, например еще один уарт(485), усб или эзернет, как уже говорил.
... Только тогда, когда нет никакой возможности использовать аппаратный порт.

Еще один RS485 - это еще одна линия...
USB - это только для "настольных игр"...
Эзернет... - про цену вопроса не забывайте.
И умножьте ее, скажем, на 100 (устройств в линии)... wink.gif

richie
Задача топикстартера попахивает колхозом изначально, который всё больше уточняется.
МК нужен со встроенным RS-485 (прям представляю как оптическая развязка и прочие элементы защиты, в том числе грозозащиты, из корпуса контроллера торчят, эффективно обеспечивая ему ЭМИ-защиту), причем передача всего по двум проводам, но не менее 2 МБайта в секунду.
Что мешает использовать стандартные решения, исходя из условий эксплуатации?

К требованию "отечественный" претензий нет, т.к. принимается как данность, которую нужно соблюсти, ибо требование Заказчика.

Без обид, про колхоз.
Честное слово.

Цитата(jcxz @ Nov 20 2017, 14:00) *
...
Как Вы себе представляете полный дуплекс на 2х-проводном RS-485 (автор вроде его имел в виду) ?


Разумеется, никак.
RS-422 в помощь, если нужно линию далеко утащить с раздельными RX и TX.
mantech
Цитата(@Ark @ Nov 20 2017, 15:52) *
Еще один RS485 - это еще одна линия...
USB - это только для "настольных игр"...
Эзернет... - про цену вопроса не забывайте.
И умножьте ее, скажем, на 100 (устройств в линии)... wink.gif


Я лишь только сказал, как правильно, разумеется, это надо учитывать еще на этапе разработки, да и стоимость физики для эзернета невелика, мак уже есть в контроллере. Да и для связи с компом это намного удобнее, т.к. можно поднять фтп для работы с файлами и просто сокетный ввод\вывод для управления, чем колхозить всякие переходники с 485 в усб и потом в комп.
@Ark
Цитата(mantech @ Nov 20 2017, 17:13) *
Я лишь только сказал, как правильно...

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

Огурцов
Цитата(@Ark @ Nov 20 2017, 14:23) *
Универсальные решения, как правило, менее эффективны чем специализированные.

это ethernet менее эффективен, чем rs485 ?


Цитата(@Ark @ Nov 20 2017, 14:23) *
В том числе, по стоимости решения.

считали ?

@Ark
Цитата(Огурцов @ Nov 20 2017, 18:22) *
это ethernet менее эффективен, чем rs485 ?
считали ?

Считали.
Ясно же сказано - зависит от задачи.
Вы в устройство "за 3 копейки" будете ethernet вставлять?
Это для любителей "палить из пушки по воробьям".

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.