jianfengxixi 发表于 2013-8-30 18:00:55

发一个我做的CPLD+SRAM驱动4.3寸TFT控制器

断断续续地学了verilog HDL和FPGA一段时间,一直没有完整的做一个东西,看到论坛上有做TFT控制器的,于是就仿制了一个
主要参考“dzng11”做的,链接如下
http://www.amobbs.com/forum.php?mod=viewthread&tid=5255518&highlight=%E8%B5%A4%E8%A3%B8%E8%A3%B8%E7%9A%84%E5%A5%89%E7%8C%AE

verilog程序大部分是自己写的,一些部分如异步写入,HSync,VSync时序产生部分参考了"dzng11"
废话不说了:直接上图上资料

honami520 发表于 2013-8-30 18:08:07

这是个好资料!支持楼主开源!我先顶一个

srygg 发表于 2013-8-30 18:11:48

不错啊!

lgg88 发表于 2013-8-30 19:47:51

这个要顶   

vipcff 发表于 2013-8-30 19:58:21

非常感谢

lcmdw 发表于 2013-8-30 20:08:42

mark









kenson 发表于 2013-8-30 20:41:46

不错要顶上去

jlian168 发表于 2013-8-30 21:36:47

Oh my god,Perfect.

Thank you.

jxcylxh 发表于 2013-8-30 21:38:22

这个好呀,下载来看看,研究一下。

ginonie 发表于 2013-8-30 22:03:31

好资料,必须顶!感谢分享

mdcao 发表于 2013-8-30 22:06:21

要要要…定

jiaxinhui 发表于 2013-8-30 22:16:17

楼主我顶你了,谢谢给大家分享                                                                                                                     

NJ8888 发表于 2013-8-30 22:33:08

有没硬件加速画水平竖直以及斜线线,画块功能?

jianfengxixi 发表于 2013-8-30 23:04:11

有硬件加速画水平(从左往右),竖直(从上往下),但不支持斜线,
另外 IS61WV25616刚好能放下两幅图像,
因此搞了两个页面,数据写入和显示的页面由reg4和reg6设置,可以写入当前显示的页面,也可以写入另一页面
还有16级背光亮度调节

目前,数据只能往里写,不能读出,
如果要读出,得加一级缓冲,240个LE有点不够用了

ghostxdy 发表于 2013-8-30 23:10:05

请问楼主,这个与用一块芯片来驱动LCD有何区别?
有何优势?
真心不懂,望解答

jianfengxixi 发表于 2013-8-30 23:53:51

ghostxdy 发表于 2013-8-30 23:10 static/image/common/back.gif
请问楼主,这个与用一块芯片来驱动LCD有何区别?
有何优势?
真心不懂,望解答


用一块芯片,如RA8875,SSD1963等,只要按照使用手册操作寄存器就可以了

最大优势就是不用去看超长的英文数据手册了{:smile:}

kneken 发表于 2013-8-30 23:58:48

{:victory:}

tonyg 发表于 2013-9-1 12:03:37

感谢楼主!我有个PSP3的屏最近打算用起来,这回更有信心了。

不过,有两个stm32的文件不能下载,可能这上传没成功。:)

shuiluo2 发表于 2013-9-1 12:06:43

不错,顶楼主

jianfengxixi 发表于 2013-9-1 12:18:53

tonyg 发表于 2013-9-1 12:03 static/image/common/back.gif
感谢楼主!我有个PSP3的屏最近打算用起来,这回更有信心了。

不过,有两个stm32的文件不能下载,可能这上 ...

stm32就一个原理图和一个工程的压缩包,刚才试了下,都可以下载啊!

hunningtu 发表于 2013-9-1 12:40:01

赞一个,一直想玩,楼主有没有空板要转?

tonyg 发表于 2013-9-1 12:51:50

jianfengxixi 发表于 2013-9-1 12:18 static/image/common/back.gif
stm32就一个原理图和一个工程的压缩包,刚才试了下,都可以下载啊!

还真是,我用IE可以下载,可是chrome却报告页面找不到。:)

再次感谢楼主!


jianfengxixi 发表于 2013-9-1 20:06:14

hunningtu 发表于 2013-9-1 12:40 static/image/common/back.gif
赞一个,一直想玩,楼主有没有空板要转?

一共打样了7块,自己焊2块(只买了2套元件),还有5块空板,要的话付个邮费我发给你

hunningtu 发表于 2013-9-1 20:26:33

jianfengxixi 发表于 2013-9-1 20:06 static/image/common/back.gif
一共打样了7块,自己焊2块(只买了2套元件),还有5块空板,要的话付个邮费我发给你 ...

多谢,需要再联系你。

b57203493 发表于 2013-9-5 10:02:33

jianfengxixi 发表于 2013-9-1 20:06 static/image/common/back.gif
一共打样了7块,自己焊2块(只买了2套元件),还有5块空板,要的话付个邮费我发给你 ...

楼主还有pcb没,可否给1片。{:lol:}

hyghyg1234 发表于 2013-9-5 12:13:47

好资料,楼主还有空板子吗

jianfengxixi 发表于 2013-9-5 15:54:47

b57203493 发表于 2013-9-5 10:02 static/image/common/back.gif
楼主还有pcb没,可否给1片。

已发顺丰到付,请注意查收

rifjft 发表于 2013-9-5 16:50:02

不错,帮顶。

可惜CAT4237没有,要然也弄块板玩玩

jianfengxixi 发表于 2013-9-5 16:57:31

rifjft 发表于 2013-9-5 16:50 static/image/common/back.gif
不错,帮顶。

可惜CAT4237没有,要然也弄块板玩玩

CAT4237还剩2片{:smile:}

keshipt 发表于 2013-9-5 17:00:32

支持顶楼主!

b57203493 发表于 2013-9-5 17:25:17

jianfengxixi 发表于 2013-9-5 15:54 static/image/common/back.gif
已发顺丰到付,请注意查收

谢谢了。
万分感谢。

huchl 发表于 2013-10-8 10:13:26

首先感谢楼主的无私奉献.


我有个问题:
//External asynchronous data write
always @(posedge ExWr or negedge SysRst)   使用EXWr上升沿,好像cpld有些不稳定,不知楼主遇到了没?
begin
        if(!SysRst)
        begin
                ExWrData <= 16'd0;
                ExRegAddr <= 3'b000;
                ExWrClk <= 1'b0;
        end
        else
        begin
                if(!ExCs)
                        if(!ExRs)
                                ExRegAddr <= ExDataBus;
                        else
                        begin
                                ExWrData <= ExDataBus;
                                ExWrClk <= ~ExWrClk;
                        end
        end

jianfengxixi 发表于 2013-10-8 12:46:22

你是用杜邦线连的吗?
如果是的话,多连几根GND线试试

dlutloong 发表于 2013-10-10 20:35:12

mark{:smile:}

fy024 发表于 2013-10-10 21:57:17

jianfengxixi 发表于 2013-9-5 15:54 static/image/common/back.gif
已发顺丰到付,请注意查收

还有空板子吗?可否赠送一块

jianfengxixi 发表于 2013-10-10 23:58:20

fy024 发表于 2013-10-10 21:57 static/image/common/back.gif
还有空板子吗?可否赠送一块

还有一块,顺丰到付可否?

fy024 发表于 2013-10-11 00:00:29

jianfengxixi 发表于 2013-10-10 23:58 static/image/common/back.gif
还有一块,顺丰到付可否?

可以的,我站内发地址给你

LVmcu 发表于 2013-10-11 13:58:12

楼主还有空板吗?送我一块!!

JESTER9 发表于 2013-10-11 14:06:02


不错,顶楼主

guer 发表于 2013-10-11 14:12:56

mark         必须顶下

jianfengxixi 发表于 2013-10-11 16:19:02

LVmcu 发表于 2013-10-11 13:58 static/image/common/back.gif
楼主还有空板吗?送我一块!!

没有了,最后一块发给你楼上了

youpeng 发表于 2013-10-16 02:16:45

jianfengxixi 发表于 2013-10-11 16:19 static/image/common/back.gif
没有了,最后一块发给你楼上了

LZ是个好同志!
非常感谢!

o0pingu0o1 发表于 2013-10-16 05:59:28

这是一个好东西,必须mark

youpeng 发表于 2013-10-20 22:14:29

帮lz顶起,正在啃cpld代码中。

sblpp 发表于 2013-10-21 19:43:56


                end
                RGB_Q <= (SysCmdValue_Q)?16'd0:RamDataBus;
                SramAddr <= YRegValue_Q;
                SramAddr <= XRegValue_Q;
                RamAddrBus_Q <= XRegValue_Q;
                RamAddrBus_Q <= SysCmdValue_Q;
            end else begin
                if (AskWr) begin
                  WrEn_Q <= 1'b1;
                end
                ExBusOut_Q <= RamDataBus;
                SramAddr <= HsCount_Q;
                SramAddr <= DotCount_Q;
                RamAddrBus_Q <= DotCount_Q;
                RamAddrBus_Q <= SelDispRam_Q;
            end


楼主 能讲下这段代码吗?
什么时候写SRAM,什么时候读SRAM。
谢谢啦!

u123321 发表于 2013-10-22 08:50:43

下载了,感谢楼主奉献

jianfengxixi 发表于 2013-10-22 11:47:23

sblpp 发表于 2013-10-21 19:43 static/image/common/back.gif

                end
                RGB_Q

我写的在tft43_test.v,tft43.v是网友写的

sblpp 发表于 2013-10-22 20:03:29

jianfengxixi 发表于 2013-10-22 11:47 static/image/common/back.gif
我写的在tft43_test.v,tft43.v是网友写的

谢谢楼主分享!
你的代码比较简洁,赞一个先。
不过 是不是没有实现硬件加速啊?

jianfengxixi 发表于 2013-10-22 20:26:58

sblpp 发表于 2013-10-22 20:03 static/image/common/back.gif
谢谢楼主分享!
你的代码比较简洁,赞一个先。
不过 是不是没有实现硬件加速啊?


有加速画水平线和竖线

thzbigone 发表于 2013-10-23 14:29:57

突然想起我还有块版.等下也来弄弄.

thzbigone 发表于 2013-10-23 14:34:16

太没毅力了.2年前我就做了,遇到点麻烦,就停了. 最近把他弄起来.

youpeng 发表于 2013-10-23 14:47:39

thzbigone 发表于 2013-10-23 14:34 static/image/common/back.gif
太没毅力了.2年前我就做了,遇到点麻烦,就停了. 最近把他弄起来.

支持LS的朋友搞起!有问题可以一起交流讨论!
-----
另,赞lz的热心!请多多赐教!
顶起!

thzbigone 发表于 2013-11-7 15:59:57

框架搞好啦,不过有个问题 不知道为什么,每次变换颜色时候会缺2个点。

查的我头都疼了。


以下为verilog 代码:


//
//
//EPM240+61LV25616+TMS320VC5509 驱动TFT夏普LQ057,5.7 320*240
//
//

module Epm240_Sram_CtrTft( Clk ,                                 //40MHZ晶振
                        Dsp_Data, Dsp_Address,Emif_Awe, Emif_Ce2, Emif_Ce3,// 显示数据写入接口                  
                        Sram_Data, Sram_Address, Sram_Ce, Sram_Oe, Sram_We,//Sram 接口 UB/LB 已接低
            Tft_RGB, Tft_Ck, Tft_Hs, Tft_Vs, Tft_En, TFT_Rl);             //LQ057接口 32PIN 只用RGB只用了3*6共18位,HS,VS模式

       inputClk, Emif_Ce2, Emif_Ce3, Emif_Awe;
       input Dsp_Address;                              //
       output Sram_Ce, Sram_Oe, Sram_We, Tft_Ck, Tft_Vs, Tft_Hs, Tft_En,TFT_Rl;
       output Sram_Address, Tft_RGB;
       inputDsp_Data;
       inout Sram_Data;
//接口          
           regTft_Ck=0;                                          //Tft 时钟
           regTft_En=0;                                                                                       //Tft ENAB模式,本例无效
           regTft_Hs=0;                                                                                       //列时序
           regTft_Vs=0;
           regTFT_Rl=1;                                                                                     //行时序
           regTft_RGB;
           regSram_Oe;
           regSram_We=0;
           regSram_Ce=0;
           wire Sram_Address;
       
          
          
//标志        
           regMark_TftReady=0;                                                           //TFT 上电完成标志
           regDisplay_Valid=0;
//计数器
       reg Counter_Delay=0;                              // 延时计数器
       regCounter_FreqDiv=0;                            //分频计数器
       regCounter_TftVs;                                                                //TFT行计数器
           regCounter_TftHs;                                                               //TFT列计数器
//临时寄存器       
       reg Temp_SramAddrW=0;
       reg Temp_SramAddrR=0;
       reg Temp_SramData=0;
      
      
///////////////////////////////WAIT//FOR//READY/////////////////////////////////
          
       
//       
assign Sram_Address=Sram_We? Temp_SramAddrR:Temp_SramAddrW;//Temp_SramOe为高写入为写数地址
assign Sram_Data   =Sram_Oe? Temp_SramData:18'hzzzzzz;      //Temp_SramOe为高为写入状态
      
//延时10ms等待tft上电完成      
always @ (posedge Clk)                                       
begin
   if(Mark_TftReady==0)
   begin
      Counter_Delay<=Counter_Delay+1;
          if(Counter_Delay>=400000)
          begin
                        Mark_TftReady<=1;
                end
        end
end

//////////////////////////////////////////TFT***BEGIN////////////////////////////////
//40Mhz晶振6分频 6.67Mhz 作为TFT时钟
always @ (posedge Clk)
   begin
   if(Mark_TftReady==1)
       begin
          if((Counter_FreqDiv==2)||(Counter_FreqDiv==5))
            begin
                        Tft_Ck=~Tft_Ck;
                                if(Counter_FreqDiv==5)
                                   Counter_FreqDiv<=0;
                  end
               
                   Counter_FreqDiv<=Counter_FreqDiv+1;       
                       
       end
   end


//行有效时钟380个,选取320个送显示点

always @ (posedge Tft_Ck)

begin
        if (Counter_TftHs<40)
                Tft_Hs=0;
   else
      Tft_Hs=1;

   if (Counter_TftHs>=420)
          Counter_TftHs<=0;
      else
          Counter_TftHs<=Counter_TftHs+1;
   
end


//列有效时钟276个,选取中间的240个送显示

always@(negedge Tft_Hs)                  
begin

       if(Counter_TftVs<7)
          Tft_Vs=0;
       else
          Tft_Vs=1;
       
       if(Counter_TftVs>=283)
          Counter_TftVs<=0;
      else
          Counter_TftVs=Counter_TftVs+1;

      

end       
//////////////////////////////////////////TFT***END////////////////////////////////

////////////////////////////////////SRAM***BEGIN////////////////////////////////////
//Counter_FreqDiv
//Tft_Ck为0~3时钟周期 写入SRAM



always @ (posedge Clk)
   begin
   if(Mark_TftReady==1)
   begin
               
         case(Counter_FreqDiv)
             3'b000:
               begin
               
                                Sram_Oe=1;
                                Sram_We=0;
                                if((Counter_TftHs==85)&&(Counter_TftVs==18))       //模拟DSP写入显示数据到SRAM 中。
                                        Temp_SramAddrW=0;                              //显示数据存于SRMA地址 0~320*240
                                Temp_SramAddrW=Temp_SramAddrW+1;
               end
                       3'b001:
               begin
                        if(Temp_SramAddrW<76800)
                                begin
                                  if(Temp_SramAddrW<642)
                                     Temp_SramData=9'b000000111;   //red
                                   else
                                      if(Temp_SramAddrW<1282)
                                     Temp_SramData=9'b111000000;   //blue
                                  
                                  else
                                      if(Temp_SramAddrW<51202)
                                                Temp_SramData=9'b000111000;//green
                                        else
                                        if(Temp_SramAddrW<76800)   //320*240=76800
                                                        Temp_SramData=9'b111000000;
                                                        else
                                                        Temp_SramData=9'b000000000;
                                end
               end
                       3'b010:
               begin
                                Sram_Oe=1;
                                Sram_We=0;
               end
             3'b011:
               begin
                               
               end
                       3'b100:
               begin
                                Sram_Oe=0;
                                Sram_We=1;
                               
                                if((Counter_TftHs==85)&&(Counter_TftVs==19))       //读SRAM
                                        begin
                                        Temp_SramAddrR<=0;                              
                                        Display_Valid<=1;                              //由于显示行列有效数据间有空周期 设定了显示有效位。
                                  end
                               
                                if(((Counter_TftHs>85)&&(Counter_TftHs<=405))&&((Counter_TftVs>=19)&&(Counter_TftVs<259)))
                                  begin
                                          Temp_SramAddrR<=Temp_SramAddrR+1;
                                          Display_Valid<=1;
                                        end
                                  else
                                  Display_Valid<=0;
                               
                               
               end
                       3'b101:
               begin

                                if(Display_Valid)
                               begin       
       
                                  
                                          
                                           Tft_RGB=3'b000;                //512色即可
                                           Tft_RGB=Sram_Data;
                                           Tft_RGB=3'b000;
                                           Tft_RGB=Sram_Data;
                                           Tft_RGB=3'b000;
                                           Tft_RGB=Sram_Data;
                                        end
                                       else
                          Tft_RGB<=18'bzzzzzzzzzzzzzzzzzzz;
                                  
                               
                             
               end
            default
                  Tft_RGB<=18'bzzzzzzzzzzzzzzzzzzz;
         endcase

      


   end

   end

