Форумы Modlabs.net: USB LCD HOWTO - Форумы Modlabs.net

Перейти к содержимому

  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

USB LCD HOWTO

#421 Пользователь офлайн   u571 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 3
  • Регистрация: 31 Май 06

Отправлено 31 Май 2006 - 18:53

можно ли использовать MC68HC908JB8JDW
0

#422 Пользователь офлайн   WLOM37 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 11 Июнь 06

Отправлено 11 Июнь 2006 - 16:38

Вопрос немного не по теме:
Где бы взять USBICP.EXE и MotorolaHID.exe.
На сайте freescale этого нет(или не дают).
Помогите плиз.
0

#423 Пользователь офлайн   AlekS 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 05 Сентябрь 05

Отправлено 14 Июнь 2006 - 20:39

Господин listener я несилен в машинных кодах и незнаю микроконтроллер MC68HC908JB8ADW и нет LCD с нужной буквой ,
ненайдети ли способность переработать код чтоб на выходе был не LCD а LPT порт. Жалко микруха пропадает! А так все вопросы снимутся и с LCD . И порт будет USB_LPT , сканер хоть подключу.
0

#424 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 18 Июнь 2006 - 01:14

AlekS сказал:

Господин listener я несилен в машинных кодах и незнаю микроконтроллер MC68HC908JB8ADW и нет LCD с нужной буквой ,
ненайдети ли способность переработать код чтоб на выходе был не LCD а LPT порт. Жалко микруха пропадает! А так все вопросы снимутся и с LCD . И порт будет USB_LPT , сканер хоть подключу.


В такой ситуации есть несколько проблем.
Во-первых, в стандартных классах USB устройств не предусмотрено LPT порта. Есть USB Printer, но на LPT он совсем не похож. Чтобы был LPT - нужно писать драйвер, а это гораздо сложнее переписывания десятка строчек в прошивке (они, кстати, на C; ASM для этого контроллера просто страшный).

Во-вторых, у идеи подлючить сканер есть один маленький недостаток. USB low-speed устройство может принимать или передавать только один восьмибайтовый пакет за миллисекунду, что дает теоретический максимум в 8 килобайт в секунду. По-моему, для сканера это недостаточно. В протоколами полегче, класс для сканера есть, но, к сожалений, JB8 разрабатывался для типичных низкоскоростынх применений - клавиатур, мышей, джойстиков и т.д. Для нормальной обработки данных со сканера, скорее всего, у него не хватит мощности (у него тактовая 3MHz и, в среднем, четыре такта на команду).

Сожалею, что разочаровываю.
0

#425 Пользователь офлайн   DMK 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 21 Июнь 06

Отправлено 21 Июнь 2006 - 23:07

WLOM37 сказал:

Вопрос немного не по теме:
Где бы взять USBICP.EXE и MotorolaHID.exe.

Здесь.
http://listener.pise...1/flash-jb8.zip

А вот исходники для USBICP.exe ISPdl.dlll USBICP.sys или хотя бы header-ы для библиотеки и драйвера кто нибудь имеет?
0

#426 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 24 Июнь 2006 - 17:49

Увы! Эти исходники есть только в мотороле.

Исходники бутлоадера - Motorola Application Note AN2398. Если продраться через жуткий HC08-й ассемблер и вытащить протокол (или написать свой бут), флэшер пишется самостоятельно за вечер.
0

#427 Пользователь офлайн   DMK 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 21 Июнь 06

Отправлено 25 Июнь 2006 - 15:58

listener сказал:

Увы! Эти исходники есть только в мотороле.

Исходники бутлоадера - Motorola Application Note AN2398. Если продраться через жуткий HC08-й ассемблер и вытащить протокол (или написать свой бут), флэшер пишется самостоятельно за вечер.


