Easyelectronics.ru

Электроника для всех
Текущее время: 26 май 2020, 00:05

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: LPC1768 + WIZnet5300 проблемы с передачей команд
СообщениеДобавлено: 26 дек 2013, 13:14 
Здравствуйте!

Зарегистрирован: 26 дек 2013, 12:45
Сообщения: 2
Здравствуйте! Первый раз обращаюсь тут за помощью извините, если пишу не так/не туда.


Поставили передо мной задачу создать плату автоматики, вращающую два шаговых двигателя и принимающую команды от ПК по протоколу UDP. Печатная плата уже была кем то создана и успешно применялась в подобных задачах. На плате расположены LPC1768 и WIZnet5300 ( ну и еще всякое сопутствующее). В этих вопросах я сильно начинающий. Помучившись какое-то время, почитав разных форумов (особенно этот) я сотворил программу для МК LPC1768. Первые тесты программа благополучно прошла. Она принимала команды от ПК и, используя прерывания от таймеров, вращала моторами и сообщала их координаты. Начали совмещать с программой верхнего уровня на ПК. И тут возникли проблемы.

1) По завершению перемещения плата автоматики высылает наверх две команды. Одна с последними координатами и вторая подтверждающая, что можно запускать новое перемещение. Во время работы через какое-то время между этими командами возникает значительная задержка (до 0,5 секунды и более). Смотрим время в wireshark.

2) Периодически от моей платы проскакивает неопознанный пакет меньшей длинны. IP и адрес порта у него правильные.

3) Так же периодически происходит ARP erorr. Плата стучится в неправильный адрес.
был адрес назначения 222.222.222.200 - при ошибке 222.222.222.222
поменяли на 210.211.212.213 - при ошибке 210.211.212.212

LPC1768 программирует WIZnet по 8 битной шине.
По первой ошибке - добавил чтобы в пакете жило значение с системного таймера - судя по значениям задержка идет не в МК. Стал отправлять не один пакет а 4 - задержка пропала.

Пробовал ставить точки остановки если в WIZnet записывают не тот адрес или не ту длину - ошибки случаются, программа не выпадет.
Наверное прерывание как то сбивает процесс записи данных в WIZnet, но как это проверить я не знаю.
Посоветуйте что делать)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB