5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 14769|回复: 92
打印 上一主题 下一主题

2801PRO重生,改为ER9X加多协议,WK2X01及DSM2测试通过,近期发布测试版及刷机教程

  [复制链接]
跳转到指定楼层
发表于 2014-1-22 15:28 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 起子 于 2014-6-13 18:13 编辑

就我了解的,大家玩得比较多的开源控,一是ER9X,这个是基于福斯9的一套开源系统;另外一个是基于DEVO系列的DEVIATION开源系统。
    本来这两者没啥联系的,ER9X以混控出名,而DEVIATION则是多模式发射,尤其是直接支持DSM2吸引人。
    一个偶然的机会,我研究了下ER9X的硬件,核心就是MEGA64单片机;而DEVO则是STM32加CYRF6936的2.4射频模块。
    好奇的我又拆开了闲置已久的2801PRO,发现它就是MEGA64的单片机,焊开射频部分的屏蔽壳,确认2801PRO也是用的CYRF6936的射频模块,这下好玩了,这不就是ER9X的核心加DEVO的射频么?有没有可能将2801PRO改造为ER9X和DEVIATION的合体?

    一直想学习C和单片机,正好借这个做开发板练手了,一切从零开始,到今天,终于有些小眉目了,多说无益,上张图看看:


缓慢进展中,界面小改了一下,射频部分的整合还在进行中。



2014.03.06更新,经过努力,终于基本运行起来了,还有很多不足的地方,但是和山寨6100e对上码,并且响应舵机了。
[flash]http://www.tudou.com/v/ZlL_U1e9RTU/dW5pb25faWQ9MTAzMjA2XzEwMDAwMV8wMl8wMQ==.html[/media]

2014.06.06更新,搁置一段时间后,最近几天又开始折腾了,已经改为16M晶振(估计不改也行),根据铜河的建议将射频发送频率改为20ms并同步修改了一些参数,现在RX2801也能成功对码并响应了。
响应行程已经修正,响应速度比以前快多了,至少我感觉不出来明显延迟。
不过开机时有时候自己重启,运行后没发现过。
下一步改DSM2的响应行程,增加射频切换功能,测试DEVO协议(求成都模友提供一个DEVO的6通接收机测试DEVO协议)。

目前基于MEGA64的WK2801改ER9X并整合DSM2/X,WK2X01,DEVO协议后,程序空间占用98.2%,数据空间占用86%。
如果是基于MEGA128的ER9X,有希望再增加1-2个射频模块,多增加几个协议。

2014.06.13更新,WK2X01和DSM2协议测试通过,改了几个小问题,打算近期发布测试板及刷机教程
[flash]http://www.tudou.com/v/HcjOBiRYm8U/&rpid=80580321&resourceId=80580321_04_05_99==.html[/media]







欢迎继续阅读楼主其他信息

92
发表于 2014-9-29 19:37 | 只看该作者
先支持鲁主。留名
91
发表于 2014-6-15 22:24 | 只看该作者
很期待刷机教程,感谢LZ。
90
发表于 2014-6-15 21:10 | 只看该作者
这个要顶,辛苦了
89
 楼主| 发表于 2014-6-13 18:13 | 只看该作者
2014.06.13更新,WK2X01和DSM2协议测试通过,改了几个小问题,打算近期发布测试板及刷机教程
[flash]http://www.tudou.com/v/HcjOBiRYm8U/&rpid=80580321&resourceId=80580321_04_05_99==.html[/media]

88
发表于 2014-6-10 13:10 | 只看该作者
加油 加油 加油 加油                ................           大神!!!
87
发表于 2014-6-7 09:04 | 只看该作者

86
发表于 2014-6-7 08:07 | 只看该作者
换CPU就复杂了,不建议换。
85
 楼主| 发表于 2014-6-6 23:48 | 只看该作者
铜河 发表于 2014-6-6 20:33
看了程序,发现其中有不少重复的,可以清理一下,合理安排后,空间或许够用

目前MEGA64单CYRF6936射频DSM2/X,DEVO,WK2X01协议刚好够用了。
如果是MEGA128的话,应该可以多射频系统,更多协议了

84
发表于 2014-6-6 20:33 | 只看该作者
看了程序,发现其中有不少重复的,可以清理一下,合理安排后,空间或许够用
83
 楼主| 发表于 2014-6-6 14:34 | 只看该作者
本帖最后由 起子 于 2014-6-6 14:42 编辑

2014.06.06更新,搁置一段时间后,最近几天又开始折腾了,已经改为16M晶振(估计不改也行),根据铜河的建议将射频发送频率改为20ms并同步修改了一些参数,现在RX2801也能成功对码并响应了。

响应行程已经修正,响应速度比以前快多了,至少我感觉不出来明显延迟。

不过开机时有时候自己重启,运行后没发现过。

下一步改DSM2的响应行程,增加射频切换功能,测试DEVO协议(求成都模友提供一个DEVO的6通接收机测试DEVO协议)。
目前基于MEGA64的WK2801改ER9X并整合DSM2/X,WK2X01,DEVO协议后,程序空间占用98.2%,数据空间占用86%。
如果是基于MEGA128的ER9X,有希望再增加1-2个射频模块,多增加几个协议。

82
发表于 2014-5-14 22:56 | 只看该作者
起子 发表于 2014-5-9 22:33
楼上几位,这几天事情太多,没来得及回复,下周空了联系吧。
今天中午抽空在16m下试了,运行wk协议还是系统 ...


