Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Графический LCD (glcd)

Непрочитано 31.07.2010, 17:48  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
Смущение Графический LCD (glcd)

Недавно купил себе графический дисплей(glcd) WG12232F 122x32 точек. (контроллер SED1520)
Выводов там 16

1. /VLED подсетка светодиодами (единствинное что точно работает, проверил)
2. Vss земля
3. Vdd +5V
4. Vo управление контрасностью дисплея
5. A0 (H: Display Data; L: Instructrions) Инструкции
6. E1 (Chip Enable for U1 (Segment 1 ~ 61)) выбор контроллера
7. E2 //-//
8. DB0 шина ввода/вывода
9. DB1
10. DB2
11. DB3
12. DB4
13. DB5
14. DB6
15. DB7
16. R/W Вход управляющего сигнала чтения/записи

Теперь проблема:
как инициализировать дисплей если нет RES (reset).
Например для RES где то так
RES=1;
delay_ms(20);//задержка
RES=0;
delay_ms(20);
RES=1;

Есть команда для сброса (RESET)
A0 RD WR D7 D6 D5 D4 D3 D2 D1 D0
0 1 0 1 1 1 0 0 0 1 0


Но я прочитал следующее

Операция сброса следует за вводом команды Сброс.
A0 RD WR D7 D6 D5 D4 D3 D2 D1 D0
0 1 0 1 1 1 0 0 0 1 0


Инициализация при включении питания производится не по команде Сброс, а по сигналу на выводе RES.
Реклама:
jobfly вне форума  
Непрочитано 31.07.2010, 18:01  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

После включения питания, первой коммандой для контроллеря и должна быть комманда сброса. После неё - или задержка или ожидание готовности. Дальше - все остальные операции.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 31.07.2010, 18:25  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от MisterDi Посмотреть сообщение
После включения питания, первой коммандой для контроллеря и должна быть комманда сброса. После неё - или задержка или ожидание готовности. Дальше - все остальные операции.
Спасибо.

Я не совсем понял как подать команду, например сброса, если у меня вывод R/W один, а в data sheet там указано RD=1 и WR=0.
jobfly вне форума  
Непрочитано 31.07.2010, 18:32  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

R/W = 1 чтение, R/W = 0 запись. Т.о. A0 - 0, R/W - 0 =› запись команды. См. раздел 2.3.1.2 Table 2 в даташите.
realid вне форума  
Сказали "Спасибо" realid
jobfly (31.07.2010)
Непрочитано 31.07.2010, 18:56  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от realid Посмотреть сообщение
R/W = 1 чтение, R/W = 0 запись. Т.о. A0 - 0, R/W - 0 =› запись команды. См. раздел 2.3.1.2 Table 2 в даташите.
Да есть такое в data sheet

Также там есть порядок инициализации

Инициализация:
Изображение выкл.
Регистр начальной строки изображения: Первая строка.
Статическое управление выкл.
Счётчик адреса столбца: Адрес 0.
Регистр адреса страницы: Страница 0.
Выбрать скважность: 1/32.
Выбрать АЦП: Вперёд (Команда АЦП D0═=═"0", флаг состояния АЦП =═"1").
Чтение модификация запись выкл.


