Страница 2 из 3

Добавлено: Пт май 15, 2009 14:27:57
_PM_
Не - в мегадеве 2 реализации SPI - аппаратная и программная. В чем суть - аппаратной даешь байт и принимаешь ответный байт. А программная - шевелишь битами сам. Ну - это рудимент многолетней давности - шевелить с паралельного порта ногами и этим самым что то передавать и принимать.

А полноценный SPI (именно SPI) аппаратный там есть! Хоть и читает пишет блоками по несколько байт, но этого с лихвой хватит на ISP. Т.к. там применяются посылки по 32 бита. Только придется с модуль ядра запихать обработчег протокола AVR910 (номер по памяти). Он будет принимать команды с якобы ком порта преобразовывать в 32разрядные посылки ISP и передавать аппаратной шине SPI.

У меня это уже реализовано, только на жаве. Надо портировать.

Просто обрадовался легкости программного SPI. А не тут то было.

Добавлено: Пт май 15, 2009 21:04:41
VenomXP
:idea: Я тут подумал, а может на нем можно реализовать и Mass Storge, SPI есть, а софтверно на компе как нить реализовать, как думаете?

Добавлено: Пт май 15, 2009 21:26:40
_PM_
Вы имеете в виду чтобы на интерфейс HW SPI на мегадев повесить флешку. А на хосте запустить эмулятор SCSI MassStoragа

Если так, то это гениальный сетап! Картридер. Сильно. Но не забывайте - мегабайт с него не выжать. Так - по файлам посмотреть походить. Реализуемо.

Добавлено: Сб май 16, 2009 11:16:50
VenomXP
Да скорость то и не главное :))

Добавлено: Сб май 16, 2009 18:27:53
_PM_
После изрядного ядерного программинга tty устройств в голову пришло суперское решение всех проблем.

Нет - все продолжается. :lol: Просто я решил НЕ заморачиваться с эмуляцией COM чтобы эмулировать тот же AVRISP. Вместо этого драйвер модуля открывает UDP сервер, пакеты с которого обрабатываются и отсылаются обратно.

Что это даст. Во первых мы отрываемся от концепции проводов. Мегадев может быть один - а компов по сетке с ним работающих много. Во вторых никакой возни с битами, пропускной способностью и прочим. В третьих и самых интересных - программатор AVRDUDE может работать с сетевым устройством! А также эмулятор QEMU(KVM) тоже ЭМУЛИРУЕТ ком порт в винде (аппаратный!!) через сервер UDP.

Только что попробовал - запустил сервачек UDP и настроил куему с виндой на него. Запустил в куеме АВР студию и она стала общаться с моим серверком.

Это просто прорыв. Долой ком порты! Мутотень :wink:

У нас все будет сетевым. И будет работать везде. Кстати я думаю что параллельно созданию файлов создавать удп сокеты. Можно будет обращаться с других машин. Да хоть с интернета.
:idea:

Добавлено: Сб май 16, 2009 19:18:16
VenomXP
А не будет у народа запары с созданием UDP серверов. Вообще поясните что это такое и с чем это едят. :shock: И не вызовет это какую либо опасность, все таки сервер, например из того же Инета? :o

Добавлено: Сб май 16, 2009 19:53:20
_PM_
О !. У меня по сети заработал протокол AVR910 =)
AVRStudio думает что все хорошо :wink:

UDP сервер это не комп :))) это программная абстракция. Просто некая дырка с номером. Можете понимать как почтовый ящег. Ящеги с номерами. Как в многоэтажках.

Вот. Ящиков может быть много, 65535. Но первые 1024 козырные и система просто так вам их не даст да и не нужно. Теперь дальше. Ящик может принимать сообщение. И его обработать. И все. В ответ он шлет другое сообщение в тот ящег от которого оно пришло (первое). Таким образом обмен сообщениями заменят собой обмен байтами через ком порт. Удобнее чем ком порт? Не правда ли?

Запустил в домашней сетке мегадев на порту 4555 а на ноуте запустил АВРДУДКУ и говориш ей - ком порт у меня там - на 4555 порту. И оно работает! =)

Хоть через Wi-Fi.

Добавлено: Сб май 16, 2009 20:00:48
VenomXP
А допустим CodeVision можно заставить работать по такой системе, и как вообще сказать что по такому то порту весит то-то. Я пока в замешательстве.

