|
|
  |
USB programmer AVR910, с драйвером от obdev |
|
|
|
Mar 2 2009, 13:42
|

Участник

Группа: Участник
Сообщений: 31
Регистрация: 26-02-09
Пользователь №: 45 374

|
Цитата(Marian @ Feb 27 2009, 21:21)  Попробуй переделать на 5 вольт. Схему найдеш выше. Питание на проц. подаешь ? Питание на программируемый проц конечно же подаю. Теперь насчет 5-ти вольт: переделал на 5 вольт - программатор вообще перестал адекватно восприниматься системой (устройство USB не опознано), потом убрал один из двух понижающих диода (пмтание камня в программаторе стало равным 4.2В) и все заработало, правда иногда выдает ошибки при записи/чтении, но с этим я уже как нибудь разберусь. Благодарствую за совет !:yeah:
Сообщение отредактировал ALEXLAB - Mar 2 2009, 13:43
|
|
|
|
|
Mar 3 2009, 17:48
|

Частый гость
 
Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618

|
Цитата(ALEXLAB @ Mar 2 2009, 15:42)  Теперь насчет 5-ти вольт: переделал на 5 вольт - программатор вообще перестал адекватно восприниматься системой Если посмотриш на мою схему, то там диодов, по +5 , нет вообще.
|
|
|
|
|
Mar 4 2009, 11:50
|

Участник

Группа: Участник
Сообщений: 31
Регистрация: 26-02-09
Пользователь №: 45 374

|
Цитата(Marian @ Mar 3 2009, 20:48)  Если посмотриш на мою схему... М ссылочку или хотя-бы номер страницы форума? - уж очень большой он
|
|
|
|
|
Mar 4 2009, 17:29
|

Участник

Группа: Участник
Сообщений: 31
Регистрация: 26-02-09
Пользователь №: 45 374

|
Цитата(Marian @ Mar 4 2009, 20:02)  Благодарствую. Просто я собирал по схеме опубликованной prottosso(м) в одном из известных журналов (не буду делать рекламу). Так вот там диоды в питании камня были. Еще вопрос: какие отзывы о программере, построенном по вышеуказанной методике? - тоже хочу попробовать.
|
|
|
|
|
Mar 4 2009, 18:43
|

Частый гость
 
Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618

|
Цитата(ALEXLAB @ Mar 4 2009, 19:29)  Благодарствую. Просто я собирал по схеме опубликованной prottosso(м) в одном из известных журналов (не буду делать рекламу). Так вот там диоды в питании камня были. Еще вопрос: какие отзывы о программере, построенном по вышеуказанной методике? - тоже хочу попробовать. Нормально работает со AVR Studio.
|
|
|
|
|
Mar 25 2009, 21:14
|
Группа: Новичок
Сообщений: 2
Регистрация: 9-02-08
Пользователь №: 34 897

|
Кому надо еще одна печатка программатора (Для Sprint-Layout 5). Если че пишите на мыло...
|
|
|
|
|
Apr 1 2009, 20:26
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300

|
Цитата demidrol если это кого-то интересует, то цитирую: Цитата Bulk endpoints are forbidden for low speed devices by the USB standard. Как я понимаю, в WinXP на соответствие стандартам просто забили, так что там программатор работает на ура. Для тех, кто на Linux - придется патчить ядро. В сети есть соответствующие наработки (впрочем, и там интуитивно понятно, ЧТО надо поправить в ядре, чтобы оно забивало на проверку lowspeed && BULK), но, если кого заинтересует, могу поделиться патчем. To protoss: очень прошу вас об этой проблеме написать на protoss.com, немало людей сталкивается с подобной проблемой. Собрал программатор, прекрасно работает на работе на винде. Дома линукс на eeepc. На команду "avrdude -P /dev/ttyACM0 -c avr910 -p8535 -U flash:w:main.hex:i" говорит: avrdude: ser_send(): write error: Invalid argument Что я делаю не так и что вообще надо делать, чтобы завести программатор под линуксом?
|
|
|
|
|
Apr 3 2009, 18:21
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300

|
Да, спасибо за наводку, GDI. Почему-то думалось, что ветке про програматор олжно быть всё про него в том числеи и про запуск под Линукс. Хорошенько попользовав поиск по форуму, взял прошивку из этого сообщения и попатчил, как сказал GDI здесь. Использовал штатный Makefile от winavr, указав программатор stk500v2 и порт avrdoper. Теперь программатор от prottoss-а работает у меня и в линуксе. Большое всем спасибо. Что получилось - прикрепил.
|
|
|
|
|
Apr 18 2009, 14:14
|
Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 6-02-09
Пользователь №: 44 487

