21ic电子技术开发论坛 单片机与嵌入式系统 德州仪器MCU Sitara AM18xx系列 PRU功能的妙用
发新帖我要提问
返回列表
打印

Sitara AM18xx系列 PRU功能的妙用

[复制链接]
5390|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blacksword|  楼主 | 2011-6-30 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前一段,接了别人一个亮化工程的活,本想用MCU来控制的。但别人希望一个板子能够接管的LED数目比较多,且希望能够通过WEB来管理这个板子。很痛苦的进行产品的选型。

一直没有什么好的选择,后来无意中拿起手里的SEED-DIM138/1808小模块,一想何不就使用这个板子来做一个控制板呢?

可能有人会说我痴人说梦,这个才有几个GPIO可以用,即使可用,在Linux下面管理起来方便吗?实时性会好吗?

众看官莫急,且听我慢慢道来!

其实我自己心里开始也没什么谱,不过手边有板子,顺手写个程序,飞几根线就测一下呗。

测试一,写一个内核模块,以一个固定模式管理一串LED灯,红,蓝,绿各占一个IO引脚,时钟及锁存时钟各占一个IO引脚。使用一个内核定时器来做数据的移位。管理一串几百个灯没什么问题。

测试二,将测试一的模式与内核分离出来放在应用中处理,也没什么问题。

测试三,增加到十串左右灯,结果发现,模式的变换有点卡。

至此,可以说不得不放弃这样的常规方法。

但这是否就代表黔驴就技穷了呢?
这要是放在以往,可能我就投降了呢,有的人可能就说了,“为什么不使用138里面的DSP呢,实时性不就有保证了?”
是的,这样做是可以的,关于DSP与ARM之间的通信我也是非常熟的。
“那为什么不这样做呢?”
我完全可以那么做,但谁叫我手里的那块板子上面的焊的CPU是AM1808呢?
注定DSP与我没关系!

“嘿,嘿!这个技穷了吧!”我听见了嘲笑的声音。

没办法终极绝招,PRU的光芒,让我自信心极其爆棚。

那么PRU是什么呢?
PRU的全称叫Programable Realtime Unit,即可编程实时单元。这样说可能大家还不是非常理解,可是我要是这样说,大家可能就有点想法了。PRU,你可以看作它是AM18XX产品家族的片上CPLD。有了它,你可以非常灵活地将闲置的CPU管脚定义到任意你想到的功能上,仅受限于你的创意与PRU那150MHz的时钟。

测试四、使用PRU以固定的模式,管理相当数量的IO引脚,来点亮LED灯串。点了二十多个灯串,没有任何问题。

测试五、为PRU写了一个Linux下的小驱动程序,测试了Linux下主CPU与PRU模块的通信。成功!

测试六、改测试四的程序,将模式由固定改为从Linux获取,使用Linux下的应用程序来向PRU发送灯模式。

测试七、将Linux程序中的固定灯模式改为从Sqlite数据库获取,做一个网站向Sqlite数据库写模式

至此,亮化工程的产品原型做完。

那么PRU这个片上CPLD还有什么样的妙用呢?
有人拿他做出了四路串口,加上片上原来的三个串口,总共有七个串口可用。 三四十块钱搞定了一个多串口系统

有人拿他做了ISO7816协议,用它读写IC卡

有人拿他接管了串口打印机,发现打印速度比较直接用ARM管理快了许多,且打印更平顺。



那么你有什么样的奇思妙想呢?

相关帖子

沙发
米其林r| | 2011-6-30 21:21 | 只看该作者
受教了

使用特权

评论回复
板凳
waterlong| | 2012-8-27 17:50 | 只看该作者
Hi blacksword ,

小弟最近在弄 AM1808的 PRU ,在网上查到 有PRU驱动的 是 linux-2.6.33 内核,现在自己的linux内核版本是 linux-2.6.37-psp03.21.00.04.sdk  ,其中没有 PRu驱动,需要做驱动移植,因为小弟是个新手,希望楼主能给点建议,知道一下。

TKS

使用特权

评论回复
地板
waterlong| | 2012-8-27 17:51 | 只看该作者
本人邮箱: 593968048@qq.com


TKS

使用特权

评论回复
5
Embest_Tech| | 2012-10-27 16:50 | 只看该作者
Embest目前也有两款带PRU串口功能的sitara 板子:
1、AM1808 :http://www.timll.com/chinese/OMAP/SBC8118.asp(带核心板)
              http://www.timll.com/chinese/OMAP/sbc8018.asp (单板)
2、AM335X:http://www.timll.com/chinese/OMAP/devkit8600.asp (PRU功能已被复用,下一版预留)
听说目前PRU串口驱动是用汇编写的,什么时候能用C的话,扩PRU网口就容易多啦。

使用特权

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

本版积分规则

个人签名:西皮柚,我为自己代言 Blacksword  坚定的行者

64

主题

848

帖子

1

粉丝
关闭 热门推荐
快速回复 在线客服 返回列表 返回顶部