////////////////////////////////////SRAM***END//////////////////////////////////////

/////////////////////////////////DSPDATA***BEGIN////////////////////////////////////
//依据Dsp_Address数据判别送来数据类型
//0 列地址2行地址4前景色 5背景色 6写显示数据寄存器 7状态控制寄存器
//Sram_Address 【17:8】行地址【7:0】列地址
always @ (negedge Emif_Awe )
    begin
       if( Emif_Ce2==0)
         case (Dsp_Address)
            4'b0000:
            begin
                                //Temp_SramAddrW=Dsp_Data;
            end
                        4'b0001:
            begin
            
            end
                        4'b0010:
            begin
                                //Temp_SramAddrW=Dsp_Data*320+Temp_SramAddrW;
            end
                        4'b0011:
            begin
                                //Temp_SramData=Dsp_Data;
            end
                        4'b0100:
            begin
            
            end
                        4'b0101:
            begin
            
            end
                        4'b0110:
            begin
            
            end
                        4'b0111:
            begin
            
            end
                        4'b1000:
            begin
            
            end

         endcase
      
      


    end

/////////////////////////////////DSPDATA***END//////////////////////////////////////
endmodule




过几天再继续完善。

thzbigone 发表于 2013-11-7 16:11:28

本帖最后由 thzbigone 于 2013-11-7 16:27 编辑




上面程序里我写入SRAM的时候地址加了2的偏移,不然就会像上面图上缺两点。

由于XDS510挂了,暂时没能外部写数据来。

权限太低不能飞语,飞我的兄弟,不好意思没发飞回来。

板子是以前调废了的板,屏也是客户弄进油了我自己修的旧屏。



懂的兄弟们多指教啊,我搞这个不在行。弄的东西太多,什么都会以点,什么都不精。

hyghyg1234 发表于 2013-11-7 17:47:55

LVmcu 发表于 2013-10-11 13:58 static/image/common/back.gif
楼主还有空板吗?送我一块!!

我手上多一片,当时楼主送了我两片,上面焊了个CPLD

hyghyg1234 发表于 2013-11-7 17:51:02

sblpp 发表于 2013-10-22 20:03 static/image/common/back.gif
谢谢楼主分享!
你的代码比较简洁,赞一个先。
不过 是不是没有实现硬件加速啊?


我已经调好了,有硬件水平和垂直加速,刷屏速度挺快的

gginhouse 发表于 2013-11-7 19:37:24

楼上的不用送给我吧,我也想玩一下,成本和运费我出(方便的话屏也一起)

随风_98 发表于 2013-11-7 19:51:02

好贴!!果断收藏。。

LVmcu 发表于 2013-11-8 10:25:10

hyghyg1234 发表于 2013-11-7 17:47 static/image/common/back.gif
我手上多一片,当时楼主送了我两片,上面焊了个CPLD

谢谢你,最近公司有人开始做FPGA了,我到时就拿块板子玩玩就 可以了!

hyghyg1234 发表于 2013-11-8 10:55:41

gginhouse 发表于 2013-11-7 19:37 static/image/common/back.gif
楼上的不用送给我吧,我也想玩一下,成本和运费我出(方便的话屏也一起) ...

屏我手上没有,就板子上面焊接了CPLD
屏幕是:http://item.taobao.com/item.htm?spm=a1z09.5.0.0.eHLfsk&id=3871984886这家的