楼主手上有wk2801pro的固件吗?有的话能不能给我一份,谢谢
祝楼主早日成功
81
发表于 2014-5-12 12:06 | 只看该作者
起子 发表于 2014-5-9 22:33
楼上几位,这几天事情太多,没来得及回复,下周空了联系吧。
今天中午抽空在16m下试了,运行wk协议还是系统 ...

好久没来论坛,原来起子兄在研究这个,顶!
对AVR比较熟,有什么问题我们也许可以交流!
祝早日成功!

80
发表于 2014-5-11 22:58 | 只看该作者
我也是2801的,但我不知道为什么要改,改了会有什么好处?
79
 楼主| 发表于 2014-5-9 22:33 | 只看该作者
楼上几位,这几天事情太多,没来得及回复,下周空了联系吧。
今天中午抽空在16m下试了,运行wk协议还是系统走时很慢。
来自安卓客户端
78
发表于 2014-5-9 17:14 | 只看该作者
gongye5776601 发表于 2014-5-9 15:11
谢谢兄弟 我就是这个812版本的搞不定了 其他的都能改过来了 而且很简单的 我Q1664573305你的联系方式方便 ...

Q 32044538

77
发表于 2014-5-9 15:11 | 只看该作者
leevalour 发表于 2014-5-9 13:40
看你是左右反 还是上下反
具体需要看sed1565 或者 st7565控制器说明
一个参数是SEG的正和反 这个是控制 ...

谢谢兄弟 我就是这个812版本的搞不定了 其他的都能改过来了 而且很简单的 我Q1664573305你的联系方式方便透漏下吗
76
发表于 2014-5-9 15:01 | 只看该作者
jpshu123 发表于 2014-5-9 13:37
这个也要改
// controller independent options
#define SERIAL_LCD      0       // parallel=0, 4W_s ...

这里改了 也不行的 这个版本的源码这么麻烦呢 以前只要改一处就可以了呀 还需要改哪里呢
75
发表于 2014-5-9 13:40 | 只看该作者
本帖最后由 leevalour 于 2014-5-9 13:42 编辑
gongye5776601 发表于 2014-5-9 12:48
# if ROTATE_SCREEN
  0xA0,         // ADC = 1: reverse direction(SEG128->SEG1)
  0xC0,         / ...

看你是左右反 还是上下反
具体需要看sed1565 或者 st7565控制器说明
一个参数是SEG的正和反 这个是控制左右的
一个参数是COM的正和反 这个是控制上下的

有一起交流er9x源码的朋友没 可以pm加qq讨论下 我只玩固定翼 对直的那些参数 还有混控完全没研究啊
看源代码很多不明白
目前进度:
完成12864驱动部分,实现12点阵中文菜单的显示,
实现图像任意位置显示,以及简单的绘制线条函数


74
发表于 2014-5-9 13:37 | 只看该作者
gongye5776601 发表于 2014-5-9 12:48
# if ROTATE_SCREEN
  0xA0,         // ADC = 1: reverse direction(SEG128->SEG1)
  0xC0,         / ...

这个也要改
// controller independent options
#define SERIAL_LCD      0       // parallel=0, 4W_serial=1
#define ROTATE_SCREEN   1       // don't-rotate-screen=0, rotate-180-degree=1
#define REVERSE_VIDEO   1       // normal-video=0, reverse-video=1

还有要改的地方,需要仔细阅读源程序

73
发表于 2014-5-9 12:48 | 只看该作者
jpshu123 发表于 2014-5-9 09:54
ER9X源码里LCD.CPP的代码需要修改所有的ROTATE_SCREEN

在这里

# if ROTATE_SCREEN
  0xA0,         // ADC = 1: reverse direction(SEG128->SEG1)
  0xC0,         // SHL = 1: reverse direction (COM64->COM1)
# else
  0xA1,         // ADC = 0: normal direction(SEG1->SEG128)
  0xC8,         // SHL = 0: normal direction (COM1->COM64)
# if ROTATE_SCREEN
  0xA1,         // ADC = 0: normal direction(SEG1->SEG132/SEG128)
  0xC0,         // SHL = 1: reverse direction (COM64->COM1)
# else
  0xA0,         // ADC = 1: reverse direction(SEG132/SEG128->SEG1)
  0xC8,         // SHL = 0: normal direction (COM1->COM64)
if (g_eeGeneral.rotateScreen) {
      lcdSendCtl2(0xA0, 0xC0);  // ADC = 1: reverse direction(SEG128->SEG1)
    } else {                    // SHL = 1: reverse direction(COM64->COM1)
      lcdSendCtl2(0xA1, 0xC8);  // ADC = 0: normal direction(SEG1->SEG128)
    }                           // SHL = 0: normal direction(COM1->COM64)
if (g_eeGeneral.rotateScreen) {
      lcdSendCtl2(0xA1, 0xC0);  // ADC = 0: norm direction(SEG1->SEG132/SEG128)
    } else {                    // SHL = 1: rev direction(COM64->COM1)
      lcdSendCtl2(0xA0, 0xC8);  // ADC = 1: rev direction(SEG132/SEG128->SEG1)
    }                           // SHL = 0: norm direction(COM1->COM64)
#if defined(CPUM128) || defined(CPUM2561)
if (g_eeGeneral.rotateScreen) {
    lcdSendCtl(0xA1);     // ADC = 0: norm direction(SEG1->SEG132/SEG128)
    lcdSendCtl(0xC0);     // SHL = 1: rev direction(COM64->COM1)
  } else {
    lcdSendCtl(0xA0);     // ADC = 1: rev direction(SEG132/SEG128->SEG1)
    lcdSendCtl(0xC8);     // SHL = 0: norm direction(COM1->COM64)
已经改成这样了 但是还是么有反向呢



您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

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