FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-11-2005, 06:01 PM
Benjamin Menküc
Guest
 
Posts: n/a
Default lcd controller - how to realize it?

Hi,

I want to write an interface in vhdl for a HD44780 LCD Controller. What
is the best methodology to do that? Moore-Automat? How should I realize
the neccessary wait operations? Especially the initialization of the LCD
requires about 7 steps to be performed in order with some waits in
between....

regards,
Benjamin
Reply With Quote
  #2 (permalink)  
Old 04-11-2005, 07:02 PM
Elektro
Guest
 
Posts: n/a
Default Re: lcd controller - how to realize it?

I made an interface with PicoBlaze (made the interface in assembler). It was
for a project at school.

"Benjamin Menküc" <[email protected]> skrev i meddelandet
news:[email protected]
> Hi,
>
> I want to write an interface in vhdl for a HD44780 LCD Controller. What
> is the best methodology to do that? Moore-Automat? How should I realize
> the neccessary wait operations? Especially the initialization of the LCD
> requires about 7 steps to be performed in order with some waits in
> between....
>
> regards,
> Benjamin



Reply With Quote
  #3 (permalink)  
Old 04-11-2005, 07:15 PM
Benjamin Menküc
Guest
 
Posts: n/a
Default Re: lcd controller - how to realize it?

Hi Elektro,

In my design I dont have no processor, therefore I am not sure if it is
worth is setting up a processor just for the lcd...

A good thing would be a little place in the ram, where I write my two
lcd lines and a seperate process that writes the lines to the lcd each
time something in the lcd-ram-area changes.

Maybe a moore state machine would be the right solution....

regards,
Benjamin
Reply With Quote
  #4 (permalink)  
Old 04-11-2005, 07:19 PM
Elektro
Guest
 
Posts: n/a
Default Re: lcd controller - how to realize it?

Look here:

http://www10.dacafe.com/book/parse_b...ICE/index.html

This gave me some ideas to implement an interface to a circuit that required
some steps to initialize and then a loop to get some values from.



I made a state machine that executed instructions from a ROM. Maybe you
could do it like that?
"Benjamin Menküc" <[email protected]> skrev i meddelandet
news:[email protected]
> Hi Elektro,
>
> In my design I dont have no processor, therefore I am not sure if it is
> worth is setting up a processor just for the lcd...
>
> A good thing would be a little place in the ram, where I write my two
> lcd lines and a seperate process that writes the lines to the lcd each
> time something in the lcd-ram-area changes.
>
> Maybe a moore state machine would be the right solution....
>
> regards,
> Benjamin



Reply With Quote
  #5 (permalink)  
Old 04-11-2005, 09:26 PM
Benjamin Menküc
Guest
 
Posts: n/a
Default Re: lcd controller - how to realize it?

Hi,

I have now my first layout of my lcd state machine ready. Any comments
and hints are welcome.

regards,
Benjamin

entity lcd is
port
(
clk : in STD_LOGIC;
Rst : in STD_LOGIC;
LCD_da : out STD_LOGIC_vector(7 downto 0);
LCD_en: out STD_LOGIC;
LCD_re: out STD_LOGIC
);
end lcd;

architecture Behavioral of lcd is
signal x: std_logic;
signal arg : std_logic;
type Zustaende is (init1,init2,init3);
signal akt_zustand,naechster_zustand:Zustaende;
signal sending,go_send:std_logic;
--signal count: integer;
begin

NZrocess(akt_zustand,arg)
begin
case akt_zustand is
when init1 =>
naechster_zustand<=init2;
when init2 =>
naechster_zustand<=init3;
when init3 =>
naechster_zustand<=init1;
end case;
end process;

Zrocess(clk,rst)
begin
if sending = '1' then akt_zustand <= akt_zustand; -- wait if still sending
elsif rst='1' then akt_zustand<=init1;
elsif clk'event and clk='1' then
akt_zustand<=naechster_zustand;
end if;
end process;

Arocess(akt_zustand)
begin
if sending = '0' then -- don't change outputs if they are already set
(otherwise go_send would never go 0)
case akt_zustand is
when init1 => x<='0'; LCD_re <= '0'; go_send <= '1';
when init2 => x<='0'; LCD_re <= '0'; go_send <= '1';
when init3 => x<='0'; LCD_re <= '0'; go_send <= '1';
end case;
end if;
end process;

sendbyterocess(go_send)
begin
if go_send = '1' then
sending <= '1';
LCD_en <= '1';
--- wait for some CLKs maybe I have to use a counter here...
LCD_en <= '0';
sending <= '0';
go_send <= '0';
end if;
end process;

end Behavioral;
Reply With Quote
  #6 (permalink)  
Old 04-11-2005, 10:56 PM
info_
Guest
 
Posts: n/a
Default Re: lcd controller - how to realize it?

Why don't you get it at :

http://www.alse-fr.com/English/ips.html

Free, works very nicely, and does a lot of the ugly
and slow sequency required by these old drivers.

Bert Cuzeau


Benjamin Menküc wrote:

> Hi,
>
> I want to write an interface in vhdl for a HD44780 LCD Controller. What
> is the best methodology to do that? Moore-Automat? How should I realize
> the neccessary wait operations? Especially the initialization of the LCD
> requires about 7 steps to be performed in order with some waits in
> between....
>
> regards,
> Benjamin

Reply With Quote
  #7 (permalink)  
Old 04-12-2005, 12:16 AM
Benjamin Menküc
Guest
 
Posts: n/a
Default Re: lcd controller - how to realize it?

Hi,

very nice, that is exactly what I am looking for.

Thank You!

regards,
Benjamin
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Controller Interface ALuPin FPGA 0 12-01-2004 05:15 PM
OPB PS2 Controller msd FPGA 0 11-29-2004 11:27 PM
CAN Controller mihau FPGA 1 08-06-2004 10:13 PM


All times are GMT +1. The time now is 11:27 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved