Мегаустройство... Реализация

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

Не - в мегадеве 2 реализации SPI - аппаратная и программная. В чем суть - аппаратной даешь байт и принимаешь ответный байт. А программная - шевелишь битами сам. Ну - это рудимент многолетней давности - шевелить с паралельного порта ногами и этим самым что то передавать и принимать.

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

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

Просто обрадовался легкости программного SPI. А не тут то было.
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

:idea: Я тут подумал, а может на нем можно реализовать и Mass Storge, SPI есть, а софтверно на компе как нить реализовать, как думаете?
Даташит - библия моя...
Изображение
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

Вы имеете в виду чтобы на интерфейс HW SPI на мегадев повесить флешку. А на хосте запустить эмулятор SCSI MassStoragа

Если так, то это гениальный сетап! Картридер. Сильно. Но не забывайте - мегабайт с него не выжать. Так - по файлам посмотреть походить. Реализуемо.
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Да скорость то и не главное :))
Даташит - библия моя...
Изображение
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

После изрядного ядерного программинга tty устройств в голову пришло суперское решение всех проблем.

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

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

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

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

У нас все будет сетевым. И будет работать везде. Кстати я думаю что параллельно созданию файлов создавать удп сокеты. Можно будет обращаться с других машин. Да хоть с интернета.
:idea:
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

А не будет у народа запары с созданием UDP серверов. Вообще поясните что это такое и с чем это едят. :shock: И не вызовет это какую либо опасность, все таки сервер, например из того же Инета? :o
Даташит - библия моя...
Изображение
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

О !. У меня по сети заработал протокол AVR910 =)
AVRStudio думает что все хорошо :wink:

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

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

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

Хоть через Wi-Fi.
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

А допустим CodeVision можно заставить работать по такой системе, и как вообще сказать что по такому то порту весит то-то. Я пока в замешательстве.
Даташит - библия моя...
Изображение
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

Помимо UDP вообще то еще надо сделать TCP.

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

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

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

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

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

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

При этом стоимость любого варианта - ну совсем минимум.
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Однозначно пока для себя выбираю 2-ой, только что-то меня все равно пугает в этих UDP, TCP и прочих сетевых делах.
Даташит - библия моя...
Изображение
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

А! Ну и конечно полноценную платформу JTAGICE склонировать. Если коты поделятся прошивками на айс 2 - то и ее.
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

Не пугайтесь. :)

Типовые конфиги для запусков напишем. Это то как раз примитивно.
Главное - у меня весь виндовс думает что мегадев это ком порт. А значит всех потенциальных пользователей мы уже имеем. В хорошем смысле.
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

То есть если я Вас правильно понял, мы подключаем к компу, на котором стоит винда, MegaDev запускаем на нем UDP сервер, и она думет что у нас девайс это ком порт? Или как?
Даташит - библия моя...
Изображение
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Ср апр 22, 2009 11:07:00

Сообщение _PM_ »

Не.. винду на железе запускать нельзя. Это принципиально.

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

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

Я вот счас отлаживаю 910 протокол. На предмет эмуляции. АВР студия пинается, пытается прочесь совпадающие участки памяти с разных смешений и ловит меня чтоб я не подсунул ей лажу. Но.. виртуализацию не остановить.
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение 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 стоит.
Даташит - библия моя...
Изображение
Контактная информация:
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение 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, исходники бы посмотреть, ну и убедитесь в наличии файлов. Остальные траблы надо думать из-за того что хидеры не найдены.
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

smac писал(а):
VenomXP писал(а):Такая трабла. Спасайте. Не компилит и все тут. Я так понимаю я что то не то делаю, Ubuntu 9.04. gcc-avr стоит.
Компилятор не находит avr/io.h и avr/pgmspace.h, исходники бы посмотреть, ну и убедитесь в наличии файлов. Остальные траблы надо думать из-за того что хидеры не найдены.
Да нет проблем, пожалуйста.
Вложения
IO.rar
(93.56 КБ) 212 скачиваний
Даташит - библия моя...
Изображение
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Вот еще пишу драйвер для устройства, пока как HID-I/O. Проверьте плиз.
Вложения
IO-drv.c
(1.54 КБ) 455 скачиваний
Даташит - библия моя...
Изображение
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Чет дровишки ничерта не компилируются :cry: Помогите. GCC стоит, пути все указаны, выдает кучу ошибок.
Даташит - библия моя...
Изображение
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 425
Зарегистрирован: Вт фев 03, 2009 05:16:25
Откуда: Kiev

Сообщение xDevs »

Задам глупый вопрос - а зачем это все, при существовании FTDI FT2232 и подобных чипов , где все _уже сделано_ причем работает гораздо быстрее.
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»