Перейти к содержанию
    

USB в LPC2148

Раньше программировал USB на AT89C5131A, теперь перешли на ARM

 

Так вот поясните, пожалуйста, назначение выводов:

 

Vbus - в даташите написано, что сигнализирует подключение питания по УСБ, но что-то не очень понятен смысл, это же можно просто с порта посмотреть значение уровня или это так и происходит???

 

CONNECT и LED_UP - по connect вроде понятно - софтварное притягивание D+ к питанию, но почему это нельзя сделать просто битиком порта??? и там еще написано, что подключестся УСБ, когда на этой ножке низкий уровень, не очень понятно

 

А вот LED_UP чисто аппаратно включается, если конфигурирование удалось?

 

Что-то я не нашел, где в регистрах USB или еще в каких, отражаются сигналы CONNECT и Vbus?

 

Вообще описание USB-регистров очень скудное какое-то, так и не нашел главного регистра управления USB, как он называется?

 

 

Прости за вопрос, у меня не очень с английским

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Битиком нельзя вот почему. на P0-31 если без транзистора включить подтягивающий резистор, то на нем будет низкий уровень при сбросе устройства, а это делать нельзя ибо "Note: This pin MUST NOT be externally pulled LOW when RESET pin is LOW or the

JTAG port will be disabled." Это ис хождения по собственным граблям. Про остальное не скажу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Битиком нельзя вот почему. на P0-31 если без транзистора включить подтягивающий резистор, то на нем будет низкий уровень при сбросе устройства, а это делать нельзя ибо "Note: This pin MUST NOT be externally pulled LOW when RESET pin is LOW or the

JTAG port will be disabled." Это ис хождения по собственным граблям. Про остальное не скажу

 

Сейчас Р0.31 подключено через резистор к D+, но USB кабель не подключен к устройству, получается висит в воздухе, контроллер включается и JTAG работает, после включение контроллера устанавливается в 1, из-за pull-up резистора видимо

 

Так в чем же разница между CONNECT и Р0.31 режимами пина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он не в воздухе висит, а к D+ подключен получается. Не надо так. Нужен транзистор

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он не в воздухе висит, а к D+ подключен получается. Не надо так. Нужен транзистор

 

Получается, что если USB разъем подключен, то Р0.31 на D+, а если нет, то в воздухе.

 

Но он никак не оказывается на земле

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это как это в воздухе ? На D+ и будет висеть. Покажите схему куска. Резистор не к USB VCC подключать надо, а к процу, иначе на ходу recconect например не получится

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это как это в воздухе ? На D+ и будет висеть. Покажите схему куска. Резистор не к USB VCC подключать надо, а к процу, иначе на ходу recconect например не получится

 

Что-то тутлю по утру) Действительно на D+.

 

так если на прямую через резистор, но без транзистора, подключу в выводу проца, ведь будет всё работать? И зачем всё таки ставить транзистор?

 

и как управлять у этим выводом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нельзя напрямую. На D+ нолик будет при включении, он и затянет P0.31 вниз - чего делать нельзя. А может и не будет (не помню) а будет еще что, уже не помню точно. Помню что обломался напрямую включать. Может кто еще подскажет. Но без транзистора так не делают

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нельзя напрямую. На D+ нолик будет при включении, он и затянет P0.31 вниз - чего делать нельзя. А может еще что, уже не помню точно. Помню что обломался напрямую включать. Может кто еще подскажет.

 

Хорошо, приведите тогда схемку с транзистром

 

Но на серийном устройстве можно без транзитора обойтись, там же отладка не важна

 

Так Вы так и не ответили, как программно конектить ЮСБ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В примерах все есть. От IAR . Подключение - есть в схемах китов от Olimex

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В примерах все есть. От IAR . Подключение - есть в схемах китов от Olimex

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

 

Думаю это и не такой уж хлам, всё-таки работа с USB сейчас очень актуальна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю это и не такой уж хлам, всё-таки работа с USB сейчас очень актуальна.

 

Актуальные темы у каждого свои... ;) И USB далеко не первая, судя по статистике форума, видимой глазом. Да и 2148 уже постепенно теряет актуальность (для меня во всяком случае), 23 серия интереснее. А если еще и цены не сильно изменятся, то применять 2148 в новых разработках точно не сподоблюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Актуальные темы у каждого свои... ;) И USB далеко не первая, судя по статистике форума, видимой глазом. Да и 2148 уже постепенно теряет актуальность (для меня во всяком случае), 23 серия интереснее. А если еще и цены не сильно изменятся, то применять 2148 в новых разработках точно не сподоблюсь.

 

Так если применяете или раньше применяли LPC-2148 может объясните, что к чему у него.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так если применяете или раньше применяли LPC-2148 может объясните, что к чему у него.....

 

Резистор нужен для идентификации скорости девайса: для "Full speed" - к D+, для "Low speed" - к D-.

Транзистор нужен для обеспечения режима "Soft connection". Включать его лучше после инициализации USB контроллера (в т/ч PLL), либо после обнаружения контроллером подключения к USB, что и делает P0.31.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Резистор нужен для идентификации скорости девайса: для "Full speed" - к D+, для "Low speed" - к D-.

Транзистор нужен для обеспечения режима "Soft connection". Включать его лучше после инициализации USB контроллера (в т/ч PLL), либо после обнаружения контроллером подключения к USB, что и делает P0.31.

Вопрос был не куда и что тянуть, а зачем тразистор, а нужен он из за дурацкой полубаги в 21ХХ из-за которой JTAG отключается, если этот вывод на землю затянут. Если JTAG не нужен, то и транзистор тоже не нужен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...