搜索
bottom↓
回复: 60

[交流]傻孩子的小项目——PlayStation手柄协议转接器(v1.01)

[复制链接]

出0入296汤圆

发表于 2008-3-18 00:50:53 | 显示全部楼层 |阅读模式
我本来想一心一意研究mkII协议,无奈就在AP7的JTAG取得突破、“欲将剩勇追穷寇”的时候,
老板来了任务——一个星期内完成今年Robocon比赛所有底层硬件驱动的编写——于是乎,摇
头晃脑、唉声叹气……放下手中的工作,暂时性的投入到底层驱动的开发之中。好在,这些底层模
块并非都很无趣。今天,就给大家奉上索尼PS手柄(很多并口手柄也使用的是相同的协议)的协议
转接模块。

    点击此处下载PS协议文档(文件大小:146K)
    点击此处下载完整程序和PCB文档(Sch)(文件大小:150K)

1

1


/***********************************************************
*   函数说明:数据发送进程                                 *
*   输入:    无                                           *
*   输出:    进程是否关闭                                 *
*   调用函数:SERIAL_OUT()                                 *
***********************************************************/
BOOL PROC_Send_Data(void)
{
    UINT8 chCounter = 0;
    UINT8 chXOR = 0;
    BOOL  bIfAllZero = TRUE;
    BOOL  bIfAllHigh = TRUE;
        
    SERIAL_OUT(0xAA);
    SERIAL_OUT(0x0D);chXOR ^= 0x0D;
    SERIAL_OUT(0xAC);chXOR ^= 0xAC;
        
    for (chCounter = 0;chCounter < 8;chCounter++)
    {
        if (s_chPSJoyStickBuffer[chCounter])
        {
            bIfAllZero = FALSE;
        }
        else
        {
            bIfAllHigh = FALSE;
        }
        
        SERIAL_OUT(s_chPSJoyStickBuffer[chCounter]);
        chXOR ^= s_chPSJoyStickBuffer[chCounter];
    }
    SERIAL_OUT(chXOR);
    SERIAL_OUT(0x55);
   
    if (bIfAllZero)
    {
        //开启上拉电阻(很多兼容的并口手柄内部没有上拉电阻无法读取信息)
        PORTB |= BIT(PB4);
    }
    else if (bIfAllHigh)
    {
        //关闭上拉电阻(市面上有一些带方向舵的手柄不允许我们开启上拉电阻)
        PORTB &= ~BIT(PB4);
    }
   
    return FALSE;
}

/***********************************************************
*   函数说明:手柄扫描函数                                 *
*   输入:    无                                           *
*   输出:    进程是否关闭                                 *
*   调用函数:无                                           *
***********************************************************/
BOOL PROC_Refresh_JoyStick(void)
{
    static BYTE chCounter = 0;
   
    if (chCounter)
    {
        if (s_bIfGetNewSPDR)
        {
            s_bIfGetNewSPDR = FALSE;
        }
        else
        {
            return TRUE;
        }
    }
    chCounter++;
    if (chCounter == 1)
    {
        SPI_SS = LOW;
        SPDR = 0x01;
    }
    else if (chCounter == 2)
    {
        SPDR = 0x42;
    }
    else if (chCounter == 10)
    {
        s_chPSJoyStickBuffer[chCounter - 3] = SPDR;
        SPI_SS = HIGH;
        chCounter = 0;
        //SPDR = 0xFF;
    }
    else
    {
        s_chPSJoyStickBuffer[chCounter - 3] = SPDR;
        SPDR = 0xFF;
    }
   
    return TRUE;
}