В протоколе худо-бедно разобрался - все команды реализованы через Vendor-Specific Request. А вот со стороны PC как воспользоваться существующим драйвером не знаю. Поэтому и ищу исходники (или хотя бы header файл) ихней dll-ки. Там все функции уже реализованы.
На собственный драйвер сил нет, да и знаний недостаточно. Хотя, может быть это значительно легче чем мне кажется?
Или удобнее бутлоадер сделать HIDом и не заморачиваться с собственными драйверами. Подскажите.
0

#428 Пользователь офлайн   ZoneRR SSoft 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 383
  • Регистрация: 01 Май 06

Отправлено 06 Июль 2006 - 11:03

я ваще ламо в USB, дак может мне хоть кто-то дать инфу о том, как у него обмен данными организован??(те что по этим Data+ и Data- идет??), и ваще скажем как комп с USB девайсом 'общаетса', что там в порт идет при подключении девайса и т.д. - просто хочетс какойто девайс на любимой мне ATmega забахать простой...
0

#429 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 12 Июль 2006 - 20:14

ZoneRR [SSoft]
Для случая с мегой - стоит посмотреть на http://www.cesko.host.sk/IgorPlugUSB_RS232...20RS232_eng.htm Там все подробно расписано.

NB. Для серьезных применений конструкция не рекомендуется.
0

#430 Пользователь офлайн   Neophyte 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 15 Декабрь 03

Отправлено 31 Июль 2006 - 10:16

