таблица символов для LCM-S01602DTR

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Вымогатель припоя
Аватара пользователя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

Сообщение dimitriy91 »

Всем привет. Скачал официальный даташит на LCM-S01602DTR, в нём отсутствует таблица с символами и адреса регистров, для программирования LCD контроллера. Глупый вопрос- где их взять??? Смотрю аналогичные контроллеры, там всё хорошо описано.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20102
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

По распиновке похоже на обычный 44780.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

Сообщение dimitriy91 »

Их много таких же по распиновки , но гарантии нету. Придётся пробовать методом тыка.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Вымогатель припоя
Аватара пользователя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

Сообщение dimitriy91 »

Всё равно спасибо.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 20102
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

1. The ML403 board has a 16-character x 2-line LCD (Lumex LCM-S01602DTR/M) on the board to display text information. The data interface to the LCD is connected to the FPGA to support 4-bit mode only. We will create the new peripheral to handle the hardware interface to the LCD. To simplify the code, only writing to the LCD will be supported.
Стр.2 http://www.cosmiac.org/pdfs/07_Adding_Custom_IP_Lab.pdf

На 7-ой странице инициализация, вроде похожа на 44780.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

Сообщение dimitriy91 »

Спасибо, буду пробовать.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

Сообщение dimitriy91 »

Один ... ( всё равно) не работает.
clk_lcd = 50 us;

Код: Выделить всё

init_lcd : process
variable delay : integer ;
variable i: integer := 1;
variable nibble_wr : integer := 0;
begin
wait until rising_edge(clk_lcd);
case state is
when power_on_wait_40_ms  =>

delay := 800;
lcd_rs <= '0';
lcd_rw <= '0'; 
lcd_e  <= '1';
if i = delay then
state <= function_set;
i := 1;
else
i := i + 1;
end if;

when function_set  =>

if nibble_wr = 1 then
lcd_data <= x"2";
lcd_e  <= '1';
nibble_wr := 2;
elsif nibble_wr = 2 then 
lcd_e  <= '0';
nibble_wr := 3;
elsif nibble_wr = 3 then 
lcd_data <= x"2";
lcd_e  <= '1';
nibble_wr := 4;
elsif nibble_wr = 4 then 
lcd_e  <= '0';
nibble_wr := 5;
elsif nibble_wr = 5 then 
lcd_data <= x"0";
lcd_e  <= '1';
nibble_wr := 6;
elsif nibble_wr = 6 then 
lcd_e  <= '0';
nibble_wr := 1;
state <= function_set_wait_50_us;
end if;

when function_set_wait_50_us  =>

lcd_e  <= '1';
state <= display_on_off;

when display_on_off  =>

if nibble_wr = 1 then
lcd_data <= x"0";
lcd_e  <= '1';
nibble_wr := 2;
elsif nibble_wr = 2 then 
lcd_e  <= '0';
nibble_wr := 3;
elsif nibble_wr = 3 then 
lcd_data <= x"c";
lcd_e  <= '1';
nibble_wr := 4;
elsif nibble_wr = 4 then 
lcd_e  <= '0';
nibble_wr := 1;
state <= display_on_off_wait_50_us;
end if;

when display_on_off_wait_50_us  =>

lcd_e  <= '1';
state <= display_clear;

when display_clear  =>

if nibble_wr = 1 then
lcd_data <= x"0";
lcd_e  <= '1';
nibble_wr := 2;
elsif nibble_wr = 2 then 
lcd_e  <= '0';
nibble_wr := 3;
elsif nibble_wr = 3 then 
lcd_data <= x"1";
lcd_e  <= '1';
nibble_wr := 4;
elsif nibble_wr = 4 then 
lcd_e  <= '0';
nibble_wr := 1;
state <= display_clear_wait_2_ms;
end if;

when display_clear_wait_2_ms  =>

delay := 40;
lcd_rs <= '0';
lcd_rw <= '0'; 
lcd_e  <= '1';
if i = delay then
state <= entry_mode_set;
i := 1;
else
i := i + 1;
end if;


when entry_mode_set  =>

if nibble_wr = 1 then
lcd_data <= x"0";
lcd_e  <= '1';
nibble_wr := 2;
elsif nibble_wr = 2 then 
lcd_e  <= '0';
nibble_wr := 3;
elsif nibble_wr = 3 then 
lcd_data <= x"6";
lcd_e  <= '1';
nibble_wr := 4;
elsif nibble_wr = 4 then 
lcd_e  <= '0';
nibble_wr := 1;
state <= entry_mode_set_delay;
end if;

when entry_mode_set_delay =>

delay := 40;
lcd_rs <= '0';
lcd_rw <= '0'; 
lcd_e  <= '1';
if i = delay then
state <= display_comand;
i := 1;
else
i := i + 1;
end if;

when display_comand  =>

led_c <= '1';
lcd_rs <= '0';
if nibble_wr = 1 then
lcd_data <= x"1";
lcd_e  <= '1';
nibble_wr := 2;
elsif nibble_wr = 2 then 
lcd_e  <= '0';
nibble_wr := 3;
elsif nibble_wr = 3 then 
lcd_data <= x"0";
lcd_e  <= '1';
nibble_wr := 4;
elsif nibble_wr = 4 then 
lcd_e  <= '0';
nibble_wr := 1;
state <= display_data;
end if;

when display_data  =>
led_n <= '1';
lcd_rs <= '1';
if nibble_wr = 1 then
lcd_data <= x"3";
lcd_e  <= '1';
nibble_wr := 2;
elsif nibble_wr = 2 then 
lcd_e  <= '0';
nibble_wr := 3;
elsif nibble_wr = 3 then 
lcd_data <= x"0";
lcd_e  <= '1';
nibble_wr := 4;
elsif nibble_wr = 4 then 
lcd_e  <= '0';
nibble_wr := 1;
state <= display_comand;
end if;

end case;


end process;
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Ответить

Вернуться в «Периферия»