|
Как перевести AVREAL на работу с USB?, AVREAL работает через LPT, как заставить через USB? |
|
|
|
Feb 1 2008, 07:54
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 6-06-07
Пользователь №: 28 233

|
На фирме для прошивки AVR используется AVREAL. Порт LPT соединяется с платой простым шлейфом, все прибамбасы, обеспечивающие прошивку, собраны на плате. LPT явно уходит в небытие. Как с наименьшими потерями реализовать прошивку через USB, не меняя платы?
|
|
|
|
|
 |
Ответов
|
Feb 7 2008, 17:30
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
ReAlЕсли брать по большому счету ,то у вас проблема ,которой не существует  Если ваш драйвер не поддерживает выражения типа : Код тыры-пыры_имя_драйвера.тыры-пыры_назначить_порт=1 или 2 или 3 а требует только базовый адресс ,то пошлите его лесом гулять,и подыщите нормальный. Не нужно будет извращаться с копаниями в реестре вообще. К примеру если для LPT нужно ,есть драйвер TVicPort ,ложится под любой язык ,начиная с Билдера кончая .NET . Сам определяет какие есть порты ,сколько их,какие у них базовые адресса,дергает любой ногой, есть даже дополнительные фичи - типа определить серийник винта или назначить лицензию на определенное количество дней . Можно и другой подыскать на свой вкус. Я с LPT редко работал ,поэтому коллекцию себе не собирал. ИМХО если чтото новое мутить ,то лучше на LPT и не закладываться,но это дело хозяйское  Насчет СОМ ,функции CreateFile, ReadFile, SetupComm, WriteFile и т.д. у меня в коде они есть,я выдернул с инета уже четыре варианта и у всех одна и таже проблема с пропуском байтов. Если подкинете свой рабочий вариант ,с меня будет пиво и уважуха
|
|
|
|
|
Feb 7 2008, 18:00
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(bodja74 @ Feb 7 2008, 20:30)  Насчет СОМ ,функции CreateFile, ReadFile, SetupComm, WriteFile и т.д. у меня в коде они есть,я выдернул с инета уже четыре варианта и у всех одна и таже проблема с пропуском байтов. Если подкинете свой рабочий вариант ,с меня будет пиво и уважуха  Пиво по интернету передавать умеете ? пользуетесь ли Вы таймаутами ком порта ? (в SetupComm) пользуетесь ли Вы функцией Sleep(x) ?
|
|
|
|
|
Feb 7 2008, 18:35
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(singlskv @ Feb 7 2008, 22:00)  Пиво по интернету передавать умеете ?  Конечно Цитата пользуетесь ли Вы таймаутами ком порта ? (в SetupComm) Нет Цитата пользуетесь ли Вы функцией Sleep(x) ? Да ,в цикле 100мс ,если байтов нет ,выходим.
|
|
|
|
|
Feb 8 2008, 17:37
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(singlskv @ Feb 7 2008, 22:46)  А какая длина пакета на приеме От 256 байт до 256к ,короче бут в перемешку с прогером  Цитата и сколько байт на прием передаете функции ReadFile ? От 64байт до 8К,по разному пробовал. Цитата И скорость порта какая ? 115200, на каждых 4К ,теряется от 20 до 200 байт,по разному, я тут думаю ,может буфер переполняется ,но вроде как в ReadFile больше нигде не указывается, ReAlДавайте не будем нашу дискуссию переводить в полемику.Хорошо? Я догадывался ,что при желании вы этот драйвер раскритикуете от и до  ,поэтому предложил его в качестве примера ,не запрещая при этом найти себе более подходящий.
|
|
|
|
|
Feb 8 2008, 20:18
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(bodja74 @ Feb 8 2008, 19:37)  ReAlДавайте не будем нашу дискуссию переводить в полемику.Хорошо? Я догадывался ,что при желании вы этот драйвер раскритикуете от и до  ,поэтому предложил его в качестве примера ,не запрещая при этом найти себе более подходящий. А давайте сначала Вы в качестве примера будете приводить драйвер, который действительно делает то, что Вы говорите о нём. А то "дискуссия" выглядит так Цитата - Винт тут у меня с очень хитрым шлицом, пробовал выточить отвёртку по нескольким разным чертежам - не лезет! Могу, конечно, прикинуть визуально и что-то слепить, но какой смысл, если попадётся другой, в который не полезет. Нужна информация по спецвинтам. - Надо закрутить винт? Возьмите любой инструмент, которым нормальные люди закручивают винты, например, электроотвёртку с набором из плоской и крестовой вставок, сама лезет в любой винт, сама закручивает! Ну или что-то другое по вкусу, я вообще мало винтов закручивал, поэтому инструментов много не собирал. - Дык не лезут из этого набора в шлиц не массового винта! - Не превращайте дискуссию в полемику, возьмите любой другой инструмент, я не запрещал искать по вкусу. Ваши слова: Цитата(bodja74 @ Feb 7 2008, 19:30)  К примеру если для LPT нужно ,есть драйвер TVicPort ,ложится под любой язык ,начиная с Билдера кончая .NET . Сам определяет какие есть порты ,сколько их, какие у них базовые адресса, дергает любой ногой, есть даже дополнительные фичи - типа определить серийник винта или назначить лицензию на определенное количество дней . Можно и другой подыскать на свой вкус. Я с LPT редко работал ,поэтому коллекцию себе не собирал. Вы за них отвечаете или нет? Я просто указал, что они не соответствуют действительности для тех портов, с которыми у меня "несуществующая проблема". Если так с Вами разговаривать нельзя - извините, не хотел обидеть. Цитата(singlskv @ Feb 8 2008, 03:18)  Попробуйте у себя такой метод через реестр: идем HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Enum ... в нем по смещению 0x18 должен сидеть адрес LPT по смещению 0x20 сидит количество портов которые задействованны устройством ... Это должно работать на 2000/XP Хех... Кабы ж то всё так просто... Вот с работы, W2000sp4, набортный LPT Цитата [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Enum] "0"="ACPI\\PNP0401\\4&2c575acb&0" "Count"=dword:00000001 "NextInstance"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\PNP0401\4&2c575acb&0\Device Parameters] "FirmwareIdentified"=dword:00000001 "PortName"="LPT1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\PNP0401\4&2c575acb&0\LogConf] "BootConfig"=hex(8):\ 01,00,00,00, 0f,00,00,00, \ 00,00,00,00, 01,00,01,00, \ 04,00,00,00, 02,01,01,00, \ 07,00,00,00, 07,00,00,00, \ ff,ff,ff,ff, 04,01,00,00, \ 03,00,00,00, 00,00,00,00, \ 00,00,00,00, 01,01,11,00, \ 78,03,00,00, 00,00,00,00, \ 08,00,00,00, 01,01,11,00, \ 78,07,00,00, 00,00,00,00, \ 08,00,00,00 Тут почти всё как Вы сказали - разница только в том, что по смещениям 0x18 и 0x20 "что-то не то" (возможно, некие флаговые значения, говорящие, чо надо идти дальше - но по крайней мере есть куда копать), а реальных два диапазона - по смещениям 0x38,0x40; 0x48,0x50. Ну тут хоть наличие порта видно. А вот дома, с PCI-платой... Цитата [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Enum] "Count"=dword:00000000 "NextInstance"=dword:00000000 "INITSTARTFAILED"=dword:00000001 Всё. Портов просто нет. Что означает INITSTARTFAILED - не знаю, но в свойствах - "устройство работает нормально", ради проверки даже достал из-под стола Epson LQ100+ (кстати, кому-то нужен? отдам бесплатно, самовывоз) проинсталлировал его драйвер на LPT1 и напечатал пробную страницу. Кстати, в аналогичном HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Enum в наличии только один COM-порт, набортный COM1. А COM4 и COM5 от той же PCI-платы отсутствуют. А живут они тут: Цитата [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\MF\PCI#VEN_9710&DEV_9835&SUBSYS_00121000&REV_01\5&c47b19f&0&08F0#Child0002] "DeviceDesc"="MosChip PCI Parallel Port" "Capabilities"=dword:00000000 "UINumber"=dword:00000002 "HardwareID"=hex(7):4d,46,5c,50,43,49,39,37,31,30,5f,45,43,50,00,00 "ClassGUID"="{4D36E978-E325-11CE-BFC1-08002BE10318}" "Class"="Ports" "Driver"="{4D36E978-E325-11CE-BFC1-08002BE10318}\\0002" "FriendlyName"="MosChip PCI Parallel Port (LPT1)" "Mfg"="MosChip Technology" "Service"="NmPar" "ConfigFlags"=dword:00000000 "ParentIdPrefix"="6&19ad4653&0"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\MF\PCI#VEN_9710&DEV_9835&SUBSYS_00121000&REV_01\5&c47b19f&0&08F0#Child0002\Device Parameters] "PortName"="LPT1" "NationalChecked"=dword:00000001 "NationalChipFound"=dword:00000000 "FilterResourceMethod"=dword:00000001 Child0000 и Child0001 - это COM-порты от неё. Я там дальше нашёл в данных адреса, могу их выковыривать, но когда и где вылезет очередная плата? Без нормального описания возможных ключей в этой части реестра можно всю жизнь экспериментировать и подбирать. Но в тех нескольких книгах по реестру, которые я видел - этого нет совсем. А примеры, включая и этот - я видел, но они далеко не всегда работают :-( Цитата(VslavX @ Feb 8 2008, 09:56)  Для определения базового адреса порта по его номеру в 2K/XP мне видится такой путь: - определяем device object для нужного номера LPT. Можно просто разрешить Symbolic Links, или воспользоваться готовой информацией из документации на XP DDK - файл parallel.chm - "Parallel Device Interfaces, Internal Names, and Symbolic Links" Вот в сторону DDK совсем не хотелось лезть. Раз для "типовых" портов можно обойтись реестром, раз и на свою PCI-LPT я всё нужное глазами в реестре нашёл, значит где-то должно быть достаточно полное описание ключей реестра :-) Самое смешное, что с моей точки зрения проблемы тоже не существет, только по другой причине. Потенциальные пользователи avreal, по идее, должны быть достаточно "образованы", чтобы найти на закладке "ресурсы" нужного порта его базовый адрес и вписать его куда надо. Мне кажется, что на конкретном компьютере он меняется самовольно не так часто - у меня даже при некоторых изменениях конфигурации не менялся. В любом случае - по сравнению с уствновкой драйверов на что-то новое не так и много работы опять заглянуть на нужную страничку. Тот же avrdude не заморачивается и под виндовс, по крайней мере судя по его документации, просто жёстко привязывает адреса к словам lpt1, lpt2, lpt3 никуда не заглядывая. Мой порт, естественно, не увидел. Я даже не поленился Pony скачать (avrdude-то идёт с WinAVR) - тоже все три дырочки "LPT" серые. На этом фоне -pE800 уже достижение :-) Мда... Слишком старательно движок конфы сливает смежные посты в один. Хоть бы по размеру поста глянул, большие не сливал...
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 8 2008, 20:40
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(ReAl @ Feb 8 2008, 23:18)  Тут почти всё как Вы сказали - разница только в том, что по смещениям 0x18 и 0x20 "что-то не то" (возможно, некие флаговые значения, говорящие, чо надо идти дальше - но по крайней мере есть куда копать), а реальных два диапазона - по смещениям 0x38,0x40; 0x48,0x50. Ну тут хоть наличие порта видно. Да, все правильно, есть такие порты с двумя диапазонами, для них структура более длинная... Я тут недавно софт переставлял и случайно стер DDK, попробую найти DDK и найти эти структуры... Цитата А вот дома, с PCI-платой... Всё. Портов просто нет. Что означает INITSTARTFAILED - не знаю, но в свойствах - "устройство работает нормально", ради проверки даже достал из-под стола Epson LQ100+ (кстати, кому-то нужен? отдам бесплатно, самовывоз) проинсталлировал его драйвер на LPT1 и напечатал пробную страницу. А что у Вас сидит в Control Panel/Device Menager/Hardwar/LPT1 ? Интересует закладка Details и параметер Device Instance Id, собственно там и сидит путь к Вашему LPT. Цитата Кстати, в аналогичном HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Enum в наличии только один COM-порт, набортный COM1. А COM4 и COM5 от той же PCI-платы отсутствуют. А живут они тут: Child0000 и Child0001 - это COM-порты от неё. Нда..., ключевое слово здесь видимо "ParentIdPrefix"="6&19ad4653&0" У Вас просто многофункциональный девайс...
|
|
|
|
|
Feb 8 2008, 20:58
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(singlskv @ Feb 8 2008, 22:40)  А что у Вас сидит в Control Panel/Device Menager/Hardwar/LPT1 ? Интересует закладка Details и параметер Device Instance Id, собственно там и сидит путь к Вашему LPT. Оно! Там строка Код MF\PCI#VEN_9710&DEV_9835&SUBSYS_00121000&REV_01\5&c47b19f&0&08F0#Child0002 Т.е. мне надо как-то выковыривать из винды эту строку и приписывать её к Код HKLM\SYSTEM\CurrentControlSet\Enum Цитата(singlskv @ Feb 8 2008, 22:40)  Нда..., ключевое слово здесь видимо "ParentIdPrefix"="6&19ad4653&0" У Вас просто многофункциональный девайс... Ну, на работе тот LPT, который нашёлся - тоже не "малофункциональный" - он ещё сидит в Код [HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\8\ParallelController\0] "Component Information"=hex:40,00,00,00,00,00,00,00,00,00,00,00,ff,ff,ff,ff "Identifier"="PARALLEL1" "Configuration Data"=hex(9):\ 01,00,00,00, 00,00,00,00, 00,00,00,00, 02,00,00,00, \ 01,01,01,00, 78,03,00,00, 00,00,00,00, 03,00,00,00, \ 02,00,01,00, 07,00,00,00, 07,00,00,00, ff,ff,ff,ff и у этого MultifunctionAdapter\8 там ещё куча всего, включая FDC и контроллер клавиатуры.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 8 2008, 22:34
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(ReAl @ Feb 8 2008, 23:58)  Оно! Там строка Код MF\PCI#VEN_9710&DEV_9835&SUBSYS_00121000&REV_01\5&c47b19f&0&08F0#Child0002 Т.е. мне надо как-то выковыривать из винды эту строку и приписывать её к Код HKLM\SYSTEM\CurrentControlSet\Enum Ну на крайний случай есть вариант с перебором всей ветки ...\Enum на предмет наличия Device Parameters\PortName = LPTx и последующем чтением LogConf\BootConfig здесь оно главное, в BootConfig пишется адрес девайса действительный на момент загрузки... Цитата Ну, на работе тот LPT, который нашёлся - тоже не "малофункциональный" - он ещё сидит в [code][HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\8\ParallelController\0] да, там они тоже все сидят, только это не то что получилось на момент загрузки... Это скорее всего то, что покажет Device Manager в случае загрузки в Safe mode. вобщем надо еще думать... жаль что у меня нет таких PCI-LPT... кстати, попробуйте найти Ваш адаптер вот так: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xxxxx\Enum где xxxxx - это например MF(MultifunctionDevice) или что то в этом роде... там и должно дальше быть: '0' MF\PCI#VEN_9710&DEV_9835&SUBSYS_00121000&REV_01\5&c47b19f&0&08F0#Child0002
|
|
|
|
Сообщений в этой теме
Алекс-666 Как перевести AVREAL на работу с USB? Feb 1 2008, 07:54 haker_fox Цитата(Алекс-666 @ Feb 1 2008, 15:54... Feb 1 2008, 08:08 ReAl Выгнать автора AVREAL в отпуск на месяц с запретом... Feb 1 2008, 08:15 rx3apf Цитата(ReAl @ Feb 1 2008, 11:15) Выгнать ... Feb 2 2008, 11:47  Сергей Борщ Цитата(rx3apf @ Feb 2 2008, 13:47) Но есл... Feb 2 2008, 13:03 hd44780 Переходите на что-то COM-порт ориентированное.
У ... Feb 1 2008, 08:24 ReAl Цитата(hd44780 @ Feb 1 2008, 10:24) У мен... Feb 1 2008, 08:28  zltigo Цитата(ReAl @ Feb 1 2008, 11:28) Там указ... Feb 1 2008, 09:28 hd44780 Да, адреса показывает, не вопрос, но, например, вс... Feb 1 2008, 09:47 Igor26 Цитата(hd44780 @ Feb 1 2008, 12:47) Да, а... Feb 1 2008, 12:10 vvs5 Цитата(hd44780 @ Feb 1 2008, 12:47) Да, а... Feb 5 2008, 08:02 ReAl Цитата(hd44780 @ Feb 1 2008, 11:47) Да, а... Feb 5 2008, 20:19  zltigo Цитата(ReAl @ Feb 5 2008, 23:19) Универса... Feb 5 2008, 21:17  rezident Цитата(ReAl @ Feb 6 2008, 01:19) Универса... Feb 5 2008, 22:39   ReAl Цитата(rezident @ Feb 6 2008, 00:39) В пр... Feb 6 2008, 08:03    bodja74 Цитата(ReAl @ Feb 6 2008, 12:03) Люди как... Feb 6 2008, 10:42     ReAl Цитата(bodja74 @ Feb 6 2008, 12:42) Все д... Feb 6 2008, 12:38 ReAl На 245-ой я пробовал как только она у меня в руках... Feb 3 2008, 07:07 Алекс-666 Господа, правильно ли я понял, что через USB я не ... Feb 4 2008, 07:50 Lepeksiy С помощью avreal через usb нельзя. Надеюсь только ... Feb 4 2008, 07:58 GDI ЦитатаКак с наименьшими потерями реализовать проши... Feb 4 2008, 08:02 mdmitry С USB и avrdude не все радужно, в ветке http://ele... Feb 4 2008, 09:12 GDI ЦитатаС USB и avrdude не все радужно, в ветке http... Feb 4 2008, 09:21 vesago Слепить на m8 клон аврисп. Feb 6 2008, 07:02 forever failure Тов. ReAl, а в *никсовых версиях Вашего программа... Feb 6 2008, 08:34 ReAl Цитата(forever failure @ Feb 6 2008, 10:3... Feb 6 2008, 09:20 bodja74 А зачем вам базовый адресс ?
Я допустим по сей ден... Feb 6 2008, 17:23 ReAl Цитата(bodja74 @ Feb 6 2008, 19:23) А зач... Feb 6 2008, 20:55  singlskv Цитата(ReAl @ Feb 6 2008, 23:55) Винда ви... Feb 8 2008, 01:18   VslavX Для определения базового адреса порта по его номер... Feb 8 2008, 07:56     singlskv Цитата(bodja74 @ Feb 8 2008, 20:37) От 25... Feb 8 2008, 17:52      bodja74 Цитата(singlskv @ Feb 8 2008, 21:52) Read... Feb 9 2008, 20:51       singlskv Цитата(bodja74 @ Feb 9 2008, 23:51) У мен... Feb 9 2008, 21:41        bodja74 Цитата(singlskv @ Feb 10 2008, 01:41) Не,... Feb 10 2008, 15:26         singlskv Цитата(bodja74 @ Feb 10 2008, 18:26) Ок. ... Feb 10 2008, 16:03          bodja74 Цитата(singlskv @ Feb 10 2008, 20:03) А R... Feb 10 2008, 17:53 ReAl Цитата(bodja74 @ Feb 7 2008, 19:30) ReAl
... Feb 7 2008, 21:14  zltigo Цитата(ReAl @ Feb 8 2008, 00:06) Вы одним... Feb 7 2008, 21:19 gluckmaker А удавалось ли кому-нибудь заставить AVReal работа... Mar 29 2008, 23:28 gluckmaker Посмотрел. Оказался дохлый сам байтбластер. Видимо... Mar 30 2008, 16:08 Mik174 Такое ощущение, что нужно внести ясность, что собс... Mar 30 2008, 19:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|