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

Делаем новый черный ящик для самолетов. Начальник выдал платку на LPC2148 - сказал типа разберись с USB и как программировать. Почитал Тревора Мартина - жиденько, непонятно как на компе писать софт обмена. По контроллеру понятно но мутновато. Тыкните носом в пример со стороны компа и со стороны контроллера.

Сразу возникла проблема программирования - утилита LPC210x - посылает лесом, 2103 берет без проблем. Гле туплю? сигналы нап лапы даются правильно

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


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

Сразу возникла проблема программирования - утилита LPC210x - посылает лесом, 2103 берет без проблем. Гле туплю? сигналы нап лапы даются правильно

Возьмите мою AT200 (лежит на форуме)или ныне официальную FlashMagic.

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


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

Смотря в чем программировать.

Если в кейле - так с ним немало примеров идет. и вроде все рабочие.

Если в иаре - тоже примеры есть. Правда кривые. Но ничего, из USB_HID рабочий USB_VCOM получился..

С Universal Serial Bus Specification Revision 2.0 ознакомится все-равно обязательно!

У Тревора Мартина так, поверхностно все.

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


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

спасибо, сегодня буду пробывать.

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


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

Я вот тоже пробую разобраться с USB. С точки зрения софта я разобрался, написал свой примерчик для отладочной платы MCB 2140. Все работало замечательно.

В новом устройстве также стоит LPC 2148 и обвеска такая же. Только разъем поставил mini B, но думаю проблема не в этом.

Когда подключаю кабель, то винда выдает что мое устройство не найдено. Я посмотрел в дебаггере и увидел, что я не получаю прерывание от EP_SLOW. То есть по рисету я попадаю в функцию обработки прерывания, но бин EP_SLOW в регистре USBDevIntSt не установлен. Когда проделіваю аналогичиски манипуляции с отладочной платой, то там прерывания от едпоинты возникают.

Незнаю даже в какую сторону думать... в сторону Железа или в сторону софта? :help:

В качестве софта использовал пример от Keil UBSHID.

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


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

вобщем не буду никому ничего советовать, только подедюсь впечатлениями. Поставил USBBulk от Юрия Тёмкина www.tnkernel.com

Избавился полностью от головной боли с 2148. Заоодно и его операционку TNKernel и MicroWindows оттуда же пристроил. Воть. Доволен.

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


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

вобщем не буду никому ничего советовать, только подедюсь впечатлениями. Поставил USBBulk от Юрия Тёмкина www.tnkernel.com

Избавился полностью от головной боли с 2148. Заоодно и его операционку TNKernel и MicroWindows оттуда же пристроил. Воть. Доволен.

Будем смотреть. А а то чето я залип .. скоро меня пороть начнут, за медленные темпы.

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


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

Народ, спасайте!

 

Уже 5 день пробую понять в чем проблема.

 

Использую LPC 2148.

 

Схемотехника следующая:

 

D+ через резистор в 33 Ома подведена к ноге 10 контроллера, конденсатор 18 пФ на землю, и резистором 1.5кОм подтянута к питанию.

 

D- через резистор в 33 Ома подведена к ноге 11 контроллера, конденсатор 18 пФ на землю.

 

Больше никаких ног связаных с USB не задействовано.

 

Проблема:

Не получаю прерывания от Ендпоинты 0. Подазрения, что то то забыл сделать в железе. ( Софт 100% рабочий, проверено на MCB 2140 )

 

Вопрос:

 

1. Будит ли такое чюдо работать?

2. Нужно ли использовать ногу P0.31 ( UBS_CONNECT ) ?

3. Нужно ли использовать ногу P0.23 ( Vbus ) ?

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


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

резистором 1.5кОм подтянута к питанию

 

 

через ключ к Р0.31, в дейташите этого проца всё это описано (Application information), на всякий случай посмотри схему вот тут:

http://www.embeddedartists.com/download/pd...rdSchematic.pdf

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


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

Про земли не забыли? это так... всякое бывает...

Если раньше использовали UBS_CONNECT, то возможно прерывания от EP0 активизируются в прерывании от UBS_CONNECT...

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


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

Да вобщем-то и без P0.31 все работает... И 0.23 тоже необязателен

Ничего подобного.

см errata последнюю

USB.1 USB interface does not function if port pin P0.23 (Vbus ) is held low in GPIO mode

Introduction: The USB Vbus pin is shared as an alternate function with GPIO pin P0.23. The Vbus pin indicates

the presence of USB power. On reset, this pin is configured as a GPIO and it can be set to the Vbus

function using the PINSEL1 register (PINSEL1=0xE002 C004). The USB interface should be able

to function correctly if the Vbus feature is not used.

Problem: If P0.23 is used as a GPIO pin (i.e. the USB Vbus feature is not used) and is driven low(output) or

held low (input) then the USB interface will not function.

Workaround: P0.23 should be set high.

Note.1: Port pin P0.31 must not be driven low during reset. If low on reset the device behaviour is

undetermined.

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


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

На самом деле они пишут, что с этими ногами делать нельзя. У меня они просто NC, и все прекрасно работает в пусть и небольшой, но серии

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


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

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

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

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

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

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

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

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

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

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