Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с собственным загрузчиком
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
mr.smart
Всем здравствуйте!
Написал свой загрузчик. Как работает: подключаем плату, происходит конфигурация USB, далее записываем через USB во флеш некоторую программу, как только записали - прыгаем на адрес функции main данной программы.

Проблема в следующем. Допустим программа которую мы прошиваем через загрузчик тоже использует USB, и соотвественно в ней происходит начальная конфигурация и энумирация. Но так как юсб уже был сконфигурирован загрузчиком, то хост второй раз не отправляет никаких установочных пакетов и RXSETUP не поднимается. Из-за этого программа не может пройти начальный этап конфигурации, ну и соответсвенно не работает.

Сброс UDPшных регистров перед переходом на программу эффекта не дает, ибо хост по прежнему думает что всё настроено.

Была идея перед началом конфигурации USB проверять регистры UDPшные и если судя по ним все УЖЕ настроено, то переходить сразу к программе. Но как-то это ненадежно мне кажется и нелепо...

Можете подсказать как тут быть?

PS Процессор AT91SAM7S256
mempfis_
Не пробовали игратся с подключением/отключением pull-up резистора?
По нему собственно хост и определяет что подключилось устройство usb и начинает энумерацию.
mr.smart
Цитата
Не пробовали игратся с подключением/отключением pull-up резистора?

Если честно, не особо представляю как можно программно управлять подтягивающими резисторами ног DDM, DDP... Может я чего-то не понимаю?
DpInRock
Чисто на ровно странице 500 объясняется.
mr.smart
Цитата
Чисто на ровно странице 500 объясняется.

Долго пытался понять как ADC Characteristics относятся к Pull-Up) Таки сообразил, что у меня несколько устаревший даташит, скачал новый, там действительно всё есть. Я так понял что тема USBшного Pull-Up - относится больше не к процессору, а к самой плате. Но походу на моей плате данной штуковины, увы, не наблюдается.
sergeeff
Цитата(mr.smart @ Mar 12 2011, 19:43) *
Долго пытался понять как ADC Characteristics относятся к Pull-Up) Таки сообразил, что у меня несколько устаревший даташит, скачал новый, там действительно всё есть. Я так понял что тема USBшного Pull-Up - относится больше не к процессору, а к самой плате. Но походу на моей плате данной штуковины, увы, не наблюдается.


Не может такого быть, чтобы нельзя было программно сделать connect/disconnect.
DpInRock
Цитата
Я так понял что тема USBшного Pull-Up - относится больше не к процессору, а к самой плате.

Это относится к USB.
mempfis_
Цитата(mr.smart @ Mar 12 2011, 19:43) *
Долго пытался понять как ADC Characteristics относятся к Pull-Up) Таки сообразил, что у меня несколько устаревший даташит, скачал новый, там действительно всё есть. Я так понял что тема USBшного Pull-Up - относится больше не к процессору, а к самой плате. Но походу на моей плате данной штуковины, увы, не наблюдается.


Приведите кусок схемы который относится к usb. Pull-up по любому должен быть - без него хост не увидит подключение устройства. Плохо если на Вашей плате не предусмотрено управление pull-up-резистором - тогда не сможете делать программный disconnect.
skripach
Цитата
тогда не сможете делать программный disconnect.

Может перенастроить порт на выход, установить '0'.
mr.smart
Кусок схемы выкладываю, между +USB и +3V3 стабилизатор (процессор только от USB питается).
Нажмите для просмотра прикрепленного файла
DpInRock
Там встроенный поттягивающий резюк.
Причем куда он поттягивает зависит от способа подключения этой защиты.
Худшей (и бесполезной) схемы для USB придумать трудно.

Выход тут один. Руками дергать шнур.--
--
Я бы просто убрал бы эту микросхему, а на ее дорожках припаял бы транзистор с резистором.
Короче, схему из страницы 500.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.