IgorAVR2
Sep 5 2009, 03:07
Пытаюсь подключить джойстик от SONY Play Station к микроконтроллеру. В качестве источника информации использую вот эту статью:
http://radiokot.ru/lab/controller/17/Другой толковой информации в сети не нашёл.
И почему то джойстик ничего не хочет выдавать в ответ на свои команды, которые описаны в статье. Этот же джойстик нормально работает подключенный к LPT порту, как описано здесь:
http://www.sysman.ru/index.php?showtopic=5905&st=0&И этот же LPT по SPI в микроконтроллер выдаёт те же команды, которые описаны в статье. А джойстик молчит на свои запросы и свё.
Я уже и все линии посмотрел, и все режимы SPI испробовал и CS пробовал отрубать и не отрубать. А он гад молчит.
Кто знает в чём может быть подвох или где взять нормальную документацию и описание команд на джойстик???
dimka76
Sep 5 2009, 08:08
Цитата(IgorAVR2 @ Sep 5 2009, 07:07)

Пытаюсь подключить джойстик от SONY Play Station к микроконтроллеру. В качестве источника информации использую вот эту статью:
http://radiokot.ru/lab/controller/17/Кто знает в чём может быть подвох или где взять нормальную документацию и описание команд на джойстик???
Вы обратили внимание на сигнал ACK , который требует клока на линии CLK. Таким образом SPI получается 9-ти битным - 8 бит данных и 1 бит ACK. А у AVR SPI только 8 бит. Попробуйте использовать не аппаратный SPI, а реализовать его программно (ногодрыгом).
IgorAVR2
Sep 5 2009, 13:24
Цитата(dimka76 @ Sep 5 2009, 12:08)

Вы обратили внимание на сигнал ACK , который требует клока на линии CLK. Таким образом SPI получается 9-ти битным - 8 бит данных и 1 бит ACK. А у AVR SPI только 8 бит. Попробуйте использовать не аппаратный SPI, а реализовать его программно (ногодрыгом).
Спасибо за совет. Я на него обратил внимание и об этом думал, но не проверил, т.к. в связке комп-джойстик, которая работала на осцилографе мне показалось что 8 клоков, специально считал. Видимо общитался. Проверю сегодня и отпишусь.
Тут есть пример подключения с исходниками
http://vusb.wikidot.com/project:usbjoy
IgorAVR2
Sep 7 2009, 19:16
В итоге, потеряв почти 5 дней, испробовав все варианты, програмный SPI, аппаратный, все его режимы и т.д., от безисходности нашёл ещё один, оригинальный джойстик от PS2. И... о чюдо... он завелся сразу, как 5 дней мог бы заработать и другой. Всё дело было в джойстике. Но в этом у меня до последнего были сомнения, т.к. подключённый к компу через LPT, по сути по такому же протоколу, он работал нормально, о чём я и писал в самом начале.
Может кому пригодиться, заработал с аппаратным SPI в Меге88, на максимальной его скорости при 8 мГц проца и 3-тьем режиме SPI. SPI оказалось достаточно 8-ми битного аппаратного. Ножка ACK по сути не нужна.
Всем спасибо, проблема решена.