реклама на сайте
подробности

 
 
> ObDev USB + UART, Потеря байтов
hd44780
сообщение Apr 20 2012, 06:17
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Здравствуйте.

Сделал 2 прибора:

1. Переделанный PowerSwitch из ObDev-а (HID, одна нагрузка, вкл/выкл через указанное время и пр.). Сделан на Mega8@12MHz. Работает нормально.

2. Ваттметр для электросети - Mega16@16MHz. Измеряет напряжение, ток, мощности и всё такое. Полностью развязан от сети трансформаторами. Выводит добро на собственный LCD. Также способен выдавать все результаты измерений на UART по запросу из того же UARTа. Запрос - 1 байт, ответ (результаты) - 15 байт без каких-либо шифров, CRC, подтверждений и прочих заморочек. Параметры обмена по UART - 38400, 8N1. Проверял обмен через MAX232 и обычный COM-порт компа. Всё прекрасно.

Теперь надо связать эти 2 схемы в одну, чтобы данные измерений уходили в комп по USB. Добавил работу с UART - как у японца - http://www.recursion.jp/avrcdc/cdc-232.html
CDC не делал, обмен идёт по собственному протоколу (в рамках HID). Прерывание TXCIE (передача) убрал (оно мне не нужно, в ваттметр всегда отсылается только 1 байт запроса), увеличил буфер приёма до 16 байт (у японца - 8 байт).

Контроль целостности данных ваттметра только по длине - я должен получить 15 байт.

Проблема в том, что данные часто приходят "порченные":
1. Когда использовал прерывание UART по приходу байта (знаю, что в ObDev это нехорошо) - получал "пакеты" - 12, 2, 15 байт. Т.е. годной оказывалась одна посылка из 3-х.
2. Когда работаю с UART опросом (как японец) - ещё хуже - идут пакеты примерно 2, 5, 9, 12, 15 байт. Потерь уже пятая часть.

Скорость UARTа менять пока не пытался.

Можно ли как-то это дело поправить? Или только ставить "железный" USB контроллер?

ЗЫ
Есть USB контроллер PDIUSBD12D, и небольшой опыт работы с ним тоже есть biggrin.gif .


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
hd44780
сообщение Apr 20 2012, 06:49
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Да валяется у меня AT91SAM7X256 biggrin.gif .... Но я его ни разу не использовал, только описания всякие читал.
Да и жалко как-то такую мощу ставить на этот выключатель. Даже если я в него и ваттметр целиком запихну. Памяти в нём до хрена biggrin.gif .

А вообще - отличный повод разобраться с этим SAM7X.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
prottoss
сообщение Apr 20 2012, 07:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(hd44780 @ Apr 20 2012, 12:49) *
А вообще - отличный повод разобраться с этим SAM7X.
Повод разобраться вообще с ARM отличный, но SAM7X не для такой задачи, опять же ИМХО. Может лучше посмотреть в сторону STM32F1xx - и цена адекватная и как раз под Вашу задачу, думаю, подходит.


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016