/***********************************************************
*   函数说明:SPI传输完成中断处理程序代码插入函数          *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:无                                           *
***********************************************************/
void Insert_SPI_STC_ISR_Code(void)
{
    s_bIfGetNewSPDR = TRUE;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
头像被屏蔽

出0入0汤圆

发表于 2008-3-18 00:53:19 | 显示全部楼层
谢谢。难得的资料啊。

出0入0汤圆

发表于 2008-3-18 09:14:42 | 显示全部楼层
楼主,站长早!
虽然不懂,但学习一下
谢谢

出0入0汤圆

发表于 2008-3-18 09:53:18 | 显示全部楼层
好东西

出0入0汤圆

发表于 2008-4-2 16:43:24 | 显示全部楼层
很有帮助,谢谢~!

出0入0汤圆

发表于 2008-4-2 19:57:59 | 显示全部楼层
什么都不说了
收藏

出0入4汤圆

发表于 2008-4-2 22:02:13 | 显示全部楼层
这是开放的协议吗??

出0入0汤圆

发表于 2008-4-2 22:07:59 | 显示全部楼层
不懂,干嘛用的?

出0入296汤圆

 楼主| 发表于 2008-4-2 22:32:05 | 显示全部楼层
这个协议是破解协议……Sony公司并没有公开。

出0入0汤圆

发表于 2008-4-3 23:06:20 | 显示全部楼层
看你用的串口大师好像蛮牛的样子,不知可否上传一份阿,我下了半天尽是广告,累死个人还是没有下到阿。

出50入0汤圆

发表于 2008-4-8 20:18:04 | 显示全部楼层
强,竟然驱动原装手柄使用。

出0入0汤圆

发表于 2008-4-8 20:32:45 | 显示全部楼层
串口大师 (ComMaster) 1.1-PJ
http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=3356447

出0入0汤圆

发表于 2008-4-8 20:36:31 | 显示全部楼层
串口大师ourdev_246922.zip(文件大小:414K) (原文件名:commaster.zip)

出0入0汤圆

发表于 2008-8-1 11:55:56 | 显示全部楼层
顶。。正需要呢。

出0入0汤圆

发表于 2008-8-1 13:15:07 | 显示全部楼层
强人!支持

出0入0汤圆

发表于 2009-3-8 00:59:18 | 显示全部楼层
好好关注

出0入0汤圆

发表于 2009-3-8 01:10:42 | 显示全部楼层
顶,关注

出0入0汤圆

发表于 2009-3-8 11:10:49 | 显示全部楼层
玩的时候再回来看一下,太好了。

出10入8汤圆

发表于 2009-4-22 09:19:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-12 10:32:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-5 17:21:16 | 显示全部楼层
有没有PS3的手柄?

出0入0汤圆

发表于 2010-3-5 17:42:05 | 显示全部楼层
回复【楼主位】Gorgon Meducer 傻孩子
-----------------------------------------------------------------------

shou cang

出0入0汤圆

发表于 2010-3-5 17:51:12 | 显示全部楼层
http://www.webx.dk/robot-crawler/ps-joy.htm

这里有点资料补充

出0入0汤圆

发表于 2010-4-16 23:14:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-19 11:44:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-30 16:53:10 | 显示全部楼层
傻孩子在哪个公司就职?

出0入0汤圆

发表于 2010-6-10 00:18:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-15 14:58:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-15 17:32:32 | 显示全部楼层
mark

出235入235汤圆

发表于 2010-8-15 18:04:57 | 显示全部楼层
【14楼】 chairang 板砖
-----------------------------------
windoes7下好像不能用哦!

出0入0汤圆

发表于 2010-8-18 15:46:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-15 12:50:13 | 显示全部楼层
标记下

出0入0汤圆

发表于 2010-9-15 13:24:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-25 10:20:56 | 显示全部楼层
mark

出0入296汤圆

 楼主| 发表于 2010-12-27 09:52:11 | 显示全部楼层
更新下一个消息,貌似现在PS2手柄已经堕落到25RMB一个的地步了……

出0入0汤圆

发表于 2011-3-19 21:33:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-29 16:18:36 | 显示全部楼层
08年啊,我10年为了参加robocon也破解了一遍PS2的协议。可惜现在才看到楼主的帖子。我有时间把这个东西做得完善一些吧。楼主的作品还有很多提升空间的。包括锁定analog模式或者驱动手柄内的力回馈马达。不知楼主是哪个学校的?感觉是个很不错的学长呢!我是北邮的,10年robocon季军,今年大三。楼主加我QQ:**********##gmail#com #替换一下


站长阿莫提示:本论坛不提倡使用QQ等私下沟通技术问题,也禁止QQ群讨论。我们这里的资料,不是天

上掉下来的,是大家的无私贡献才有今天的成就。

出0入296汤圆

 楼主| 发表于 2011-3-30 09:51:05 | 显示全部楼层
楼上加我资料里面的QQ,你的QQ账号,我输入到查找栏里面(替换#为.),QQ提示我账号错误。
头像被屏蔽

出0入0汤圆

发表于 2011-3-31 23:35:04 | 显示全部楼层
回复【40楼】xoolhaha liren
08年啊,我10年为了参加robocon也破解了一遍ps2的协议。可惜现在才看到楼主的帖子。我有时间把这个东西做得完善一些吧。楼主的作品还有很多提升空间的。包括锁定analog模式或者驱动手柄内的力回馈马达。不知楼主是哪个学校的?感觉是个很不错的学长呢!我是北邮的,10年robocon季军,今年大三。楼主加我qq:**********##gmail#com #替换一下
站长阿莫提示:本论坛不提倡使用qq等私下沟通技术问题,也禁止qq群讨论。我们这里的资料,不是天
上掉下来的,是大家的无私贡献才有今天的成就。

-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-4-1 10:20:49 | 显示全部楼层
点击此处下载 ourdev_627351HV8MEP.rar(文件大小:264K) (原文件名:PSX手柄资料汇总.rar)

出10入284汤圆

发表于 2011-4-1 11:05:39 | 显示全部楼层
回复【40楼】xoolhaha liren
08年啊,我10年为了参加robocon也破_解了一遍ps2的协议。可惜现在才看到楼主的帖子。我有时间把这个东西做得完善一些吧。楼主的作品还有很多提升空间的。包括锁定analog模式或者驱动手柄内的力回馈马达。不知楼主是哪个学校的?感觉是个很不错的学长呢!我是北邮的,10年robocon季军,今年大三。楼主加我qq:**********##gmail#com #替换一下
站长阿莫提示:本论坛不提倡使用qq等私下沟通技术问题,也禁止qq群讨论。我们这里的资料,不是天
上掉下来的,是大家的无私贡献才有今天的成就。

-----------------------------------------------------------------------

09、10年的robocon我都参加过,10年我也是用的PS2手柄,当时是根据傻孩子的协议在mega16上实现的。因为考试时间冲突不得不提前回学校,很遗憾不是我上场操作的。
考试结束后有一点儿时间,就把PS2手柄做得完善一些。PS2手柄不仅有双振动(一个模拟的,一个数字的)还有压力传感器!我的PS2手柄是20多的假货,但是效果还是可以的,就是压力传感器模式的响应有点儿慢。
我记得在备馆的时候看到过一个白色的PS手柄,不知道是不是你的?

(原文件名:PS手柄.jpg)
还有就是PS2的插座在哪有卖?我的是从USB转PS2的蓝三角拆下来的。

出0入296汤圆

 楼主| 发表于 2011-4-1 11:10:57 | 显示全部楼层
我从PS one上拆得

出0入0汤圆

发表于 2011-4-1 11:15:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-2 13:11:07 | 显示全部楼层
回复【44楼】brother_yan  
-----------------------------------------------------------------------

应该不是,在开发的时候我用过黑角的白色PS2手柄,测试了一下兼容性,备馆里一直用的原厂的手柄。黑角的手柄比高仿的手柄要好一些,可惜按键和摇杆都太硬,就还是用的原厂的。120一个。接口买的PS2 1转4的模块拆出来的。这个东西我是直接用STM32读的,没做模块。之前也没看到这个帖子,是收集了上面的资料自己做的。

出0入0汤圆

发表于 2011-4-6 10:21:54 | 显示全部楼层
mark 手柄

出0入0汤圆

发表于 2011-4-6 11:21:39 | 显示全部楼层
打个标签,手柄互动设备

出0入0汤圆

发表于 2011-4-6 20:23:55 | 显示全部楼层
嗯,08年就在萝卜坑用ps2手柄的路过

出0入0汤圆

发表于 2011-8-7 16:52:51 | 显示全部楼层
榜样

出0入0汤圆

发表于 2011-10-9 08:58:21 | 显示全部楼层
收集  

出0入0汤圆

发表于 2011-11-19 10:42:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-28 16:38:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-18 18:26:44 | 显示全部楼层
楼主,怎么第一个下载不了了啊??

出0入0汤圆

发表于 2014-12-29 10:32:28 | 显示全部楼层
这个东西很有用啊 啊啊啊

出0入0汤圆

发表于 2015-1-15 21:06:37 | 显示全部楼层
想要用FPGA读取PS手柄信号,特来学习参考

出0入0汤圆

发表于 2015-5-20 15:36:25 | 显示全部楼层

顶,关注
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 19:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表