Нужно от МК передавать большие объемы данных в ПК. Скорость - 1 байт с интервалами от 10 до 20 мкс. Направление только от устройства в ПК. Для связи настраиваю UART микроконтроллера на передачу со скоростью 3 Мбит. Далее переходник UART-USB (FT232) для ввода в компьютер, а там софт работает через виртуальный COM порт. Уже при интервале 25 мкс теряется примерно 0.1% данных. При интервале 30 мкс все стабильно. То есть компьютер не успевает обрабатывать всего 40 кБ/с! Пробовал увеличивать размер приемного буфера - не помогло. Какие будут идеи?
_________________ Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
3 Мбит это нестандартная скорость UART. Уверены что ее поддерживает FT232 с величиной ошибки 0%? В коде МК ошибок нет? Перед загрузкой нового байта в UART проверяете что предыдущий был передан? Проверьте логическим анализатором что на линии MK - FT232.
Какая операционная система на ПК - реального времени ? Сомневаюсь. Видимо, в этом корень зла - ПК не успевает перерабатывть инфу в темпе ее поступления. И как ни увеличивай размер буфера - не поможет : как ни велика бочка, но если в нее вливается больше, чем вытекает - затопит соседей снизу по любому Идеи - а предварительную обработку на стороне МК нельзя, чтобы отправлять слегка сжатые данные ?
Можно попробовать уменьшить длину проводов и/или заменить их на какие-нибудь хитровыделанные, типа витой пары. У меня PL2303 тоже нет-нет, да и выдавал те же 0,1% ошибок на 4,5Mbs. Потом радикально укоротил ему провода и заработало, да еще и на 6Mbs.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А попробовать использовать для обмена любой известный протокол обмена с коррекцией ошибок не пробовали?
+100500...Ну, это первое, что приходит в голову любому человеку, который не хочет секса на ровном месте ...Даже TCP поверх RS232 есть . Но начать надо с того (т.к. упоминается МК), чтобы посмотреть, а нормальный ли там RS? Обычно любители секаса “3-хпроводковый” пользуют...А вообще, последовательный порт не для высокой скорости...- пользуйте SPI ну либо, ethernet - дотаборды даже для аруинщиков продаются....
А попробовать использовать для обмена любой известный протокол обмена с коррекцией ошибок не пробовали?
Микроконтроллер у меня - мега48. Со сложными алгоритмами обработки там не разгуляешься. Мне надо проверять некоторый импульсный сигнал с временной модуляцией. МК просто засекает импульсы таймером в режиме захвата и отправляет содержимое ICR1 в UART. А вся обработка идет в компьютере.
Конечно, там на месте виднее, но мне видятся 2 пути: - Упираться в мегу8, которой в обед сто лет, и пытаться заставить ее гнать немыслимые объемы инфы в ПК. - Взять какой-нить STM с ресурсами на порядок большими при сравнимой цене и загрузить его частью интеллектуальной работы. Я так и не увидел метода, как при самых коротких и сверхэкранированных витых парах обеспечить обработку пришедшего большего количества информации, чем сможет ПК с нереалтаймовой (не так ли?) операционкой.
FT232 подключается через USB 2.0, для которого даже 10 Мбит ерунда, все дело в правильной буферизации (при условии, что данные не пропадают на линии UART), а именно в правильной работе с буфером SerialPort. Как Вы читаете данные из буфера ?
_________________ Иван Сусанин - первый полупроводник
Как из обычного ком порта - функцией ReadFile. Анализ потерь показывает что данные теряются непрерывными блоками. О есть идет прием вообще без потерь. Потом вдруг кусок данных пропадает, потом снова прием без потерь.
_________________ Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения