搜索
bottom↓
回复: 144

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

  [复制链接]

出0入0汤圆

发表于 2013-8-30 18:00:55 | 显示全部楼层 |阅读模式
断断续续地学了verilog HDL和FPGA一段时间,一直没有完整的做一个东西,看到论坛上有做TFT控制器的,于是就仿制了一个
主要参考“dzng11”做的,链接如下
http://www.amobbs.com/forum.php? ... 4%E5%A5%89%E7%8C%AE

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入90汤圆

发表于 2013-8-30 18:08:07 | 显示全部楼层
这是个好资料!支持楼主开源!我先顶一个

出0入0汤圆

发表于 2013-8-30 18:11:48 | 显示全部楼层
不错啊!

出0入0汤圆

发表于 2013-8-30 19:47:51 | 显示全部楼层
这个要顶   

出0入0汤圆

发表于 2013-8-30 19:58:21 | 显示全部楼层
非常感谢

出0入0汤圆

发表于 2013-8-30 20:08:42 来自手机 | 显示全部楼层
mark









出0入0汤圆

发表于 2013-8-30 20:41:46 | 显示全部楼层
不错要顶上去

出0入0汤圆

发表于 2013-8-30 21:36:47 | 显示全部楼层
Oh my god,Perfect.

Thank you.

出0入0汤圆

发表于 2013-8-30 21:38:22 | 显示全部楼层
这个好呀,下载来看看,研究一下。

出50入0汤圆

发表于 2013-8-30 22:03:31 | 显示全部楼层
好资料,必须顶!感谢分享

出0入0汤圆

发表于 2013-8-30 22:06:21 来自手机 | 显示全部楼层
要要要…定

出0入0汤圆

发表于 2013-8-30 22:16:17 | 显示全部楼层
楼主我顶你了,谢谢给大家分享                                                                                                                     

出0入0汤圆

发表于 2013-8-30 22:33:08 | 显示全部楼层
有没硬件加速画水平竖直以及斜线线,画块功能?

出0入0汤圆

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

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

出0入0汤圆

发表于 2013-8-30 23:10:05 | 显示全部楼层
请问楼主,这个与用一块芯片来驱动LCD有何区别?
有何优势?
真心不懂,望解答

出0入0汤圆

 楼主| 发表于 2013-8-30 23:53:51 | 显示全部楼层
ghostxdy 发表于 2013-8-30 23:10
请问楼主,这个与用一块芯片来驱动LCD有何区别?
有何优势?
真心不懂,望解答

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

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

出0入0汤圆

发表于 2013-8-30 23:58:48 | 显示全部楼层

出0入0汤圆

发表于 2013-9-1 12:03:37 | 显示全部楼层
感谢楼主!我有个PSP3的屏最近打算用起来,这回更有信心了。

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

出130入20汤圆

发表于 2013-9-1 12:06:43 | 显示全部楼层
不错,顶楼主

出0入0汤圆

 楼主| 发表于 2013-9-1 12:18:53 | 显示全部楼层
tonyg 发表于 2013-9-1 12:03
感谢楼主!我有个PSP3的屏最近打算用起来,这回更有信心了。

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

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

出0入0汤圆

发表于 2013-9-1 12:40:01 | 显示全部楼层
赞一个,一直想玩,楼主有没有空板要转?

出0入0汤圆

发表于 2013-9-1 12:51:50 | 显示全部楼层
jianfengxixi 发表于 2013-9-1 12:18
stm32就一个原理图和一个工程的压缩包,刚才试了下,都可以下载啊!

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

再次感谢楼主!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-9-1 20:06:14 | 显示全部楼层
hunningtu 发表于 2013-9-1 12:40
赞一个,一直想玩,楼主有没有空板要转?

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

出0入0汤圆

发表于 2013-9-1 20:26:33 | 显示全部楼层
jianfengxixi 发表于 2013-9-1 20:06
一共打样了7块,自己焊2块(只买了2套元件),还有5块空板,要的话付个邮费我发给你 ...