(взято с сайта http://www.gaw.ru/html.cgi/txt/lcd/chips/sed1520/3.htm)

после инициализации что я увижу на дисплее?
мне хотелось хоть бы точку
какие нужно команди ?
jobfly вне форума  
Непрочитано 31.07.2010, 19:54  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Посмотрите здесь
http://en.radzio.dxp.pl/sed1520/
st_1 вне форума  
Сказали "Спасибо" st_1
jobfly (31.07.2010)
Непрочитано 31.07.2010, 22:33  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от MisterDi Посмотреть сообщение
После включения питания, первой коммандой для контроллеря и должна быть комманда сброса. После неё - или задержка или ожидание готовности. Дальше - все остальные операции.
Сообщение от st_1 Посмотреть сообщение
Посмотрите здесь
http://en.radzio.dxp.pl/sed1520/
Библиотеку для glcd скачал
код хорошо написан. Буду пробовать.
jobfly вне форума  
Непрочитано 01.08.2010, 17:47  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от jobfly Посмотреть сообщение
Посмотрите здесь
http://en.radzio.dxp.pl/sed1520/
разбирал код. Я так понял что мне нужно запустить GLCD_Init()
Код:
void GLCD_Init(void)
{
GLCD_InitPorts();
GLCD_WriteCommand(RESET, 0);
GLCD_WriteCommand(RESET, 1);
GLCD_WaitForStatus(0x10, 0);
GLCD_WaitForStatus(0x10, 1);
GLCD_WriteCommand(DISPLAY_ON, 0);
GLCD_WriteCommand(DISPLAY_ON, 1);
GLCD_WriteCommand(DISPLAY_START_LINE | 0, 0);
GLCD_WriteCommand(DISPLAY_START_LINE | 0, 1);
}
но в GLCD_InitPorts(); я не понял: нужно ли мне подавать сброс reset

Код:
void GLCD_InitPorts(void)
{
SED1520_DATA_DDR = 0xFF;

SED1520_CONTROL_DDR |= (SED1520_E2 | SED1520_E1 | SED1520_RW | SED1520_A0 | SED1520_RES);
_delay_ms(10);
SED1520_CONTROL_PORT |= SED1520_RES;

}
у меня нет вывода RES, поетому сброс происходит при включении питания. Так здесь мне команду для сброса писать или уже не нужно?
jobfly вне форума  
Непрочитано 01.08.2010, 18:34  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

В вашем случае никакой разницы, можете закрыть коментом, можете оставить.
После того как запустите, можете почистить всё связанное с res, заодно и 1 ногу МК освободите.
st_1 вне форума  
Сказали "Спасибо" st_1
jobfly (01.08.2010)
Непрочитано 01.08.2010, 20:28  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от st_1 Посмотреть сообщение
В вашем случае никакой разницы, можете закрыть коментом, можете оставить.
После того как запустите, можете почистить всё связанное с res, заодно и 1 ногу МК освободите
Сделал для дисплея AGM1232G (похож на WG12232 ), он также на базе контроллера sed1520 (но там есть RES)

(все команды тежи, поменял только порты DATA на PORTB)
Код:
#define SED1520_DATA_PORT 	PORTB

#define SED1520_DATA_DDR 	DDRB

#define SED1520_DATA_PIN 	PINB



#define SED1520_CONTROL_PORT 	PORTC

#define SED1520_CONTROL_DDR 	DDRC



#define SED1520_A0 (1 ‹‹ 4)

#define SED1520_E1 (1 ‹‹ 0)

#define SED1520_E2 (1 ‹‹ 1)

#define SED1520_RW (1 ‹‹ 3)

#define SED1520_RES (1 ‹‹ 5)
перекинул все под CodevisionAvr
подключил в PROTEUS 7. Сделал вывод двух точек. Но на екране LCD ничего

посмотрите код

что я не так делаю

Код:
...

void GLCD_Init(void)

{

GLCD_InitPorts();


GLCD_WriteCommand(RESET, 0);

GLCD_WriteCommand(RESET, 1);  


GLCD_WaitForStatus(0x10, 0);

GLCD_WaitForStatus(0x10, 1);

GLCD_WriteCommand(DISPLAY_ON, 0);

GLCD_WriteCommand(DISPLAY_ON, 1);

GLCD_WriteCommand(DISPLAY_START_LINE | 0, 0);

GLCD_WriteCommand(DISPLAY_START_LINE | 0, 1);
   
} 

...

void main(void)
{



// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

       GLCD_Init();

while (1)
      {
       
       delay_ms(1000); 
            GLCD_SetPixel(0,0,1); 
            delay_ms(100); 
            GLCD_SetPixel(2,3,0); 
            delay_ms(1000); 
            
      }
}
Вложения:
Тип файла: rar avr2_5.rar (30.6 Кб, 111 просмотров)

Последний раз редактировалось jobfly; 01.08.2010 в 22:09.
jobfly вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
мигание цифры на LCD begun Микроконтроллеры, АЦП, память и т.д 8 15.03.2010 23:28
lcd TM9867 Борис Поиск схем. Делимся схемами 3 10.03.2010 23:03
Mega128 PORTF -- LCD 16x2 freonSZ Микроконтроллеры, АЦП, память и т.д 12 13.02.2010 16:32
AVR и LCD begun Микроконтроллеры, АЦП, память и т.д 5 24.01.2010 01:12
Подключение LCD дисплея utyfwdfkb Информация по радиокомпонентам 8 31.10.2009 01:34


Часовой пояс GMT +4, время: 22:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.