atonghua 发表于 2013-11-8 11:07:52

强烈支持楼主!!!

atonghua 发表于 2013-11-8 11:08:11

强烈支持楼主!!!

河Elvis 发表于 2013-11-8 12:03:00

我用的是Quartus II 7.2软件,怎么打不开工程文件呢?是不是版本问题?

sblpp 发表于 2013-11-8 12:43:05

hyghyg1234 发表于 2013-11-7 17:51 static/image/common/back.gif
我已经调好了,有硬件水平和垂直加速,刷屏速度挺快的

直接使用这个源码还是修改了啊?
能分享下你的源码吗?
谢谢!

hyghyg1234 发表于 2013-11-8 12:49:00

sblpp 发表于 2013-11-8 12:43 static/image/common/back.gif
直接使用这个源码还是修改了啊?
能分享下你的源码吗?
谢谢!

不用修改的,我找下我跑ucgui的程序

hyghyg1234 发表于 2013-11-8 12:50:59

sblpp 发表于 2013-11-8 12:43 static/image/common/back.gif
直接使用这个源码还是修改了啊?
能分享下你的源码吗?
谢谢!

http://pan.baidu.com/share/link?shareid=482209303&uk=520913075你试试看

VVVVIP123 发表于 2013-11-8 13:15:35


mark               cpld+sram lcd驱动

yinian 发表于 2013-11-8 13:28:21

请问楼主,我看一个是arm, 一个是cpld,
请问实现这个功能是否还需要那个arm呢,
还是给出的arm仅是一个参考,只用cpld就能实现?
谢谢啊!

yinian 发表于 2013-11-8 14:28:11

另外,请问楼主 stm32的开发板用的是哪一个商家的呢,最近也想了解下,
能否给个介绍,谢谢

jinfen 发表于 2013-11-8 14:54:03

mark         支持一个

jianfengxixi 发表于 2013-11-8 18:03:21

河Elvis 发表于 2013-11-8 12:03 static/image/common/back.gif
我用的是Quartus II 7.2软件,怎么打不开工程文件呢?是不是版本问题?

我用的quartusii 13.0
代码:tft43_test.v
管脚定义:tft43.tcl

jianfengxixi 发表于 2013-11-8 18:06:39

yinian 发表于 2013-11-8 14:28 static/image/common/back.gif
另外,请问楼主 stm32的开发板用的是哪一个商家的呢,最近也想了解下,
能否给个介绍,谢谢 ...

别的单片机也可以
stm32开发板是HY-STM32

Oliver 发表于 2013-11-29 20:03:59

攒楼主,做得不错.

不过做产品的话不如找我买一个,也就几十块钱的事,全部做好了的

marshallemon 发表于 2013-11-29 20:25:39

不加屏和PCB,成本多少?

yinian 发表于 2013-11-29 20:32:43

没来想用fpga读SDHC开,然后再在液晶上显示,查了下资料原来读SDHC就是一个技术难点,无奈新手,不知如何下手

请问谁有fpga读SDHC的例程呢,谢谢

jianfengxixi 发表于 2013-11-29 21:32:41

Oliver 发表于 2013-11-29 20:03
攒楼主,做得不错.

不过做产品的话不如找我买一个,也就几十块钱的事,全部做好了的 ...

这个只是自己玩玩{:smile:}

jianfengxixi 发表于 2013-11-29 21:35:36

marshallemon 发表于 2013-11-29 20:25
不加屏和PCB,成本多少?

所有元件加起来30块左右

jianfengxixi 发表于 2013-11-29 21:43:51

yinian 发表于 2013-11-29 20:32
没来想用fpga读SDHC开,然后再在液晶上显示,查了下资料原来读SDHC就是一个技术难点,无奈新手,不知如何下 ...

FPGA读写SDHC卡我也没弄过
DE2-115的资料中好像有个SD CARD的demo,可以参考一下
另外网上的例程还是比较多的,可以搜索一下

推荐一位大婶的博客:http://www.cnblogs.com/oomusou/category/110932.html

Oliver 发表于 2013-11-29 21:55:47

jianfengxixi 发表于 2013-11-29 21:43
FPGA读写SDHC卡我也没弄过
DE2-115的资料中好像有个SD CARD的demo,可以参考一下
另外网上的例程还是比较 ...