多谢,需要再联系你。

出0入0汤圆

发表于 2013-9-5 10:02:33 | 显示全部楼层
jianfengxixi 发表于 2013-9-1 20:06
一共打样了7块,自己焊2块(只买了2套元件),还有5块空板,要的话付个邮费我发给你 ...

楼主还有pcb没,可否给1片。

出0入0汤圆

发表于 2013-9-5 12:13:47 | 显示全部楼层
好资料,楼主还有空板子吗

出0入0汤圆

 楼主| 发表于 2013-9-5 15:54:47 | 显示全部楼层
b57203493 发表于 2013-9-5 10:02
楼主还有pcb没,可否给1片。

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

出0入0汤圆

发表于 2013-9-5 16:50:02 | 显示全部楼层
不错,帮顶。

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

出0入0汤圆

 楼主| 发表于 2013-9-5 16:57:31 | 显示全部楼层
rifjft 发表于 2013-9-5 16:50
不错,帮顶。

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

CAT4237还剩2片

出90入372汤圆

发表于 2013-9-5 17:00:32 | 显示全部楼层
支持  顶楼主!

出0入0汤圆

发表于 2013-9-5 17:25:17 | 显示全部楼层
jianfengxixi 发表于 2013-9-5 15:54
已发顺丰到付,请注意查收

谢谢了。
万分感谢。

出0入0汤圆

发表于 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[2:0];
                        else
                        begin
                                ExWrData <= ExDataBus;
                                ExWrClk <= ~ExWrClk;
                        end
        end

出0入0汤圆

 楼主| 发表于 2013-10-8 12:46:22 来自手机 | 显示全部楼层
你是用杜邦线连的吗?
如果是的话,多连几根GND线试试

出0入0汤圆

发表于 2013-10-10 20:35:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-10-10 21:57:17 | 显示全部楼层
jianfengxixi 发表于 2013-9-5 15:54
已发顺丰到付,请注意查收

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

出0入0汤圆

 楼主| 发表于 2013-10-10 23:58:20 | 显示全部楼层
fy024 发表于 2013-10-10 21:57
还有空板子吗?可否赠送一块

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

出0入0汤圆

发表于 2013-10-11 00:00:29 | 显示全部楼层
jianfengxixi 发表于 2013-10-10 23:58
还有一块,顺丰到付可否?

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

出0入0汤圆

发表于 2013-10-11 13:58:12 | 显示全部楼层
楼主还有空板吗?送我一块!!

出0入0汤圆

发表于 2013-10-11 14:06:02 | 显示全部楼层

不错,顶楼主

出0入0汤圆

发表于 2013-10-11 14:12:56 来自手机 | 显示全部楼层
mark           必须顶下

出0入0汤圆

 楼主| 发表于 2013-10-11 16:19:02 | 显示全部楼层
LVmcu 发表于 2013-10-11 13:58
楼主还有空板吗?送我一块!!

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

出0入0汤圆

发表于 2013-10-16 02:16:45 | 显示全部楼层
jianfengxixi 发表于 2013-10-11 16:19
没有了,最后一块发给你楼上了

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

出0入0汤圆

发表于 2013-10-16 05:59:28 | 显示全部楼层
这是一个好东西,必须mark

出0入0汤圆

发表于 2013-10-20 22:14:29 | 显示全部楼层
帮lz顶起,正在啃cpld代码中。

出0入0汤圆

发表于 2013-10-21 19:43:56 | 显示全部楼层

                end
                RGB_Q <= (SysCmdValue_Q[3])?16'd0:RamDataBus;
                SramAddr[12:4] <= YRegValue_Q[8:0];
                SramAddr[3:0] <= XRegValue_Q[8:5];
                RamAddrBus_Q[4:0] <= XRegValue_Q[4:0];
                RamAddrBus_Q[17] <= SysCmdValue_Q[7];
            end else begin
                if (AskWr) begin
                    WrEn_Q <= 1'b1;
                end
                ExBusOut_Q <= RamDataBus;
                SramAddr[12:4] <= HsCount_Q[8:0];
                SramAddr[3:0] <= DotCount_Q[8:5];
                RamAddrBus_Q[4:0] <= DotCount_Q[4:0];
                RamAddrBus_Q[17] <= SelDispRam_Q;
            end


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

