打印
[STM32F1]

使用stm32f103 操作TLE5012B spi读取角度思路和例程(供参考)

[复制链接]
17638|52
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 摩天轮1111 于 2016-2-10 18:22 编辑

       看到很多朋友到处发帖问这个TLE5012b的角度读取例程,其实不怎么难的东西,关键还是要你自己详细读取手册才行,这里我就放出个差不多的代码吧,帮助那些已经攻占了很久的朋友,如果你攻占了很久,一看我代码你就一目了然,如果你没有研究,那抱歉你可能看不懂,请继续回去查看手册,我这个是自己用的代码,工作读数很正常。
1.首先介绍一下TLE5012b,这个是英飞凌的一个磁传感器,很跨时代的一个产品,综合性能都很高,15位解析度,20khz刷新率,典型8mhz的spi时钟,我用了9mhz也正常,呵呵,因为stm32的硬件spi 72M分频,只能8,16,等等,没法凑到8MHZ,只能凑到9mhz,也无可厚非啊,反正tle没说不能9MHZ,我就试了9mhz,可以的


2.关于硬件的接线,因为tle是3线制的spi,也就是data是一根线,仔细看手册你会发现,手册上说了,tle收mcu指令的时候,data是高阻态,tle发数据时候是推挽模式,那么硬件怎么用呢,把stm32的mosi和miso连接在一起,因为miso是配置成为复用浮空输入的(ps如果你在操作spi的时候miso配置的是复用推挽,说这里spi应该配置成复用推挽,我只能说,你学习不用脑子,把stm32的spi的miso配置成为复用推挽是错误的,正确应该配置成为浮空输入,之所以错误的也能用spi正常工作,请仔细看stm32的手册,查找为什么配置错误了也能工作,确实是能工作的,原因手册上面看明白就知道为什么了)miso是浮空输入,这个可以不用管了,管mosi,这个是首先要发数据的,然后发完指令之后,要发空指令,目的是为了让硬件sck工作,使得tle能发出来数据,如果你用开漏的模式,也就是mosi配置成为开漏的话,你不需要把tle配置成为开漏,硬件连接如下图


只要你先是操作mcu的mosi发指令,tle会收到,然后操作mcu的mosi发送FFFF,切记全是F,是16位的,开漏模式发F等于将mcu的mosi释放对总线的控制,这时候tle控制mosi总线,也就是data总线,那么miso就能收到了,一切就都正常工作了

3.如果你想要速度更快一点,那就要把mcu的mosi配置成为推挽输出,依然可以用上面的电路,也可以把这个上拉电阻去了,不去等于驱动能力更强一点,原理是,首先配置成为推挽,发指令的时候,tle的data是高阻抗,没有关系,tle收到指令,然后注意这里,操作gpio的寄存器,给mosi配置成为复用开漏输出,这步完成之后,发送0xFFFF,tle接管data总线,它变成推挽输出,而这时候的mcu的mosi是开漏,等于释放了总线,miso就能收到tle发来的数据了。


4.好了,基本操作都说的很清楚了,我知道有些朋友可能喜欢代码,其实我个人更喜欢思路,不喜欢看别人代码,尤其别人写代码,注释太少,思路不明了,看起来麻烦,这里我放出示例代码,和注释,思路还是比较清楚的,仅供参考,欢迎有兴趣的朋友一起交流(实例代码取消了,因为一些不愉快的事,这里有问题,论坛回帖讨论,基本思路上面给的很清楚了)




沙发
摩天轮1111|  楼主 | 2015-12-9 00:09 | 只看该作者
本帖最后由 摩天轮1111 于 2015-12-9 12:49 编辑

话说这个tle5012b真是个奇葩的东西,这传感器让别人怎么活,那么便宜,然后15位的,居然跳动只有1,2个数字,关键spi时钟上到9M也一样ok,然后然后刷新速度有20khz,真奇葩的东西,还带编码器模式输出,还可以输出角速度值

使用特权

评论回复
板凳
摩天轮1111|  楼主 | 2015-12-9 12:48 | 只看该作者
话说,这不是一堆人到处求的东西吗?还花钱求的东西呢?我这里放出来了,没有一个人有兴趣?英飞凌的社区里面全是求程序的帖子啊,求这个读数的例程啊,真是让我吃惊了,没有人回帖,哎

使用特权

评论回复
地板
flame123| | 2015-12-10 13:42 | 只看该作者
这个给楼主顶一下,大家不关注,也许是坛子里用的少。