|
итак, подробнее про то, как заставит работать программатор под linux. Оговорюсь, что я не автор патчей, решение есть, например, тут linkНачнем с того, что со стандартным ядром он не будет работать по крайней мере на intel'овских host-контроллерах, так как сам программатор использует cdc-класс, являясь при этом низкоскоростным устройством (подробнее здесь CDC class devices ). Ядро, увидев, что программатор запрашивает нестандартный режим, принудительно выставляет его режим работы в INTERRUPT, что довольно печально кончается -- при попытке обращения к CDC-устройству (в моем случае это /dev/ttyACM0) система блокируется. Решение довольно просто -- нужно отключить все проверки на соответствие стандартам USB в ядре. Это делается с помощью такого вот патча: CODE diff -uprN a/drivers/usb/core/config.c b/drivers/usb/core/config.c --- a/drivers/usb/core/config.c 2009-01-28 21:49:30.000000000 +0300 +++ b/drivers/usb/core/config.c 2009-02-05 23:53:49.000000000 +0300 @@ -137,14 +137,15 @@ static int usb_parse_endpoint(struct dev if (to_usb_device(ddev)->speed == USB_SPEED_LOW && usb_endpoint_xfer_bulk(d)) { dev_warn(ddev, "config %d interface %d altsetting %d " - "endpoint 0x%X is Bulk; changing to Interrupt\n", + "endpoint 0x%X is Bulk; USB spec violation\n", cfgno, inum, asnum, d->bEndpointAddress); - endpoint->desc.bmAttributes = USB_ENDPOINT_XFER_INT; - endpoint->desc.bInterval = 1; - if (le16_to_cpu(endpoint->desc.wMaxPacketSize) > 8) - endpoint->desc.wMaxPacketSize = cpu_to_le16(8); + /* endpoint->desc.bmAttributes = USB_ENDPOINT_XFER_INT; + * endpoint->desc.bInterval = 1; + * if (le16_to_cpu(endpoint->desc.wMaxPacketSize) > 8) + * endpoint->desc.wMaxPacketSize = cpu_to_le16(8); + */ } - + /* * Some buggy high speed devices have bulk endpoints using * maxpacket sizes other than 512. High speed HCDs may not diff -uprN a/drivers/usb/host/uhci-q.c b/drivers/usb/host/uhci-q.c --- a/drivers/usb/host/uhci-q.c 2009-01-28 21:49:30.000000000 +0300 +++ b/drivers/usb/host/uhci-q.c 2009-02-05 23:48:06.000000000 +0300 @@ -1034,13 +1034,13 @@ static int uhci_submit_bulk(struct uhci_ int ret; /* Can't have low-speed bulk transfers */ - if (urb->dev->speed == USB_SPEED_LOW) - return -EINVAL; + /*if (urb->dev->speed == USB_SPEED_LOW) + return -EINVAL;*/ if (qh->state != QH_STATE_ACTIVE) - qh->skel = SKEL_BULK; + qh->skel = (urb->dev->speed == USB_SPEED_LOW ? SKEL_LS_CONTROL : SKEL_BULK); ret = uhci_submit_common(uhci, urb, qh); - if (ret == 0) + if (ret == 0 && urb->dev->speed != USB_SPEED_LOW) uhci_add_fsbr(uhci, urb); return ret; }
Инструкции по наложению патчей а также по пересборке ядра в огромном количестве имеются в Сети, так что эти тривиальные шаги я не описываю.
|
|
|
|
|
Apr 30 2009, 08:35
|

Группа: Участник
Сообщений: 5
Регистрация: 1-02-06
Пользователь №: 13 842

|
Цитата(lolikandr @ Apr 3 2009, 22:21)  Что получилось - прикрепил. Вах! Это замечательно! Вам спасибо!
|
|
|
|
|
Apr 30 2009, 17:02
|
Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 6-02-09
Пользователь №: 44 487

|
Цитата(GDI @ Apr 24 2009, 15:46)  Зачем патчить ядро Линукса, если можно пропатчить прошивку программатора и перевести его в режим HID как описывалось мною в другой ветке и удачно воспроизведено lolikandr-ом? И все будет прекрасно работать безо всяких вмешательств в ядро ОС. просто потому, что это первое решение, которое нашел. За совет -- спасибо.
|
|
|
|
|
  |
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0
|
|
|