ATtiny2313 + Sony PlayStation

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

Сообщение VenomXP »

Доброго времени суток всем котам... Встретил статеюку про прикошачивания Джоя от SPS к USB... Собрал - не заработало... Загуглил... Переделал - заработало... Но это не суть...

Все дело в том что у ATmega'и очень много ног лишних тогда остается да и стоит она скажем для студента не дорого но жалко денюшку на ветер бросать... Возникла идея... Имеется ATtiny2313 что если в прошивке переделать библиотеки (mega8.h и прочие связанные с этим МК еси таковые имеются) на соответствующие библиотеки для tiny2313 ну там еще скорректировать назначения портов и тд и тп... Как бы и стоит дешевше и портов поменьше и плата меньше вобщем экономия только в плюсе...

Возникает вопрос... Возможна ли такая замена... Не произойдет ли переполнение памяти (FLASH) не будеь ли каких багов вобщем?
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 411
Зарегистрирован: Вс авг 10, 2008 19:35:49
Откуда: Евпатория

Сообщение s_black »

Возникает вопрос... Возможна ли такая замена... Не произойдет ли переполнение памяти (FLASH) не будеь ли каких багов вобщем?[/quote]

Если памяти ATtiny2313 хватит, то, конечно возможна. А не будет ли в программе багов, зависит от того, насколько внимательно Вы её (программу) перепишите. Только нужно ли это? Разница в цене указаных МК не настолько большая, а вот возможность дальшейшей модернизации уст-ва может пострадать. Удачи!
Контактная информация:
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

А зачем модернизировать.... Все и так уже сделанно просто хочеться пересадить на другой контроллер...

Пы.Сы.

Народ еси кто работал с WinAVR помогите...
Контактная информация:
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

VenomXP писал(а):Доброго времени суток всем котам... Встретил статеюку про прикошачивания Джоя от SPS к USB... Собрал - не заработало... Загуглил... Переделал - заработало... Но это не суть...

Все дело в том что у ATmega'и очень много ног лишних тогда остается да и стоит она скажем для студента не дорого но жалко денюшку на ветер бросать... Возникла идея... Имеется ATtiny2313 что если в прошивке переделать библиотеки (mega8.h и прочие связанные с этим МК еси таковые имеются) на соответствующие библиотеки для tiny2313 ну там еще скорректировать назначения портов и тд и тп... Как бы и стоит дешевше и портов поменьше и плата меньше вобщем экономия только в плюсе...

Возникает вопрос... Возможна ли такая замена... Не произойдет ли переполнение памяти (FLASH) не будеь ли каких багов вобщем?
Вы бы хоть ссылку на статью выложили. Учтите, что в тини2313 нет АЦП, поэтому если с джойстика аналоговые сигналы какие-либо идут, то переделать программу под тини будет проблематично.
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Сообщения: 247
Зарегистрирован: Сб дек 15, 2007 23:00:54
Откуда: Moscow

Сообщение TechMike »

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

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

Сообщение VenomXP »

Исходники... Схема... Да не проблема :)

Пы.Сы.

Я думаю из кода нужно убрать 2 джойстик... Лишняя память как никак...
Вложения
USB - МК.JPG
Схема подключения ATmega8 к USB
(172.46 КБ) 819 скачиваний
МК - Joy.JPG
Схема подключения ATmega8 к джойстику
(123.75 КБ) 906 скачиваний
PSX_USB.rar
Собственно прошивка(для одного и для 2 джойев) и иходники
(46.65 КБ) 367 скачиваний
USB - PSX.gif
Примерная схема которую хотелось бы видеть и использовать
(20.06 КБ) 784 скачивания
Контактная информация:
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Вот, посидел подкорректировал прошивочку для одного джоя, а в частности изменил 3 файла:

common.h

in_psx.c

out_psx.c

Схема осталась пока что оригинальная...

Проверьте кто работает с WinAVR плиз...
Вложения
PSX_USB_2.rar
(36.85 КБ) 282 скачивания
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

Выше написали же, что на тини нет АЦП, на Меге8 есть. Как раз порты PC0-PC5 на меге8 имеют второе свойство- это АЦП. Соответственно если они пользуются в этом режиме, ничего на тини ты не получишь...
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Покажите мне пожалста где в исходном коде вообще включаеться АЦП оно там в принципе не нужно так как джойстик вообще робит по SPI интерфейсу

Ссылка на статью на радиокоте (прошивка и схема НЕ РАБОЧИЕ) с описанием протокола работы джойстика

http://radiokot.ru/lab/controller/17/
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

Особо не вникал в тему, но в статье упоминается два вида джойстиков, 1) цифровой и 2) с аналоговыми манипуляторами... если просто цифровой, то без проблем с мк состыковать, если добавляются аналоговые ман.- то АЦП пригодиться... Опять же, если собирать переходник, то АЦП не пригодиться наверное, мк в самом джойстике скорее всего будет иметь АЦП и выдавать уже цифру на выходе...
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Дык там так и есть... Джой уже выдает цифровой сигнал по байтам а нам его остается только преобразовать :)

Вы на исходники то хоть глянте особенно вот на эти 3 файла

common.h

in_psx.c

out_psx.c

В них то вся суть и вы сразу поймете что к чему...

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

Сообщение VenomXP »

Помогите разобраца что значит эта строка

Код: Выделить всё

#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH    110  /*Изменено total length of report descriptor */
/* Define this to the length of the HID report descriptor, if you implement
 * an HID device. Otherwise don't define it or define it to 0.
 */