使用特权

评论回复
5
changmiao| | 2015-12-11 15:29 | 只看该作者
摩天轮1111 发表于 2015-12-9 12:48
话说,这不是一堆人到处求的东西吗?还花钱求的东西呢?我这里放出来了,没有一个人有兴趣?英飞凌的社区里 ...

楼主说的让我好心疼:lol。另外补充一点,关于8M那,典型值是厂商推荐的,还有个最大值,只要不超过就好。

使用特权

评论回复
6
摩天轮1111|  楼主 | 2015-12-13 22:18 | 只看该作者
changmiao 发表于 2015-12-11 15:29
楼主说的让我好心疼。另外补充一点,关于8M那,典型值是厂商推荐的,还有个最大值,只要不超过就好。 ...

兄台是明白人啊,,,呵呵,但是我看手册的时候没有看到那个最大值啊

使用特权

评论回复
7
罗飞1002| | 2015-12-14 08:57 | 只看该作者
给楼主点个赞!!虽然没用到

使用特权

评论回复
8
linlonghua| | 2015-12-15 18:16 | 只看该作者
谢谢  学习了好久

使用特权

评论回复
9
liuli2008212| | 2015-12-22 18:03 | 只看该作者
不错的分享,顶上

使用特权

评论回复
10
blacksky123| | 2015-12-31 15:46 | 只看该作者
楼主方便加下讨论下吗qq137894201

使用特权

评论回复
11
blacksky123| | 2016-1-5 10:07 | 只看该作者
楼主在的话麻烦加下qq想请教你编码器的问题

使用特权

评论回复
12
摩天轮1111|  楼主 | 2016-1-6 10:28 | 只看该作者
本帖最后由 摩天轮1111 于 2016-1-6 13:16 编辑

      统一回复,有问题,论坛回帖交流,不要加qq什么的,交流重点在交流上,已经指出了你的问题所在,我做的就已经够了, 我没有义务没有责任帮你解决问题,解决你的问题建立在大家平等互利的基础上,对我问的这个问题保密,那个问题保密,你这种人凭什么觉得我就会帮你?如果限制于非技术层面保密,技术层面呢,也保密,我告诉你技术,你保密你的技术,你发现的细节,发现的有意义的现象也保密,这种人请走的远远的,浪费我的时间不说,还希望发代码给你,你觉得可能么,基本的,该有的思路已经贴在帖子里面了,再其次,大家互不认识,连一句谢谢都没有,这里保密,那里保密,你那么能,干嘛来找人帮忙,学艺不精还想偷师,只能说人品有问题,我和别人交流,都会给我发现的重要的现象,解决问题了,也会把要注意的细节告诉别人,你觉得你能做到吗?做不到的朋友,请远之,这种人是我最鄙视的。
      很生气,,,都想给我贴出的代码屏蔽掉,但是相信这种人都是少数,,,

使用特权

评论回复
13
longquanshuang| | 2016-1-12 23:08 | 只看该作者
本帖最后由 longquanshuang 于 2016-1-12 23:09 编辑

这些留QQ号的大爷,全都是做毕设的哔
TLE要是更新速率再高点就好了,可以去做伺服电机了

使用特权

评论回复
14
carlxiao| | 2016-1-21 18:20 | 只看该作者

使用特权

评论回复
15
摩天轮1111|  楼主 | 2016-2-10 18:20 | 只看该作者
longquanshuang 发表于 2016-1-12 23:08
这些留QQ号的大爷,全都是做毕设的哔
TLE要是更新速率再高点就好了,可以去做伺服电机了
...

那个可不是个做毕设的,是个公司员工,接私活,搞不定,来找别人,还啥都保密,

使用特权

评论回复
16
lx745326| | 2016-3-14 13:11 | 只看该作者
楼主,怎么没见有源代码例程啊,正在学习这个TLE5012,希望楼主分享一下,十分感谢

使用特权

评论回复
17
carlxiao| | 2016-3-20 20:39 | 只看该作者
ok

使用特权

评论回复
18
linjiange| | 2016-3-30 11:45 | 只看该作者
正在找,遇到你了,THANKS

使用特权

评论回复
19
371924221| | 2016-4-3 18:50 | 只看该作者
楼主无私奉献,支持一下

使用特权

评论回复
20
silenceqm| | 2016-4-28 16:54 | 只看该作者
楼主,请教一下,我的CRC校验一直不对,你有遇到这个问题吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

224

帖子

15

粉丝