|
USB не определяется компьютером, ATSAMS70N20 mass storage |
|
|
|
Nov 30 2016, 12:51
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Пытаюсь запустить пример mass storage на собственной плате с ATSAMS70N20 BGA100. Микроконтроллер поддерживает USB HS/FS. Внешний резонатор 12МГц, частота от USBpll. Ядро 300МГц. Питание 3.3В. При подключении к компьютеру приходит suspend, resume, suspend и отлуп от Windows. Видно, что приходит сброс управляющего канала и SOFы. Со стороны контроллера это выглядит так: CODE udd_attach - Full speed - udd_ctrl_interrupt - нет прерывания suspend
- Full speed - udd_ctrl_interrupt - нет прерывания resume
- High speed - udd_ctrl_interrupt - нет прерывания - reset ctrl ep0 пропуск нескольких SOF
- High speed - udd_ctrl_interrupt - нет прерывания - reset ctrl ep0 пропуск нескольких SOF
- High speed - udd_ctrl_interrupt - нет прерывания - reset ctrl ep0 пропуск нескольких SOF
- High speed - udd_ctrl_interrupt - нет прерывания - reset ctrl ep0 пропуск нескольких SOF
- Full speed - udd_ctrl_interrupt - нет прерывания suspend
Насколько я понимаю, поскольку ниразу небыло прерывания ep0, то контроллер не сообщил компьютеру ни VID, ни PID, ни BULK. Т.е. надо искать ошибку не в описаниях mass storage и BULK, а в обработчике прерываний USB? В режиме Full speed - всё также, только вместо High speed - Full speed Причём на SAMS4 - всё работало, но у SAMS70 - другой драйвер из-за HS. Подскажите в каком направлении копать.
|
|
|
|
|
 |
Ответов
|
Dec 7 2016, 08:59
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Мне кажется, нужно посмотреть в описании примеров MSD и CDC на какой кварц они рассчитаны. Если примеры не для 12мГц, то заменить кварц на тот что в примерах. Или просто заменить кварц, на всякий случай.
Если с кварцем всё в порядке, то нужно как-то проверить частоту UPLLCK, действительно-ли она 480мГц. В даташите есть диаграмма "General Clock Block Diagram" где видно, что UPLLCK можно вывести как источник для MasterClock, ProcessorClock, PeripheralClock и т.д. Вывести эту частоту (через имеющиеся там делители) на какую-то периферию, типа таймера, и пусть он выдаёт на внешнюю ножку меандр. С помощью осциллографа, частотомера, или другого контроллера - посмотреть частоту этого меандра.
Или используя эту частоту для тактирования процессора, сделать мигалку светодиодом, с частотой 1Гц, и сравнить скорость мигания при тактировании: от кварца 12мГц напрямую (минуя UPLLCK), от внутреннего RC осциллятора 4,8,12мГц, от кварца 32768 и т.п. Этот способ не сильно точный, но хотя бы грубо прикинуть соотношение частот позволяет.
|
|
|
|
|
Dec 7 2016, 12:16
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(controller_m30 @ Dec 7 2016, 11:59)  Или используя эту частоту для тактирования процессора, сделать мигалку светодиодом, с частотой 1Гц, и сравнить скорость мигания при тактировании: от кварца 12мГц напрямую (минуя UPLLCK), от внутреннего RC осциллятора 4,8,12мГц, от кварца 32768 и т.п. Этот способ не сильно точный, но хотя бы грубо прикинуть соотношение частот позволяет. Или вывести её на любую из выводов PCK с соответствующим делителем, чтобы уложиться по частоте, и померить непосредственно.
|
|
|
|
|
Dec 7 2016, 16:29
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Кварцевый резонатор 12МГц 1000ppm, что вероятно для HS много, но и FS - не работает
Вывел наружу и проверил осциллографом UPLLCK = 477.858MHz PLLACK = 477.861MHz Смотрел на выводе PCK, т.е. UPLLCK=UPLLCKDIV
Если входной кварц задать 16МГц, при подключенном 12МГц, UPLLCK = 360MHz (х30) и SOF не ловятся.
Если смотреть General Clock Block Diagram, то в PMC_SCER надо записывать 10-1, чтобы получить USB_48M, однако в примерах туда пишут 1-1. И кстати UTMI_CKTRIM на этой диаграме я не вижу.
Установка USB48M в 30, 48 или 480МГц ни на что не влияет, тем более что этот сигнал используется только в LS режиме который не поддерживается.
Для проверки используются примеры CDC или MSC от ATSAMV71 скомпилированные под ATSAMS70
Боюсь, как бы не вышла еррата, что в 100 ножечных корпусах - тоже не работает USB...
|
|
|
|
Сообщений в этой теме
_4afc_ USB не определяется компьютером Nov 30 2016, 12:51 _4afc_ Посмотрел Wiresharkом - M4 сразу отвечает дескрипт... Dec 1 2016, 11:05 _4afc_ USBCDC ведёт себя также как и MSD - не отсылает де... Dec 6 2016, 16:27  DmitryM Цитата(_4afc_ @ Dec 6 2016, 19:27) USBCDC... Dec 7 2016, 04:47   _4afc_ Замена резонатора с измеренной частотой 11.9... Dec 8 2016, 10:09 controller_m30 Я нашёл такое.
Пин VBG через резистор 5к62 1% подк... Dec 8 2016, 14:27 _4afc_ Цитата(controller_m30 @ Dec 8 2016, 17:27... Dec 8 2016, 16:59 controller_m30 Может мелочь, но всё таки.
На фигуре 30-1 (для S7... Dec 8 2016, 20:12 maxx2 Я бы посоветовал посмотреть готовый пример из конф... Dec 13 2016, 08:55 _4afc_ Цитата(maxx2 @ Dec 13 2016, 11:55) Я бы п... Dec 13 2016, 13:46  _4afc_ Два месяца, несколько подходов с разных сторон в к... Jan 18 2017, 14:37   skripach _4afc_, подскажите в чём основное отличие между E7... Jan 19 2017, 21:10    maxx2 Цитата(skripach @ Jan 19 2017, 22:10) _4a... Jan 20 2017, 07:18     skripach Цитата(maxx2 @ Jan 20 2017, 10:18)
Спаси... Jan 20 2017, 18:51   _4afc_ Цитата(_4afc_ @ Jan 18 2017, 18:37) не ра... Mar 28 2017, 15:06    Шаманъ Цитата(_4afc_ @ Mar 28 2017, 18:06) Не мо... Mar 28 2017, 16:01     _4afc_ Цитата(Шаманъ @ Mar 28 2017, 20:01) Я в с... Mar 29 2017, 11:34      Шаманъ Цитата(_4afc_ @ Mar 29 2017, 14:34) Не ув... Mar 29 2017, 13:00       _4afc_ Цитата(Шаманъ @ Mar 29 2017, 17:00) Читал... Mar 29 2017, 15:05        Шаманъ Цитата(_4afc_ @ Mar 29 2017, 18:05) Не по... Mar 29 2017, 16:04        Alexey_N Цитата(_4afc_ @ Mar 29 2017, 18:05) А в E... Dec 23 2017, 20:23         _4afc_ Цитата(Alexey_N @ Dec 23 2017, 23:23) Так... Apr 4 2018, 12:14
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|