Доброго времини суток !
Люди добрые помогите найти MC68HC908JB8ADW в Москве :gigi: , 15 складов обзвонил и толку ноль ;) :( ..
0

#431 Пользователь офлайн   Роман_tgh 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 16 Август 06

Отправлено 16 Август 2006 - 12:43

Ув. listener. ОЧень интересный форум. Вчера читал до 1 ночи. Почти все понял. Но есть вопрос. Достать МЕЛТовский дисплей МТ-12232В у нас совсем непросто (только под заказ и то ждать 2-3 недели), есть только 12232А, 12232С, 12232D. Зашел на одну фирмочку, а там тьма Bolyminовских дисплеев, 98% всех - символьные. Есть очень классные, например BC 2002ABNHCB ( Bolymin ) 18$ (20 символов (2,95x4,75), 2 строки, рус., LED подсветка голубой, белый символ, нормальный температурный диапазон, угол обзора 6:00, контроллер KS0066U). Так вот у меня вопрос: можно ли подключить данный индикатор к Вашей схеме (скажу, что компоненты для микроконтроллера уже купил, рисую плату и хочу попробовать ее пока без ЖКИ). Потому что в форуме есть несколько моментов на счет индикаторов, их совместимости и т.д. , но не все ясно. И будет ли работать экран 20 символов на 4 строки или аналогичный графический 122х64? Потому что я так и не разобрался. Спасибо за ответ.
0

#432 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 23 Август 2006 - 21:05

Роман_tgh
Подключить к этой схеме можно практически любой индикатор ( ограничение накладывает исключительно быстродействие контроллера - на цветные графические индикаторы его просто не хватит). Загвоздка исключительно в программной части.

128x64 у меня работал без каких-либо проблем.

Чтобы сделать поддержку индикатора, требуется поправить файлы lcd_XXXXX.c и device_adw.c. Количество имеющихся у меня индикаторв ограничено, поэтому я не могу написать и отладить поддержку всех индикаторов.

Что касается HD44780 и совместимых - мне обещали на следующей неделе дописать соответствующий модуль.
0

#433 Пользователь офлайн   Роман_tgh 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 16 Август 06

Отправлено 26 Август 2006 - 23:38

listener Значит все по-порядку. Купил детали, нарисовал платы от самого девайса и от программатора в P-CADе, спаял. Не работает (кто бы сомневался :e ). Проверил схему, ошибок вроде нет. Начал проверять напруги: микроконтроллер (...ADW) 1 и 5 нога +5в,1 b 4 - 3,3 В; на IRQ - 10,03В. Микросхема в программаторе ADM232AARN, конденсаторы на 0,1 мкФ, СМД 1206. Вроде все правильно. Включаю программу программирования (версия 2.12), вибираю все как описано в статье, но при попытке получаю сообщение: "Turn MCU power off (Under 0,1V), turn MCU power on, and then click OK". Если я правильно понял, то предлагают сначала выключить, а потом снова включить питание контроллера и нажать кнопку ок. Что и было проделано (выдергиванием USB и повторным подключением). Такое сообщение уже было у кого-то на форуме, но так и не было описано, чем оно было исправлено (или не было). Что еще может быть? И еще. Какая распайка должна быть на СОМ порт? А тоя запутался, т.к. на плате программатора установил СОМ-порт и спаял к нему удлинитель: вопрос вот в чем: это должен быть имеено удлинитель или нуль-модемный кабель? Где еще можно проверить работоспособнотсть схемы и компонентов? Вроде уже все пересмотрел, хотя всякое может быть. Есть ли какой-то алгоритм поиска неисправности, если что-то не работает? Огромное спасибо. Если все получится, выложу печптные платы на микроконтроллер и программатор в формате P-CAD (для ...AWD).
0

#434 Пользователь офлайн   hd44780 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 26 Август 06

Отправлено 29 Август 2006 - 18:51

Привет всем.
Такая проблема.
Спаял девайс PDIUSBD12 + ATMega32. Логи гонит через USART. Наблюдаю их в гипертерминале.
Лог:

EP0 = 21h == D12_ReadLastTransactionStatus ( 0 )
Setup: 80 06 00 01 00 00 40 00
bmRequestType = 80h
bRequest = 06h
wValue = 00h 01h -> 0x0100
wIndex = 00h 00h -> 0x0000
wLength = 40h 00h -> 0x0040

C_H: type=80h;req=06h -> 00h;06h.
Standard req 06h. get_descriptor 0100h -> 01h;
DevDescr: 12 01 00 01 DC 00 00 10 71 04 88 08 00 01 00 00 00 01
bLength = 12h = 18; // длина дескриптора == 18 байт
bDescriptorType = 01h; // тип дескриптора == 0x01
? bcdUSB = 0100h; // версия USB в BCD:
// 0100h - 1.0
// 0110h - 1.1
// 0200h - 2.0
bDeviceClass = DCh; // код класса USD
bDeviceSubClass = 00h; // код подкласса
bDeviceProtocol = 00h; // код протокола
bMaxPacketSize = 10h = 16; // макс. размер пакета нулевой endpoint
idVendor = 0471h; // код изготовителя
idProduct = 0888h; // код продукта
bcdDevice = 0100; // номер версии продукта в BCD
iManufacturer = 00h; // индекс дескриптора строки, описывающей производителя
iProduct = 00h; // индекс дескриптора строки, описывающей продукт
iSerialNumber = 00h; // индекс дескриптора строки серийного номера продукта
bNumConfigurations = 01h; // кол-во возможных конфигураций устройства

EP0 = 21h
Setup: 00 05 01 00 00 00 00 00
C_H: type=00h;req=05h -> 00h;05h.
Standard req 05h. set_address Address = 01

Эта песня повторяется 3 раза, после чего останавливается и говорит что девайс не опознан.

В чем м.б. проблема? Меня терзают сомнения насчет поля bcdUSB.
Я не врублюсь как правильно 0100h или 0001h?

Могу дать исходники на C cvAVR.
Спасибо.
0

#435 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 29 Август 2006 - 23:32

Роман_tgh сказал:

listener
.....
"Turn MCU power off (Under 0,1V), turn MCU power on, and then click OK". Если я правильно понял, то предлагают сначала выключить, а потом снова включить питание контроллера и нажать кнопку ок. Что и было проделано (выдергиванием USB и повторным подключением). Такое сообщение уже было у кого-то на форуме, но так и не было описано, чем оно было исправлено (или не было). Что еще может быть?


Это нормальное сообщение. Поскольку в выбранном типе программтора резет не выведен (есть схемы, где он на DTR вешается), то, таким образом, ненявязчиво предлагается обрезетить контроллер.

Если сообщение повтрояется - нужно проверять резисторы на PA0-PA3. (Резистор от PA2 должен быть подключен на землю, остальные - к +5v)).