Добавлено: Сб май 16, 2009 20:21:39
_PM_
Помимо UDP вообще то еще надо сделать TCP.

Насчет CodeVision я просто не знаю. Это надо тестить. Если ПО под виндопс - путь простой и однозначный - запускать его надо в эмуляторе - эмуляторы с удовольствием берут сетевой поток и представляют в виде ком порта. Точно знаю qemu + vmvare могут. А следовательно все клоны на их основе. Т.О. любое виндовое ПО и не узнает ничего. Для него оно - ком порт.

Теперь о ПО на линуксе. Мощнейший программатор AVRDUDE, шьет через что угодно. Тоже понимает редирект по протоколу TCP. Для всякой мелочи оставшейся можно таки напрячься и сбабахать эмулятор tty или pty (это вроде как реальный ком порт и виртуальный). А вообщето помнится это есть такой программный пакет - забыл как называется. Он в общем сотворяет этот комп порт в системе а трафик берет с сети. Надо его тоже потестить.

В общем штука получается нешуточная. Масштабная фигня. Вырастает в какуюто монстроидальную платформу. Однозначно склоняюсь к мысли, что нужно делать 3 варианта аппаратуры.

*) миниатюрный и тупой мега8. С небольшим кругом задач. Порядка 20% возможных сетапов. Это ограничения самого камня и софт усб.

*) средний на меге16 или 32. Круг задач больше. т.к. периферии больше. Уже 50%

*) полный на... внимание... двух чипах [16..2560] и одном конверторе USB -> UART. Этот конфиг позволит делать немыслимые сетапы. Т.к. один чип может шить другой на предмет задач, от которых требуется либо быстрый обмен либо быстрая реакция. Например снифферы, системы захвата данных и прочая.

При этом стоимость любого варианта - ну совсем минимум.

Добавлено: Сб май 16, 2009 20:26:59
VenomXP
Однозначно пока для себя выбираю 2-ой, только что-то меня все равно пугает в этих UDP, TCP и прочих сетевых делах.

Добавлено: Сб май 16, 2009 20:27:09
_PM_
А! Ну и конечно полноценную платформу JTAGICE склонировать. Если коты поделятся прошивками на айс 2 - то и ее.

Добавлено: Сб май 16, 2009 20:29:02
_PM_
Не пугайтесь. :)

Типовые конфиги для запусков напишем. Это то как раз примитивно.
Главное - у меня весь виндовс думает что мегадев это ком порт. А значит всех потенциальных пользователей мы уже имеем. В хорошем смысле.

Добавлено: Сб май 16, 2009 20:36:04
VenomXP
То есть если я Вас правильно понял, мы подключаем к компу, на котором стоит винда, MegaDev запускаем на нем UDP сервер, и она думет что у нас девайс это ком порт? Или как?

Добавлено: Сб май 16, 2009 20:49:18
_PM_
Не.. винду на железе запускать нельзя. Это принципиально.

Винду в эмулятор. Оттуда она видит ком порт. И все ок.

А ваша конфигурация - живая винда на отдельном компе заработает если найти то самое ПО которое из траффика делает реальный ком порт - то заработает. Почему нет.

Я вот счас отлаживаю 910 протокол. На предмет эмуляции. АВР студия пинается, пытается прочесь совпадающие участки памяти с разных смешений и ловит меня чтоб я не подсунул ей лажу. Но.. виртуализацию не остановить.