这个比较麻烦,因为读了SDHC是不是也要FAT了呢,对MCU简单,要么NIOS吧

yinian 发表于 2013-11-29 22:16:02

Oliver 发表于 2013-11-29 21:55
这个比较麻烦,因为读了SDHC是不是也要FAT了呢,对MCU简单,要么NIOS吧

是的,涉及到 fat32 格式

jianfengxixi 发表于 2013-11-29 23:00:05

Oliver 发表于 2013-11-29 21:55
这个比较麻烦,因为读了SDHC是不是也要FAT了呢,对MCU简单,要么NIOS吧

自己写个ip挂到avalon总线上,熟悉SD协议的话应该不难
数据缓冲加个FIFO
然后在NIOSII中就像在单片机上一样了,写好底层驱动接口,移植个fatfs就OK了

yinian 发表于 2013-11-29 23:21:14

嗯,是个思路,明天查下资料,谢谢

marshallemon 发表于 2013-11-30 09:06:45

jianfengxixi 发表于 2013-11-29 21:35
所有元件加起来30块左右

问一个小白的问题,使用这种MCU+CPLD+SRAM和直接使用MCU驱动的优势在哪里?是屏的刷新速度吗?能有多大的提升?

jianfengxixi 发表于 2013-11-30 09:10:35

marshallemon 发表于 2013-11-30 09:06
问一个小白的问题,使用这种MCU+CPLD+SRAM和直接使用MCU驱动的优势在哪里?是屏的刷新速度吗?能有多大的 ...

MCU一般不带RGB接口的{:smile:}

marshallemon 发表于 2013-11-30 09:16:01

jianfengxixi 发表于 2013-11-30 09:10
MCU一般不带RGB接口的

哦,看来我没搞清这LCD的种类,你的意思是使用这种方法的优势就是完成LCD的控制器?我还以为使用这种架构会比直接使用MCU刷速度快

eaglelpx 发表于 2013-11-30 10:39:44

果断MARK下

Oliver 发表于 2013-12-3 19:26:26

marshallemon 发表于 2013-11-30 09:16
哦,看来我没搞清这LCD的种类,你的意思是使用这种方法的优势就是完成LCD的控制器?我还以为使用这种架构 ...

速度差不多,但如果CPU带LCD驱动那会比外部总线快.
用FPGA主要是稳定性更好,1963,8875总是有这里那里的不如意.

单纯从从经济角度看FPGA方案已经无优势了

gongshu 发表于 2013-12-4 23:05:24

赞赞赞 楼主威武

Nexus 发表于 2013-12-4 23:10:39

你这两个stm32和cpld的通信用的是?

pygh 发表于 2013-12-16 08:53:14

                                                   ExAddrBus <= {WritePage ,({RegY,8'd0} +
                                               {1'd0,RegY,7'd0} +
                                               {2'd0,RegY,6'd0} +
                                               {3'd0,RegY,5'd0} +
                                               {8'd0,RegX})};
咨询一下楼主,这一段SRAM地址拼接代码,我需要如何理解?多谢!

jianfengxixi 发表于 2013-12-16 08:58:00

pygh 发表于 2013-12-16 08:53
ExAddrBus

ExAddrBus = WritePage * 2^17 + RegY*480 + RegX

tschennan 发表于 2013-12-18 08:48:40

不错,顶一个,支持楼主{:biggrin:}

luanshifanhua 发表于 2014-1-19 11:14:20

顶一个。

autodo 发表于 2014-1-25 13:35:12

相当不错。










gongping 发表于 2014-1-26 08:30:35

好东西,长见识了!

我爱电子制作 发表于 2014-1-26 08:53:53

mark,需要的时候来获取。thank you!

forschumi 发表于 2014-2-2 20:24:21

MARK一下啊,我正在要做这个东东,但是,现在只是直接采用的RGB接口转CPU接口的芯片采用STM32驱动的,要学习一下你的FPGA~谢谢

bhqz 发表于 2014-2-2 23:44:18

太给力了

nicotinecys 发表于 2014-2-14 15:53:12

不错的资料

机器人天空 发表于 2014-3-18 15:10:40

mark.......
页: [1] 2
查看完整版本: 发一个我做的CPLD+SRAM驱动4.3寸TFT控制器