出0入0汤圆

发表于 2013-10-22 08:50:43 | 显示全部楼层
下载了,感谢楼主奉献

出0入0汤圆

 楼主| 发表于 2013-10-22 11:47:23 | 显示全部楼层
sblpp 发表于 2013-10-21 19:43

                end
                RGB_Q

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

出0入0汤圆

发表于 2013-10-22 20:03:29 | 显示全部楼层
jianfengxixi 发表于 2013-10-22 11:47
我写的在tft43_test.v,tft43.v是网友写的

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

出0入0汤圆

 楼主| 发表于 2013-10-22 20:26:58 | 显示全部楼层
sblpp 发表于 2013-10-22 20:03
谢谢楼主分享!
你的代码比较简洁,赞一个先。
不过 是不是没有实现硬件加速啊?

有加速画水平线和竖线

出0入0汤圆

发表于 2013-10-23 14:29:57 | 显示全部楼层
突然想起我还有块版.等下也来弄弄.

出0入0汤圆

发表于 2013-10-23 14:34:16 | 显示全部楼层
太没毅力了.2年前我就做了,遇到点麻烦,就停了. 最近把他弄起来.

出0入0汤圆

发表于 2013-10-23 14:47:39 | 显示全部楼层
thzbigone 发表于 2013-10-23 14:34
太没毅力了.2年前我就做了,遇到点麻烦,就停了. 最近把他弄起来.

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

出0入0汤圆

发表于 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模式

       input  Clk, Emif_Ce2, Emif_Ce3, Emif_Awe;
       input  [3:0] Dsp_Address;                                //
       output Sram_Ce, Sram_Oe, Sram_We, Tft_Ck, Tft_Vs, Tft_Hs, Tft_En,TFT_Rl;
       output [17:0] Sram_Address, Tft_RGB;
       input  [8:0]  Dsp_Data;
       inout  [15:0] Sram_Data;
//接口          
           reg  Tft_Ck=0;                                            //Tft 时钟
           reg  Tft_En=0;                                                                                         //Tft ENAB模式,本例无效
           reg  Tft_Hs=0;                                                                                         //列时序
           reg  Tft_Vs=0;
           reg  TFT_Rl=1;                                                                                     //行时序
           reg  [17:0]Tft_RGB;
           reg  Sram_Oe;
           reg  Sram_We=0;
           reg  Sram_Ce=0;
           wire [17:0] Sram_Address;
       
          
          
//标志        
           reg  Mark_TftReady=0;                                                             //TFT 上电完成标志
           reg  Display_Valid=0;
//计数器
       reg  [18:0] Counter_Delay=0;                              // 延时计数器
       reg  [2:0]  Counter_FreqDiv=0;                            //分频计数器
       reg  [8:0]  Counter_TftVs;                                                                  //TFT行计数器
           reg  [8:0]  Counter_TftHs;                                                                 //TFT列计数器
//临时寄存器       
       reg  [17:0] Temp_SramAddrW=0;
       reg  [17:0] Temp_SramAddrR=0;
       reg  [15:0] 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[2:0]=3'b000;                //512色即可
                                           Tft_RGB[5:3]=Sram_Data[2:0];
                                           Tft_RGB[8:6]=3'b000;
                                           Tft_RGB[11:9]=Sram_Data[5:3];
                                           Tft_RGB[14:12]=3'b000;
                                           Tft_RGB[17:15]=Sram_Data[8:6];
                                        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[7:0]=Dsp_Data[7:0];
              end
                        4'b0001:
              begin
            
              end
                        4'b0010:
              begin
                                //Temp_SramAddrW=Dsp_Data*320+Temp_SramAddrW[7:0];
              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