Везде пишут почему то по разному... Что ето значит... В статье которую писал Spider там стоит

Код: Выделить всё

#if PSX > 1
#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH    55  /*Изменено total length of report descriptor */
#else
#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH    51  /*Изменено total length of report descriptor */
#endif
/* Define this to the length of the HID report descriptor, if you implement
 * an HID device. Otherwise don't define it or define it to 0.
 */
Обьясните плиз...
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Уф... Разобрался... :)

Вот в чем дело

Код: Выделить всё

//HID дескриптор репорта
PROGMEM const char usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] =
{
 
//Джойстик-1
  0x05, 0x01,       //     USAGE_PAGE (Generic Desktop)
  0x09, 0x04,       //     USAGE (Joystick)
  0xa1, 0x01,       //     COLLECTION (Application)
  0x09, 0x01,       //     USAGE (Pointer)
  0xa1, 0x00,       //     COLLECTION (Physical)
  0x85, 0x01,       //     REPORT_ID (1)
  0x09, 0x30,       //     USAGE (X)
  0x09, 0x31,       //     USAGE (Y)
  0x09, 0x32,       //     USAGE (Z)
  0x09, 0x33,       //     USAGE (Rx)
  0x15, 0x00,       //     LOGICAL_MINIMUM (0)
  0x26, 0xff, 0x00, //     LOGICAL_MAXIMUM (255)
  0x75, 0x08,       //     REPORT_SIZE (8)
  0x95, 0x04,       //     REPORT_COUNT (4)
  0x81, 0x02,       //     INPUT (Data,Var,Abs)
  0x15, 0x00,       //     LOGICAL_MINIMUM (0)
  0x25, 0x01,       //     LOGICAL_MAXIMUM (1)
  0x95, 0x0c,       //     REPORT_COUNT (12)
  0x75, 0x01,       //     REPORT_SIZE (1)
  0x05, 0x09,       //     USAGE_PAGE (Button)
  0x19, 0x01,       //     USAGE_MINIMUM (Button 1)
  0x29, 0x0c,       //     USAGE_MAXIMUM (Button 12)
  0x81, 0x02,       //     INPUT (Data,Var,Abs)
  0x75, 0x01,       //     REPORT_SIZE (1)
  0x95, 0x04,       //     REPORT_COUNT (4)
  0x81, 0x01,       //     INPUT (Constant) - 4 bit padding
  0xc0,                //     END_COLLECTION
  0xc0,                //     END_COLLECTION			  
};
Поетому у меня мдесь должно быть так

Код: Выделить всё

#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH    55  /*Изменено total length of report descriptor */ 
Так как еси посчитать количество элементов в массиве usbHidReportDescriptor их как раз получаеться 55 :)
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Придется конечно поправить название регистров и т.д.(открывается два даташита и вперед)...
Не могли бы вы про ето поподробнее сказать... Я просто не слишком часто сталкивался с регистрами и сути не понимаю :shock:
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Разобрался с регистрами...

Тока вот проблема код не компилируеться... :cry: :cry: :cry:

Вот файл проверьте ктонить (Пока прошивка для ATmega8)

Плиииииз... :cry:

Вот такую ошибку выдает

Код: Выделить всё

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 4.2.2 (WinAVR 20071221)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make.exe: *** No rule to make target `main_psx.elf', needed by `elf'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:02
Я уже запарился... Че никто не поможет... :cry:
Вложения
PSX_USB_2.rar
(36.84 КБ) 254 скачивания
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Проблема решилась так

Было вобщем сначало вот как

Код: Выделить всё

# List C source files here. (C dependencies are automatically generated.)
SRC = usbdrv.c in_psx.c out_psx.c oddebug.c main_psx.c 
Потом убрал из списка oddebug.c так же как и у Spider'a... стало вот как

Код: Выделить всё

# List C source files here. (C dependencies are automatically generated.)
SRC = usbdrv.c in_psx.c out_psx.c main_psx.c  
Все скомпилировалось... Кто нибудь здесь знает почему так?
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Ну что мне никто не помог за что вам ОГРОМНОЕ спасибо :( проблема решилась опять сама собой...

Все же мне ктонить расскажет че нить про регистры?
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

:) :) :) Ура... Заработало... У Spider'a в коде много ошибок... Вопрос к модераторам можно сделать свою статью?

Вот выкладываю исходный код для этого девайса... Работает на все 100... Схема пока что на ATmega8 выше выкладывал... Кому надо готовую скомпилированную прошивку или фьюзы обращайтесь :)

Пы.Сы.: Для ATtiny2313 код не будет готов пока я с этими регистрами не разберусь :)
Вложения
PSX_USB_2.rar
(37.54 КБ) 286 скачиваний
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09

Сообщение VenomXP »

Ну кто нить отпишитесь... У всех работает кто скачал?
Даташит - библия моя...
Изображение
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 391
Зарегистрирован: Пт авг 31, 2007 19:58:52
Откуда: Украина, Сум обл., г. КоНоТоП

Сообщение kamikadze »

Вы говорите что у спайдера в коде много ошибок, но код то работоспособен, наверное все же ошибки не критичны, да и откуда такие утверждения? Факты прошу
Причем есть люди у кого даное чудо работает.
1) Аналоговый джойстик не работает
2) Выбрали ли PSX 1 или 2
Опять же факты прошу
Бригада дежурных телепатов ответит на ваши вопросы
Закрыто

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