Что вообще происходит. При включении, контроллер проверяет, что на IRQ > 8v. Если это так, проверяется, что на PA0-PA3. Если и здесь все в порядке, управление передается не на основной флэш, а на дополнительный, с программатором и дебаггером в нем. После этого, PA0 работает как полудуплексный RS-232. В него выдается подтверждение, что монитор запустился.
Если это подтверждение не получено, предлагается обрезетить контроллер (в данном случае - передернуть питание).

Роман_tgh сказал:

И еще. Какая распайка должна быть на СОМ порт? А тоя запутался, т.к. на плате программатора установил СОМ-порт и спаял к нему удлинитель: вопрос вот в чем: это должен быть имеено удлинитель или нуль-модемный кабель?

Удлинитель.

Роман_tgh сказал:

Где еще можно проверить работоспособнотсть схемы и компонентов? Вроде уже все пересмотрел, хотя всякое может быть. Есть ли какой-то алгоритм поиска неисправности, если что-то не работает? Огромное спасибо. Если все получится, выложу печптные платы на микроконтроллер и программатор в формате P-CAD (для ...AWD).

Проверить, что на PA0-PA3. Убедиться, что кварц запустился. (У меня с самой первой схемой был случай, когда не был припаян резистор параллельно кварцу. Была полная фантастика - пока плату держишь в руках - работает. Кладешь на стол - перестает) Если есть логический анализатор - посмотреть, что идет по PA0.

Добавлено спустя 1 час 1 минуту 10 секунд:

hd44780
USB 1.0 = { 0x00, 0x01 } (т.е. 0x100).

В чем может быть засада: вывод в ком-порт - time-consuming task. Возможно, увлекшись протоколированием, ATmega банально не успевает ответить на запрос, а при хэндшейке, ответ должен поступать сразу же после запроса.

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

Третье - отсутствующие строки производителя и продукта - тоже могут привести к чему-то нехорошему.

Живой пример для ATmega16 и D12 - http://listener.fata...board-0.0.2.zip (переходник PS/2 -> USB)
0

#436 Пользователь офлайн   hd44780 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 26 Август 06

Отправлено 30 Август 2006 - 08:22

listener, спасибо.

Дескриптор и протокол поправлю.
Я пользовался Вашим примером, и у меня вопрос - у Вас событие Bus Reset в прерывании фактически не обрабатывается - вызывается пустая функция и устанавливается нигде не обрабатываемый флаг. Да и PDI не имеет выхода сброса, только вход. Как я тогда прекращу передачу?
0

#437 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 30 Август 2006 - 19:03

hd44780
Bus Reset != reset контроллера.
по резету шины, устройство обязано обнулить адрес и начать следующие IN/OUT пакеты с DATA0. D12 все это делает сама. Функция осталась для трассировки. Аналогично, флаг тоже использовался в каком-то другом проекте.

О прекращении передачи. Нормально, handshake выглядит так:

=> BUS_RESET
=> SETUP: Get device descriptor
<= IN: первый пакет дескриптора пошел
=> BUS_RESET - сброс шины приходит, после приема первой части дескриптора. Посылать остаток дескриптора не нужно
=> SETUP: Set address
=> SETUP: Get Device Descriptor - а здесь уже посылается нормальный дескриптор, полностью.
<= IN: первый пакет пошел
<= IN: второй пакет пошел
и так, пока дескриптор не кончится. Дальше - делать что спросят, без каких-либо особых тонкостей.

Про D12 здесь http://forum.zinetz....wtopic.php?t=20 написали аж восемь страниц. Должны быть перечислены все грабли, на которые можно наступить.
0

#438 Пользователь офлайн   hd44780 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 26 Август 06

Отправлено 31 Август 2006 - 09:53