过几天再继续完善。

出0入0汤圆

发表于 2013-11-7 16:11:28 | 显示全部楼层
本帖最后由 thzbigone 于 2013-11-7 16:27 编辑




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

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

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

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



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-11-7 17:47:55 | 显示全部楼层
LVmcu 发表于 2013-10-11 13:58
楼主还有空板吗?送我一块!!

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

出0入0汤圆

发表于 2013-11-7 17:51:02 | 显示全部楼层
sblpp 发表于 2013-10-22 20:03
谢谢楼主分享!
你的代码比较简洁,赞一个先。
不过 是不是没有实现硬件加速啊?

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

出0入0汤圆

发表于 2013-11-7 19:37:24 | 显示全部楼层
楼上的不用送给我吧,我也想玩一下,成本和运费我出(方便的话屏也一起)

出0入0汤圆

发表于 2013-11-7 19:51:02 | 显示全部楼层
好贴!!果断收藏。。

出0入0汤圆

发表于 2013-11-8 10:25:10 | 显示全部楼层
hyghyg1234 发表于 2013-11-7 17:47
我手上多一片,当时楼主送了我两片,上面焊了个CPLD

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

出0入0汤圆

发表于 2013-11-8 10:55:41 | 显示全部楼层
gginhouse 发表于 2013-11-7 19:37
楼上的不用送给我吧,我也想玩一下,成本和运费我出(方便的话屏也一起) ...

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

出0入0汤圆

发表于 2013-11-8 11:07:52 | 显示全部楼层
强烈支持楼主!!!

出0入0汤圆

发表于 2013-11-8 11:08:11 | 显示全部楼层
强烈支持楼主!!!

出0入0汤圆

发表于 2013-11-8 12:03:00 | 显示全部楼层
我用的是Quartus II 7.2软件,怎么打不开工程文件呢?是不是版本问题?

出0入0汤圆

发表于 2013-11-8 12:43:05 | 显示全部楼层
hyghyg1234 发表于 2013-11-7 17:51
我已经调好了,有硬件水平和垂直加速,刷屏速度挺快的

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

出0入0汤圆

发表于 2013-11-8 12:49:00 | 显示全部楼层
sblpp 发表于 2013-11-8 12:43
直接使用这个源码还是修改了啊?
能分享下你的源码吗?
谢谢!

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

出0入0汤圆

发表于 2013-11-8 12:50:59 | 显示全部楼层
sblpp 发表于 2013-11-8 12:43
直接使用这个源码还是修改了啊?
能分享下你的源码吗?
谢谢!

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

出0入0汤圆

发表于 2013-11-8 13:15:35 | 显示全部楼层

mark               cpld+sram lcd驱动

出0入0汤圆

发表于 2013-11-8 13:28:21 | 显示全部楼层
请问楼主,我看一个是arm, 一个是cpld,
请问实现这个功能是否还需要那个arm呢,
还是给出的arm仅是一个参考,只用cpld就能实现?
谢谢啊!

出0入0汤圆

发表于 2013-11-8 14:28:11 | 显示全部楼层
另外,请问楼主 stm32的开发板用的是哪一个商家的呢,最近也想了解下,
能否给个介绍,谢谢

出50入0汤圆

发表于 2013-11-8 14:54:03 | 显示全部楼层
mark           支持一个

出0入0汤圆

 楼主| 发表于 2013-11-8 18:03:21 | 显示全部楼层
河Elvis 发表于 2013-11-8 12:03
我用的是Quartus II 7.2软件,怎么打不开工程文件呢?是不是版本问题?

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

出0入0汤圆

 楼主| 发表于 2013-11-8 18:06:39 | 显示全部楼层
yinian 发表于 2013-11-8 14:28
另外,请问楼主 stm32的开发板用的是哪一个商家的呢,最近也想了解下,
能否给个介绍,谢谢 ...

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

出0入0汤圆

发表于 2013-11-29 20:03:59 | 显示全部楼层
攒楼主,做得不错.

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

