Страница 1 из 3
ATtiny2313 + Sony PlayStation
Добавлено: Пн дек 15, 2008 23:12:38
VenomXP
Доброго времени суток всем котам... Встретил статеюку про прикошачивания Джоя от SPS к USB... Собрал - не заработало... Загуглил... Переделал - заработало... Но это не суть...
Все дело в том что у ATmega'и очень много ног лишних тогда остается да и стоит она скажем для студента не дорого но жалко денюшку на ветер бросать... Возникла идея... Имеется ATtiny2313 что если в прошивке переделать библиотеки (mega8.h и прочие связанные с этим МК еси таковые имеются) на соответствующие библиотеки для tiny2313 ну там еще скорректировать назначения портов и тд и тп... Как бы и стоит дешевше и портов поменьше и плата меньше вобщем экономия только в плюсе...
Возникает вопрос... Возможна ли такая замена... Не произойдет ли переполнение памяти (FLASH) не будеь ли каких багов вобщем?
Re: ATtiny2313 + Sony PlayStation
Добавлено: Пн дек 15, 2008 23:30:15
s_black
Возникает вопрос... Возможна ли такая замена... Не произойдет ли переполнение памяти (FLASH) не будеь ли каких багов вобщем?[/quote]
Если памяти ATtiny2313 хватит, то, конечно возможна. А не будет ли в программе багов, зависит от того, насколько внимательно Вы её (программу) перепишите. Только нужно ли это? Разница в цене указаных МК не настолько большая, а вот возможность дальшейшей модернизации уст-ва может пострадать. Удачи!
Добавлено: Вт дек 16, 2008 16:53:15
VenomXP
А зачем модернизировать.... Все и так уже сделанно просто хочеться пересадить на другой контроллер...
Пы.Сы.
Народ еси кто работал с WinAVR помогите...
Re: ATtiny2313 + Sony PlayStation
Добавлено: Вт дек 16, 2008 17:22:32
smac
VenomXP писал(а):Доброго времени суток всем котам... Встретил статеюку про прикошачивания Джоя от SPS к USB... Собрал - не заработало... Загуглил... Переделал - заработало... Но это не суть...
Все дело в том что у ATmega'и очень много ног лишних тогда остается да и стоит она скажем для студента не дорого но жалко денюшку на ветер бросать... Возникла идея... Имеется ATtiny2313 что если в прошивке переделать библиотеки (mega8.h и прочие связанные с этим МК еси таковые имеются) на соответствующие библиотеки для tiny2313 ну там еще скорректировать назначения портов и тд и тп... Как бы и стоит дешевше и портов поменьше и плата меньше вобщем экономия только в плюсе...
Возникает вопрос... Возможна ли такая замена... Не произойдет ли переполнение памяти (FLASH) не будеь ли каких багов вобщем?
Вы бы хоть ссылку на статью выложили. Учтите, что в тини2313 нет АЦП, поэтому если с джойстика аналоговые сигналы какие-либо идут, то переделать программу под тини будет проблематично.
Добавлено: Вт дек 16, 2008 17:46:52
TechMike
Сначало нужно попробовать перекомпилить прошивку под tiny2113, если памяти хватит, то большая вероятность, что можно будет перетащить проект на нее.
Придется конечно поправить название регистров и т.д.(открывается два даташита и вперед)...
Исходник бы помог.....
Добавлено: Вт дек 16, 2008 20:49:59
VenomXP
Исходники... Схема... Да не проблема
Пы.Сы.
Я думаю из кода нужно убрать 2 джойстик... Лишняя память как никак...
Добавлено: Вт дек 16, 2008 23:15:21
VenomXP
Вот, посидел подкорректировал прошивочку для одного джоя, а в частности изменил 3 файла:
common.h
in_psx.c
out_psx.c
Схема осталась пока что оригинальная...
Проверьте кто работает с WinAVR плиз...
Добавлено: Ср дек 17, 2008 14:44:51
Alexeus
Выше написали же, что на тини нет АЦП, на Меге8 есть. Как раз порты PC0-PC5 на меге8 имеют второе свойство- это АЦП. Соответственно если они пользуются в этом режиме, ничего на тини ты не получишь...
Добавлено: Ср дек 17, 2008 15:57:01
VenomXP
Покажите мне пожалста где в исходном коде вообще включаеться АЦП оно там в принципе не нужно так как джойстик вообще робит по SPI интерфейсу
Ссылка на статью на радиокоте (прошивка и схема НЕ РАБОЧИЕ) с описанием протокола работы джойстика
http://radiokot.ru/lab/controller/17/
Добавлено: Ср дек 17, 2008 16:52:18
Alexeus
Особо не вникал в тему, но в статье упоминается два вида джойстиков, 1) цифровой и 2) с аналоговыми манипуляторами... если просто цифровой, то без проблем с мк состыковать, если добавляются аналоговые ман.- то АЦП пригодиться... Опять же, если собирать переходник, то АЦП не пригодиться наверное, мк в самом джойстике скорее всего будет иметь АЦП и выдавать уже цифру на выходе...
Добавлено: Ср дек 17, 2008 17:16:23
VenomXP
Дык там так и есть... Джой уже выдает цифровой сигнал по байтам а нам его остается только преобразовать
Вы на исходники то хоть глянте особенно вот на эти 3 файла
common.h
in_psx.c
out_psx.c
В них то вся суть и вы сразу поймете что к чему...
Они то как раз и занимаються чтением и обработки информации от джоя...
Добавлено: Ср дек 17, 2008 21:23:40
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.
*/
Обьясните плиз...
Добавлено: Ср дек 17, 2008 22:02:13
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

Добавлено: Ср дек 17, 2008 22:04:06
VenomXP
Придется конечно поправить название регистров и т.д.(открывается два даташита и вперед)...
Не могли бы вы про ето поподробнее сказать... Я просто не слишком часто сталкивался с регистрами и сути не понимаю

Добавлено: Чт дек 18, 2008 14:59:43
VenomXP
Разобрался с регистрами...
Тока вот проблема код не компилируеться...
Вот файл проверьте ктонить (Пока прошивка для ATmega8)
Плиииииз...
Вот такую ошибку выдает
Код: Выделить всё
> "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
Я уже запарился... Че никто не поможет...

Добавлено: Чт дек 18, 2008 17:00:38
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
Все скомпилировалось... Кто нибудь здесь знает почему так?
Добавлено: Чт дек 18, 2008 20:39:23
VenomXP
Ну что мне никто не помог за что вам ОГРОМНОЕ спасибо

проблема решилась опять сама собой...
Все же мне ктонить расскажет че нить про регистры?
Добавлено: Чт дек 18, 2008 22:16:57
VenomXP

Ура... Заработало...
У Spider'a в коде много ошибок... Вопрос к модераторам можно сделать свою статью?
Вот выкладываю исходный код для этого девайса...
Работает на все 100... Схема пока что на ATmega8 выше выкладывал... Кому надо готовую скомпилированную прошивку или фьюзы обращайтесь
Пы.Сы.: Для ATtiny2313 код не будет готов пока я с этими регистрами не разберусь

Добавлено: Сб дек 20, 2008 21:52:10
VenomXP
Ну кто нить отпишитесь... У всех работает кто скачал?
Добавлено: Сб дек 20, 2008 22:02:57
kamikadze
Вы говорите что у спайдера в коде много ошибок, но код то работоспособен, наверное все же ошибки не критичны, да и откуда такие утверждения? Факты прошу
Причем есть люди у кого даное чудо работает.
1) Аналоговый джойстик не работает
2) Выбрали ли PSX 1 или 2
Опять же факты прошу