Сбор данных с кучи UART
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Сбор данных с кучи UART
Eddy_Em, а кто заставляет использовать именно те МК, у которых есть проблема с I2C, которая именно в Вашем случае критична? В подавляющем большинстве случаев, проблемы на I2C начинаются при наличии более одного мастера. Зачем Вам больше одного мастера в данном случае? Лично мне не попадался пока ни один МК, в котором не получилось бы успешно общаться с той же PCF8574. И зачем DMА для I2C? Это же не скоростной протокол, а прерывание по ошибке все равно обрабатывать. Больше времени потратите на управление DMA, чем выиграете на нескольких передаваемых/принимаемых байтах.
Четрые десятка STM32, чтобы обеспечить работу 200 UART? Вы бы сразу комп с двухста USB2UART преобразователями тогда лучше предложили )))
Четрые десятка STM32, чтобы обеспечить работу 200 UART? Вы бы сразу комп с двухста USB2UART преобразователями тогда лучше предложили )))
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Сбор данных с кучи UART
ПростоНуб, никто не заставляет. Я с I2C почти не работаю, разве что иной раз дурацкие датчики (вроде тех же термодатчиков для зеркала) нужно подключать, но у STM32F042 с I2C особых проблем нет.
Ну и никто не отменял возможности использовать конвертеры интерфейсов (хоть на 20-рублевых STM8, хоть на 15-рублевых ch55x): брать с UART'а и выплевывать в 485, например...
Если нужны раздельные UART'ы, то как-то других вариантов нет. Но я не представляю себе ситуации, когда потребовалось бы одновременно с двумя сотнями раздельных уартов работать. Чушь какая-то... Вот пять одновременно — да, можно представить.Четрые десятка STM32, чтобы обеспечить работу 200 UART?
Ну и никто не отменял возможности использовать конвертеры интерфейсов (хоть на 20-рублевых STM8, хоть на 15-рублевых ch55x): брать с UART'а и выплевывать в 485, например...
Re: Сбор данных с кучи UART
ПростоНуб,
>> I2C имеет встроенную адресацию
На 127 устройств или использовать IIC-подобную связь с большим числом байт для адреса.
>> что позволяет обойтись без регистров и дешифраторов
Не вижу ничего плохого.
Как раз сегодня ночью подумал, что огромный плюс: с регистрами я смогу сообщить физический слот, где проблема с устройством.
>> и работает по двум проводам, вместо четырех у SPI.
Тоже ничего плохого. Меньше меди будет стравлено с печатной платы
Я бы считал, что "проводов" три (clock,miso,mosi) + ещё 2 на обслуживание кучи CS от сдвиговых регистров.
>> Вы бы сразу комп с двухста USB2UART преобразователями тогда лучше предложили )))
Было бы смешно, если бы не было так грустно: сейчас решение формально работает практичесеки такое )))
Eddy_Em
STM32 не более 5 (3 USART, 2 UART)
>> Но я не представляю себе ситуации, когда потребовалось бы одновременно с двумя сотнями раздельных уартов работать.
Элементарнейшая ситуация, уже написал: GSM модемы на приеме\отправке SMS и пропускать данные от них нельзя
---
P.S.
На тему финансовой стороны персонального аппаратного UART к каждому устройству
Нашел микросхемы от NXP и MaxLinear в QFP
8 UART не менее 33 евро
Однозначно идут лесом из-за стоимости, сложности и недоступности
MAX14830 в QFN-48
4 UART, не менее 400 руб.\шт.
ATXMega 128a3u в QFP-64 (что куда лучше)
7 UART, около 680 руб.\шт.
ATMega8 (сверхдоступность и, если DIP, можно и руками заменять)
1 UART
, менее 44 руб.\шт.
>> I2C имеет встроенную адресацию
На 127 устройств или использовать IIC-подобную связь с большим числом байт для адреса.
>> что позволяет обойтись без регистров и дешифраторов
Не вижу ничего плохого.
Как раз сегодня ночью подумал, что огромный плюс: с регистрами я смогу сообщить физический слот, где проблема с устройством.
>> и работает по двум проводам, вместо четырех у SPI.
Тоже ничего плохого. Меньше меди будет стравлено с печатной платы
Я бы считал, что "проводов" три (clock,miso,mosi) + ещё 2 на обслуживание кучи CS от сдвиговых регистров.
>> Вы бы сразу комп с двухста USB2UART преобразователями тогда лучше предложили )))
Было бы смешно, если бы не было так грустно: сейчас решение формально работает практичесеки такое )))
Eddy_Em
STM32 не более 5 (3 USART, 2 UART)
>> Но я не представляю себе ситуации, когда потребовалось бы одновременно с двумя сотнями раздельных уартов работать.
Элементарнейшая ситуация, уже написал: GSM модемы на приеме\отправке SMS и пропускать данные от них нельзя
---
P.S.
На тему финансовой стороны персонального аппаратного UART к каждому устройству
Нашел микросхемы от NXP и MaxLinear в QFP
8 UART не менее 33 евро
Однозначно идут лесом из-за стоимости, сложности и недоступности
MAX14830 в QFN-48
4 UART, не менее 400 руб.\шт.
ATXMega 128a3u в QFP-64 (что куда лучше)
7 UART, около 680 руб.\шт.
ATMega8 (сверхдоступность и, если DIP, можно и руками заменять)
1 UART
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Сбор данных с кучи UART
afynfpbz, налепите преобразователи UART<>RS485 на 16-рублевые STM8S003, раз вам нужно так много устройств обслуживать. Разместите на плате bit-switch, которым задавайте адрес устройства. В итоге у вас будет буферизация и ничего важного не пропустите.
Можно, кстати, и "общение" чуть упростить, если вместо 485 CAN использовать (даже среди STM8 многие дешевые — от 20 до 40 рублей — модели это умеют, правда, может выйти так, что МК получается чуть ли не дешевле, чем CAN-драйвер)…
Еще более дешевые МК — ch55x, но с ними работать сложно (программатор очень дорогой и грамотно переведенной с китайского на английский документации крайне мало).
Если хочется несколько на один МК повесить, то, скажем, у STM32F09[18][RV] есть 8 UART'ов! STM32F091RBT6 за <270 рублей…
Можно, кстати, и "общение" чуть упростить, если вместо 485 CAN использовать (даже среди STM8 многие дешевые — от 20 до 40 рублей — модели это умеют, правда, может выйти так, что МК получается чуть ли не дешевле, чем CAN-драйвер)…
Еще более дешевые МК — ch55x, но с ними работать сложно (программатор очень дорогой и грамотно переведенной с китайского на английский документации крайне мало).
Если хочется несколько на один МК повесить, то, скажем, у STM32F09[18][RV] есть 8 UART'ов! STM32F091RBT6 за <270 рублей…
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Сбор данных с кучи UART
I2C поддерживает 10-битную адресацию. На AVR программно, на STM8/STM32 - аппаратно.afynfpbz писал(а):На 127 устройств
Это может делать и концентратор.afynfpbz писал(а):с регистрами я смогу сообщить физический слот, где проблема с устройством
С чего бы это, если размер платы будет больше в несколько раз из-за большего количества корпусов и коммутаций?afynfpbz писал(а):меньше меди будет стравлено с печатной платы
Я же предлагал выше:afynfpbz писал(а):менее 44 руб.\шт.
2 руб. 70 коп. и даже 4 руб. 20 коп. выглядят на порядок привлекательней 44 руб. А отсутствие железного UART полностью компенсируется его автоматизированной программной реализацей в штатном IDE )ПростоНуб писал(а):PDK13 (PMS150C-S08 - от 10 шт. по $0.0424), а если смущает OTP, то PDK14 (PFS154-S08 - от 50 шт. по $0.0659).
С чего это вдруг? Один STM8S103K3 вполне в состоянии одновременно принимать от двух десятков клиентов программным UART, передавая им и управляя ими последовательно через мультиплексор. Так как он все равно, кроме этого и обмена по I2C ничем заниматься не будет, то производительности хватит с лихвой. Или Вы так привыкли к CMSIS, что для Вас реализация высокоскоростной обработки на низком уровне без использования библиотек кажется не выполнимой?Eddy_Em писал(а):Если нужны раздельные UART'ы, то как-то других вариантов нет.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Сбор данных с кучи UART
Крайне рукожопое решение!ПростоНуб писал(а):программным UART
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Сбор данных с кучи UART
Eddy_Em, не позорились бы хоть публично. Если для Вас программная реализация того, что в каких-то МК реализовано аппаратно - непомерный труд, то для обычных любителей - это привычное нудное программирование )))
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Сбор данных с кучи UART
Это называется не "привычное нудное программирование", а полная тупость и разложение!
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Сбор данных с кучи UART
Eddy_Em, "полная тупость и разложение" не только свое бабло тратить на дорогие IC, но и других агитировать на это, когда решение можно сделать за три копейки. Складывается ощущение, что или ST Вам процент с продаж платит, или Вы просто фанатик, бесплатно им делающий рекламу )))
Если что-то можно сделать программно без ущерба для результата конкретного проекта, то совершенно не зачем повышать себестоимость готовой продукции, экономя на её проектировании. Вы же готовы тратить лишние деньги на каждый экземляр ГП, лишь бы не утруждать себя кодированием чего-то более сложного, чем вызова готовой функции для связи с конкретным железом.
Если что-то можно сделать программно без ущерба для результата конкретного проекта, то совершенно не зачем повышать себестоимость готовой продукции, экономя на её проектировании. Вы же готовы тратить лишние деньги на каждый экземляр ГП, лишь бы не утруждать себя кодированием чего-то более сложного, чем вызова готовой функции для связи с конкретным железом.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Сбор данных с кучи UART
Да уж, подход у вас, конечно, какой-то совсем через одно место...
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Сбор данных с кучи UART
До того как освоили шину CAN датчики и центральный MCU соединяли по RS232 в кольцо. TX->RX:TX->RX и так далее. Плюс свой протокол и UID на каждый датчик.
Девице - Device