出0入85汤圆

发表于 2013-11-29 20:25:39 | 显示全部楼层
不加屏和PCB,成本多少?

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 2013-11-29 21:32:41 | 显示全部楼层
Oliver 发表于 2013-11-29 20:03
攒楼主,做得不错.

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

这个只是自己玩玩

出0入0汤圆

 楼主| 发表于 2013-11-29 21:35:36 | 显示全部楼层
marshallemon 发表于 2013-11-29 20:25
不加屏和PCB,成本多少?

所有元件加起来30块左右

出0入0汤圆

 楼主| 发表于 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

出0入0汤圆

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

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

出0入0汤圆

发表于 2013-11-29 22:16:02 | 显示全部楼层
Oliver 发表于 2013-11-29 21:55
这个比较麻烦,因为读了SDHC是不是也要FAT了呢,对MCU简单,要么NIOS吧

是的,涉及到 fat32 格式

出0入0汤圆

 楼主| 发表于 2013-11-29 23:00:05 | 显示全部楼层
Oliver 发表于 2013-11-29 21:55
这个比较麻烦,因为读了SDHC是不是也要FAT了呢,对MCU简单,要么NIOS吧

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

出0入0汤圆

发表于 2013-11-29 23:21:14 | 显示全部楼层
嗯,是个思路,明天查下资料,谢谢

出0入85汤圆

发表于 2013-11-30 09:06:45 | 显示全部楼层
jianfengxixi 发表于 2013-11-29 21:35
所有元件加起来30块左右

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

出0入0汤圆

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

MCU一般不带RGB接口的

出0入85汤圆

发表于 2013-11-30 09:16:01 | 显示全部楼层
jianfengxixi 发表于 2013-11-30 09:10
MCU一般不带RGB接口的

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

出0入0汤圆

发表于 2013-11-30 10:39:44 | 显示全部楼层
果断MARK下

出0入0汤圆

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

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

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

出0入0汤圆

发表于 2013-12-4 23:05:24 | 显示全部楼层
赞赞赞 楼主威武

出0入0汤圆

发表于 2013-12-4 23:10:39 | 显示全部楼层
你这两个stm32和cpld的通信用的是?

出0入0汤圆

发表于 2013-12-16 08:53:14 | 显示全部楼层
                                                     ExAddrBus <= {WritePage ,({RegY[8:0],8'd0} +
                                                 {1'd0,RegY[8:0],7'd0} +
                                                 {2'd0,RegY[8:0],6'd0} +
                                                 {3'd0,RegY[8:0],5'd0} +
                                                 {8'd0,RegX[8:0]})};
咨询一下楼主,这一段SRAM地址拼接代码,我需要如何理解?多谢!

出0入0汤圆

 楼主| 发表于 2013-12-16 08:58:00 | 显示全部楼层

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

出0入0汤圆

发表于 2013-12-18 08:48:40 | 显示全部楼层
不错,顶一个,支持楼主

出0入0汤圆

发表于 2014-1-19 11:14:20 | 显示全部楼层
顶一个。

出0入0汤圆

发表于 2014-1-25 13:35:12 | 显示全部楼层
相当不错。










出0入0汤圆

发表于 2014-1-26 08:30:35 | 显示全部楼层
好东西,长见识了!

出0入0汤圆

发表于 2014-1-26 08:53:53 | 显示全部楼层
mark,需要的时候来获取。thank you!

出0入0汤圆

发表于 2014-2-2 20:24:21 | 显示全部楼层
MARK一下啊,我正在要做这个东东,但是,现在只是直接采用的RGB接口转CPU接口的芯片采用STM32驱动的,要学习一下你的FPGA~谢谢

出0入0汤圆

发表于 2014-2-2 23:44:18 | 显示全部楼层
太给力了

出0入0汤圆

发表于 2014-2-14 15:53:12 | 显示全部楼层
不错的资料

出0入0汤圆

发表于 2014-3-18 15:10:40 | 显示全部楼层
mark.......
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 05:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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