Спасибо.
Будем смотреть ...

У меня на SETUP: SetAddress все и заканчивается ...
0

#439 Пользователь офлайн   XShadow 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 17
  • Регистрация: 13 Октябрь 05

Отправлено 31 Август 2006 - 13:04

Интересно а кто нибудь пробовал подключать графический цветной LCD?? :beer: Скажем 320Х240

Было бы интересно! Правда там уже наверное нужно использовать архитектуру AVR32))
0

#440 Пользователь офлайн   hd44780 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 26 Август 06

Отправлено 01 Сентябрь 2006 - 10:39

После шаманских действий, получил следующее:

Лог расшифрован вручную.

I=0001h EP0 = 21h
Setup: 80 06 00 01 00 00 40 00
bmRequestType = 80
bRequest = 06
wValue = 0100h - просит дескриптор 01h (Device)
wIndex = 0000h
wLength = 0040h - просит 64 байт

I=0002h (ep0_txdone) EP0tx=2 (прерывание досылает 2 байта) EP0tx< EP0txN
I=0040h (Reset)
I=0001h EP0 = 21h
Setup: 00 05 01 00 00 00 00 00
Уст. адрес 1

I=0002h (ep0_txdone)
I=0001h (ep0_rxdone)
EP0 = 21h
Setup: 80 06 00 01 00 00 12 00
bmRequestType = 80
bRequest = 06
wValue = 0100h - просит дескриптор 01h (Device)
wIndex = 0000h
wLength = 0012h - 18

I=0002h (ep0_txdone) EP0tx=2 EP0tx< EP0txN

I=0002h (ep0_txdone)
I=0001h (ep0_rxdone) EP0 = A1h
Setup: 80 06 00 02 00 00 09 00
bmRequestType = 80
bRequest = 06
wValue = 0200h - просит дескриптор 02h (Config)
wIndex = 0000h
wLength = 0009h = 9

I=0002h (ep0_txdone)
I=0001h (ep0_rxdone) EP0 = A1h
Setup: 80 06 00 03 00 00 FF 00
bmRequestType = 80
bRequest = 06
wValue = 0300h - просит дескриптор 03h (String 0)
wIndex = 0000h
wLength = 00FFh = 255

I=0002h (ep0_txdone)
I=0001h (ep0_rxdone) EP0 = A1h
Setup: 80 06 00 02 00 00 FF 00
bmRequestType = 80
bRequest = 06
wValue = 0200h - просит дескриптор 02h (Config)
wIndex = 0000h
wLength = 00FFh = 255 байт

I=0002h (ep0_txdone) EP0tx=30 EP0tx>
I=0002h (ep0_txdone) EP0tx=14 EP0tx< EP0txN
I=0002h (ep0_txdone)
I=0001h (ep0_rxdone) EP0 = 41h
I=0040h (Reset)

I=0001h (ep0_txdone) EP0 = 21h
Setup: 80 06 00 01 00 00 40 00
пошел по кругу

В дескр. устройства 3 строки (manufacturer - 1, product - 2, serNum - 3).

Эта последовательность проходит 3 раза и все ...
Чего он начинает повторно запрашивать ?..

Добавлено спустя 31 минуту 27 секунд:

Отменяется, я ошибку нашел.

Дескрипторы Config, Interface и 4 точки должны отсылаться одним пакетом, так?

У меня сейчас не так.

Добавлено спустя 14 часов 24 минуты 35 секунд:

Работает. Комп запросил драйвер.
Плату чуток перепаяю и займусь драйвером.

Кстати, кто-нибудь знает, как драйвер писать? Читал, что можно использовать образец из DDK, только как - непонятно.

Добавлено спустя 12 минут 43 секунды:

Кстати, что означает Last Trans Status == 41h - пакет 1/0?
Иногда идет, а чего с ним делать непонятно ...
0

Поделиться темой:


  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

12 человек читают эту тему
0 members, 12 guests, 0 anonymous users