Easyelectronics.ru

Электроника для всех
Текущее время: 13 апр 2021, 10:29

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Работа с USB на SiLabs C8051F340
СообщениеДобавлено: 01 авг 2011, 00:43 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 янв 2010, 18:02
Сообщения: 108
Общая картина. Наше предприятие разработало модуль для переноса данных из промышленного контроллера в ПК(давно это было). Модуль общается с АСУТП по 485-му интрефейсу, сохраняет результат допроса во FLASH, а в ПК данные передаёт через RS232 (COM-Порт). Командует парадом контроллер с 2-мя UART-ами (C8051F340). Но поскольку в контроллере есть еще и USB то его ноги тоже вывели наружу повесив на на них стабилитроны на всякий пожарный.
Но USB фича не была реализована: никто с протоколом не знаком, COM порта вроде как хватает. Решил я восполнить сей пробел и натолкнулся на следующую оказию.
Что сделал
1)Настроил тактирование руководствуясь даташитом и примером: для модуля USB - 48мГц (из умножителя частоты), для процессора 24мГц (половина того что выходит из умножителя)
2)Настроил VBUS на срабатывание по высокому уровню на линии VBUS
3)Инициализировал и запустил USB в режиме High Speed (прерывания разрешил все - от всех конечных точек и режимные)
4)В обработчике просто поставил NOP чтобы ловить сам факт прерывания.
Что получил
Залил прошивку в устройство (не подключенное по USB). Установил точку останова в прерывания от USB. Запустил программу на выполнение. Тут же выскочило прерывание по событию RESET - вроде бы законно поскольку обе линии (D+ D-) не подключены.
Продолжил отладку. Прерываний нет. Если остановится и посмотреть на регистр POWER - видим h08 то биш RESET. Во флагах прерывания от USB - чисто.
Подключаю USB хвост - нет реакции, через некоторое время ПК сообщает о невозможности работы с данным устройством.
Останавливаю работу контроллера, смотрю на регистры USB: прерывания сразу по RESET и от 0-й точки, регистр POWER - 00 нет сброса. Контролирую регистры разрешения прерываний - всё в порядке разрешения никуда не делись.
Итог В процессе работы USB модуля происходит только прерывание по RESET, при подключении к КП флаги прерывания подымаются но прерывание не вызывается (на точке останова нет останова).
ПРОШЕНІЄ Кто может, подскажите куда копать, поделитесь опытом. Если нужны исходники - выложу.
Очень жду ответов.


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


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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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