Добавлено: Чт май 21, 2009 16:41:34
VenomXP
Такая трабла. Спасайте. Не компилит и все тут.
tim@tim-desktop:~$ cd IO
tim@tim-desktop:~/IO$ make main.hex
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=attiny2313 -DF_CPU=20000000 -DDEBUG_LEVEL=0 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
usbdrv/usbdrv.c:14:23: error: avr/io.h: No such file or directory
usbdrv/usbdrv.c:15:29: error: avr/pgmspace.h: No such file or directory
In file included from usbdrv/usbdrv.c:17:
usbdrv/usbdrv.h:461: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.h:467: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.h:473: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.h:479: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.h:485: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
usbdrv/usbdrv.h:491: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
usbdrv/usbdrv.h:497: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
usbdrv/usbdrv.c:71: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.c:81: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
usbdrv/usbdrv.c:90: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
usbdrv/usbdrv.c:112: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.c:143: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘char’
usbdrv/usbdrv.c: In function ‘usbDriverDescriptor’:
usbdrv/usbdrv.c:325: error: ‘usbDescriptorDevice’ undeclared (first use in this function)
usbdrv/usbdrv.c:325: error: (Each undeclared identifier is reported only once
usbdrv/usbdrv.c:325: error: for each function it appears in.)
usbdrv/usbdrv.c:327: error: ‘usbDescriptorConfiguration’ undeclared (first use in this function)
usbdrv/usbdrv.c:336: error: ‘usbDescriptorString0’ undeclared (first use in this function)
usbdrv/usbdrv.c:338: error: ‘usbDescriptorStringVendor’ undeclared (first use in this function)
usbdrv/usbdrv.c:340: error: ‘usbDescriptorStringDevice’ undeclared (first use in this function)
usbdrv/usbdrv.c:342: error: ‘usbDescriptorStringSerialNumber’ undeclared (first use in this function)
usbdrv/usbdrv.c:353: error: ‘usbDescriptorHidReport’ undeclared (first use in this function)
usbdrv/usbdrv.c: In function ‘usbDeviceRead’:
usbdrv/usbdrv.c:507: warning: implicit declaration of function ‘pgm_read_byte’
usbdrv/usbdrv.c: In function ‘usbPoll’:
usbdrv/usbdrv.c:595: error: ‘PIND’ undeclared (first use in this function)
usbdrv/usbdrv.c: In function ‘usbInit’:
usbdrv/usbdrv.c:613: error: ‘MCUCR’ undeclared (first use in this function)
usbdrv/usbdrv.c:613: error: ‘ISC00’ undeclared (first use in this function)
usbdrv/usbdrv.c:613: error: ‘ISC01’ undeclared (first use in this function)
usbdrv/usbdrv.c:618: error: ‘GICR’ undeclared (first use in this function)
usbdrv/usbdrv.c:618: error: ‘INT0’ undeclared (first use in this function)
make: *** [usbdrv/usbdrv.o] Ошибка 1
tim@tim-desktop:~/IO$
Я так понимаю я что то не то делаю, Ubuntu 9.04. gcc-avr стоит.

Добавлено: Пт май 22, 2009 01:52:11
smac
VenomXP писал(а):Такая трабла. Спасайте. Не компилит и все тут.
tim@tim-desktop:~$ cd IO
tim@tim-desktop:~/IO$ make main.hex
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=attiny2313 -DF_CPU=20000000 -DDEBUG_LEVEL=0 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
usbdrv/usbdrv.c:14:23: error: avr/io.h: No such file or directory
usbdrv/usbdrv.c:15:29: error: avr/pgmspace.h: No such file or directory
...
Я так понимаю я что то не то делаю, Ubuntu 9.04. gcc-avr стоит.
Компилятор не находит avr/io.h и avr/pgmspace.h, исходники бы посмотреть, ну и убедитесь в наличии файлов. Остальные траблы надо думать из-за того что хидеры не найдены.

Добавлено: Пт май 22, 2009 06:26:14
VenomXP
smac писал(а):
VenomXP писал(а):Такая трабла. Спасайте. Не компилит и все тут. Я так понимаю я что то не то делаю, Ubuntu 9.04. gcc-avr стоит.
Компилятор не находит avr/io.h и avr/pgmspace.h, исходники бы посмотреть, ну и убедитесь в наличии файлов. Остальные траблы надо думать из-за того что хидеры не найдены.
Да нет проблем, пожалуйста.

Добавлено: Пт май 22, 2009 12:07:49
VenomXP
Вот еще пишу драйвер для устройства, пока как HID-I/O. Проверьте плиз.

Добавлено: Сб май 23, 2009 21:58:00
VenomXP
Чет дровишки ничерта не компилируются :cry: Помогите. GCC стоит, пути все указаны, выдает кучу ошибок.

Добавлено: Пн май 25, 2009 18:08:42
xDevs
Задам глупый вопрос - а зачем это все, при существовании FTDI FT2232 и подобных чипов , где все _уже сделано_ причем работает гораздо быстрее.