找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3150|回复: 1
打印 上一主题 下一主题
收起左侧

nrf24l01与dds686及ds1302

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-26 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  今天算是最有成效的一天了,解决了年前没解决的nrf24l01自动ACK下不能收发的问题,而且在队友提示下弄清楚了dds686电表的通信协议DL645中关于数据校验的工作方式,从而用串口调试助手实现了与电表的通信,然而移植到单片机上时却遇到了不小的困难,主要是在数据传送的校验上出问题,以前从来没有搞过带校验的串口通信,然后又经过不懈的努力,查资料、不停的实践,终于在晚饭前实现了用单片机和电表通信。至此,我们的模块基本上都实现了,接下来的就是联机调试了。

  昨天和队友商量用ds1302万年历芯片来减小上位机的开销,今天让另外一个队友研究,结果他对这些东西十分生疏,估计前几天在新东方被土鳖老师给洗脑了,到了晚饭时间还是没能读出数据。晚饭回来,我用了十分钟研究了一下他的源码,发现问题解决问题。(其实一年前就搞过,所以上手快O(∩_∩)O哈!)。



  nrf24l01:年前考试考烦了,遂下心搞了一下nrf24l01,还得电路理论都没怎么复习(还不知道挂没,老师一直不发成绩,估计是凶多吉少),不过还好,进过两天两夜的奋战,终于能够通信了,只是不能使用自动ACK。当时是使用的网络上通行的源码,照理说不会错。

  年后回学校又开始搞,第一天看了下程序,怕自己完全忘记了,发现还是不错,毕竟付出了努力。第二天开始搞自动ACK,还是不行。今天重新审视datasheet,曾经没怎么东的一段话引起了我的注意。是关于通道地址设置。因为nrf24l01有六个数据通道,但是只有通道0是用来发送ACK的,所以要求发送端通道0的接收地址与该发发送端的发送地址相同。当nrf24l01发送完数据后,通道0立即转为接收模式等待ACK。网上的源码是用通道0作为发送通道。我想,通道0又要同时作为ACK接收,会不会冲突?于是将发送通道改为了1通道,就是不用通道0发送,哎,结果就行了。可是网络上、datasheet上都没有说不能用通道0发送,因此问题是解决了,但原因还不明,还是怀疑是工作方式配置不正确。但是,它可以工作了,这是铁的事实。

  dds686:最开始是连用现有读表程序都不能通信,感到很郁闷,知道是电路问题,却迟迟不能解决。电表是用的rs485通信协议,单片机是用的串口,中间要有转换,网上找了一个rs232--rs485的转换电路,做了一个,连不上,于是又做了一个还是连不上。后来仔细分析才发现只是把485换成了232,却没有把232转成串口。归咎两点,网上太多232转485,搞得我晕头转向;还有就是没仔细分析。后来加了一个232,当看见通讯指示灯亮起,我差点叫出来。主要的问题还是485是半双工的通讯协议,要去控制数据流方向,挺麻烦。然后就是DL645电表通信协议了,准备好好修理一下它的,搞了两天才发现是被它给修理了。我就直接用串口调试助手把命令发给电表都不能通信,今天才搞懂是通信方式不对,还要加上偶校验位,再次看见通讯灯闪亮,我差点摔电脑。然后就是用单片机发命令了,如果前面两个问题能让我头大一倍的话,那此时我的头就有平时四倍大了,因为这个问题一个顶俩。费了九牛二虎之力,试验了无数种工作模式+电路连接+校验方式的组合,我才发现开始的程序是对的,只是因为线接反,造成我多了两个头。第三次看见通讯灯亮起,我突然平静了,哼起了口哨,慢悠悠的打开优酷去看那几个快乐大本营的疯子。



  说来模块是差不多了,明天开始联调,这是最关键最困难的环节,呵呵,我是海燕我怕谁。然后就做整机电路,然后写报告,然后。。。呵呵。。。打鬼泣。

  等一下和队友商量一下我们系统的协议,山寨一个水货,能用就行,功能又不是很强,要求不高,就像毛豆豆,嫁给余味,没有高追求,踏实又幸福。

  最后有时间,还得搞一下上位机,哎,当时真该把C++好好学学,书到用时方恨少啊。



  这一次比赛有意要培养队友的能力和技术,唐不错,进步很快,但是效率还是低了些,不过比起我当时,那可厉害多了,只是缺少实践,有些问题处理得不灵活;另外一个,被GRE洗脑的,可得要好好加油啰。

  我们的队名是我取的,三人行,很不错的名字,就是希望大家相互学习,虚心受教。我要的不是比赛结果,而是成长,共同的成长。。。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:70976 发表于 2014-12-26 21:41 | 只看该作者


  集中准备比赛已经一周了,可以说进展是很明显的,我们的技术方案也在完成中完善,队友也有和我一样的感觉,通过这个比赛学到了很多东西。

  似乎从来没在这个时间段写过日志——听着室友熟睡的鼾声,带有无限的疲倦,让自己也感到十分的疲惫。刚刚停下编程,却不想把现在的一些感受直接带入梦里抛弃。

  比赛虽然累,却很充实,心中只有一个念头:向着目标前进。于是忘记了累,忘记了痛,忘记了时间,也忘记了那些习惯。。。

  今晚老师走到我面前拍着我的肩膀叫我加油,还说了一句雷人的话:期待你人品爆发。呵呵,这句话从他口中说出,真的是太搞笑了,虽然给了我很大的压力。

  简单想一想,我们的项目取题也许不算多么有想法,但绝对是立足于实用的;我们的技术方案虽然都是十分普遍的技术,相对于很多参赛队来说,也算是较大规模了;最重要的是,这是我第一次做全系统的设计,从选题到技术实现、从硬件电路到软件程序,要打通每一个环节相互协调好还真不是一件简单事。自然,挫折越多,学到的就越丰富。

  另外值得在意的就是看见的队友的成长,看见他们一天比一天有经验,一次比一次坚韧,这是一种欣慰。

  调了一天的程序,虽然问题解决了,但原因还没有分析透彻,还记得李老师常说:知其然而且知其所以然。先放放,等有空闲来扁拦路虎。

  刚刚终于把无线调通了,意思就是说现在基本上可以实现系统运作了,只等系统程序了,而这一块因为了前面的铺垫又是显得这么的简单;然后就是完善以及报告文档答辩之类的。

  看看屏幕右下角,原来早该睡了。。。稍微想想,明天估计又要挨哥哥的骂了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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