打印
[Actel FPGA]

怎样用FPGA来设计LED的驱动?

[复制链接]
1715|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
稳定分析|  楼主 | 2009-8-13 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
虚拟电路| | 2009-8-14 11:50 | 只看该作者
整个设计分为三个部分:
底层接口驱动,
上层接口,
图像处理。

底层接口驱动:这个是参照LED整列的驱动芯片的datasheet来做,在底层你所需要了解的是驱动芯片的接口,对应管脚的功能,然后LED驱动芯片的指令和数据传输的时序。这个是接口,整个设计都是在这个基础上建立的,首先底层控制要做好。

上层接口:你发挥的空间来了,上层接口是连接图像和底层的桥梁。在这一层你要给图像处理留出一定量的控制信号~~图像层不了解底层接口驱动,他只管按照一副特定的图像发数据去刷新LED,但是他发的东西根本没有时序和指令的概念~~(他啥也不懂~~你做的这个接口就是翻译)那么这个时候你发挥的空间有:

1指令集:这套指令集的用途是区分图像层到底是要你传什么东西。这个你可以随意定义,例如图像层连发5个0x25,你就把led屏幕清掉。或者图像层发了3个0x11然后你就知道后面发的东西全部是数据。要求你去刷新。这个是你做~然后写出一份文档,告诉图像层(图像层的东西不一定是你做的)你的指令。让图像层按照你的思路去做(这个指令集完全你说了算~~)

使用特权

评论回复
板凳
虚拟电路| | 2009-8-14 11:50 | 只看该作者
2辅助功能:你同时也可以做出一套辅助检测功能。这个功能是你往图像层返回的数据,其中包括链路的检测和状态检测。这个东西你做出来了以后是要反过来扔给图像层的,让图像层知道现在下面底层芯片是不是工作正常。然后有没有什么东西挂了等等(这个是要你实现的,你要是不做也行~但是图像层就不知道下层的情况。)

图像层:图像层的东西比较复杂,你说的复杂的控制算法,如果说是底层控制的话,应该扔在底层做~~而且不会很复杂。图像层主要是生成命令或者图像。这个倒是比较难~~一般都是扔给cpu做或者扔给NIOS/microblaze/powerpc(都是fpga内部集成的软核)。他们做。他们利用软件来生成图像。下发给上层接口。再由上层接口译码以后放到底层驱动上面。底层驱动输出给驱动芯片。

一般而言。FPGA内部逻辑资源可以做到上层接口,但是如果你要做图像层的,那么可能需要SOC来解决。在fpga内部生成个CPU核,烧软件进去。

使用特权

评论回复
地板
虚拟电路| | 2009-8-14 11:51 | 只看该作者
整个设计分为三个部分:
底层接口驱动,
上层接口,
图像处理。

底层接口驱动:这个是参照LED整列的驱动芯片的datasheet来做,在底层你所需要了解的是驱动芯片的接口,对应管脚的功能,然后LED驱动芯片的指令和数据传输的时序。这个是接口,整个设计都是在这个基础上建立的,首先底层控制要做好。

上层接口:你发挥的空间来了,上层接口是连接图像和底层的桥梁。在这一层你要给图像处理留出一定量的控制信号~~图像层不了解底层接口驱动,他只管按照一副特定的图像发数据去刷新LED,但是他发的东西根本没有时序和指令的概念~~(他啥也不懂~~你做的这个接口就是翻译)那么这个时候你发挥的空间有:

1指令集:这套指令集的用途是区分图像层到底是要你传什么东西。这个你可以随意定义,例如图像层连发5个0x25,你就把led屏幕清掉。或者图像层发了3个0x11然后你就知道后面发的东西全部是数据。要求你去刷新。这个是你做~然后写出一份文档,告诉图像层(图像层的东西不一定是你做的)你的指令。让图像层按照你的思路去做(这个指令集完全你说了算~~)

2辅助功能:你同时也可以做出一套辅助检测功能。这个功能是你往图像层返回的数据,其中包括链路的检测和状态检测。这个东西你做出来了以后是要反过来扔给图像层的,让图像层知道现在下面底层芯片是不是工作正常。然后有没有什么东西挂了等等(这个是要你实现的,你要是不做也行~但是图像层就不知道下层的情况。)

图像层:图像层的东西比较复杂,你说的复杂的控制算法,如果说是底层控制的话,应该扔在底层做~~而且不会很复杂。图像层主要是生成命令或者图像。这个倒是比较难~~一般都是扔给cpu做或者扔给NIOS/microblaze/powerpc(都是fpga内部集成的软核)。他们做。他们利用软件来生成图像。下发给上层接口。再由上层接口译码以后放到底层驱动上面。底层驱动输出给驱动芯片。

一般而言。FPGA内部逻辑资源可以做到上层接口,但是如果你要做图像层的,那么可能需要SOC来解决。在fpga内部生成个CPU核,烧软件进去。

还有FPGA控制LED驱动芯片嘛。FPGA内部资源的核心电压是1.2v。但是IO口的电压可以由VCC来控制(这个比较牛。所以FPGA功耗小)举例:你可以把一个bank全部接上3.3v TTL电平。那么这个bank上面的所有管脚都输出3.3v。而内部逻辑资源是1.2v控制的,只不过输出是3.3v(1.2=》3.3有点像电压转换芯片) 所以你只要做的事情就是~知道led驱动芯片的控制电平~。然后在输入输出的时候用对应电源芯片连到fpga的IO Vcc管脚上面。就ok~

使用特权

评论回复
5
虚拟电路| | 2009-8-14 11:51 | 只看该作者
第一是公式,背光亮度是平均值我知道了。但是背光亮度是什么的平均值?是(R+G+B)x点数=亮度?还是max(Rx点数,Gx点数,Bx点数)单独通道的背光单独计算?这个我不太明白。但是这个不影响以后操作。(我觉得可能是取的是单个色道中最大的那个分量,只是猜想。)

第二是,是不是RGB灰阶与背光亮度是分开控制的?(我想想应该是分开控制的,可能是一块芯片但是是两个不同的控制)

第三是,存储,存储这个问题挺严重的,小的led可能还好控制点,如果LED太大,那么可能导致的是你FPGA内部存储空间不够~~有时间的话可能要确定一下对应的FPGA型号。

第一是图像的缓存,没什么好说的,一定要缓存否则就没办法进行下一步操作。

第二个是一个累加器,用来累加对应的东西。(这个要看你的算法是什么样子的。)

第三个就是转化器,你这个图像层由于设计亮度和灰度,这个比较讨厌的就是这个了。因为你要完全计算出平均值然后再进行操作。这个比较麻烦。因为只有当你得出LED块的平均亮度以后才能完成这步。一个周期太长。这个比较麻烦。

我只能先想这么多了.

使用特权

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

本版积分规则

26

主题

165

帖子

0

粉丝