ATmega8535 + LCD WG12232 = светящийся кирпич (?)
- s_black
- Мучитель микросхем
- Сообщения: 411
- Зарегистрирован: Вс авг 10, 2008 19:35:49
- Откуда: Евпатория
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Что-то я не понимаю... По фотке видно, что подсветка у Вас запитана. Только не видно откуда она запитана?
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
На этом фото да, подсветка запитана. Проверял, что будет если подключить её...
Запитана от +5в.
Запитана от +5в.
- s_black
- Мучитель микросхем
- Сообщения: 411
- Зарегистрирован: Вс авг 10, 2008 19:35:49
- Откуда: Евпатория
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Johnson писал(а):Запитана от +5в.
Многовато... А источник насколько мощный?
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Где-то 200мА, от USB запитан.
Но, как я уже писал, если отключить 19 и 20 выводы - подсветка не пропадет.
А сам дисплей рассчитан на работу от +5в.
Но, как я уже писал, если отключить 19 и 20 выводы - подсветка не пропадет.
А сам дисплей рассчитан на работу от +5в.
- s_black
- Мучитель микросхем
- Сообщения: 411
- Зарегистрирован: Вс авг 10, 2008 19:35:49
- Откуда: Евпатория
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
USB потянет... Ищите ошибку сначала в монтаже, а потом (возможно) в программе. Понимаю, что Вы делали это сто раз, но , к сожалению, ничего другого посоветовать не могу.
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
В монтаже ошибок 100% нет. Проверял уже неоднократно... И напарник проверял.
В программе. Есть в программе ошибка, но я не знаю где. Делал инит и из ДШ, и из примеров разных...
Буду ждать и надеяться, что уважаемый shurikss123 выложит свой проект...
В программе. Есть в программе ошибка, но я не знаю где. Делал инит и из ДШ, и из примеров разных...
Буду ждать и надеяться, что уважаемый shurikss123 выложит свой проект...
- s_black
- Мучитель микросхем
- Сообщения: 411
- Зарегистрирован: Вс авг 10, 2008 19:35:49
- Откуда: Евпатория
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Попробуйте так. Подключите к дисплею только питание, корпус, контраст и 2 кГц. Покрутите движок подстроечника контраста. Что меняется?
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
не помню откуда но тоже спер. написано для atmega168
Скачать WG12232SED1520.tgz
Скачать WG12232SED1520.tgz
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Спасибо огромное!
Буду мучать, надеюсь хотя бы эта инициализация заработает...
Буду мучать, надеюсь хотя бы эта инициализация заработает...
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Не выходит...
У тебя другой дисплей. У моего один вход стробоимпульса и два входа выбора чипа.
У тебя два стробоимпульса и нет выбора чипа.
Попробовал инит по аналогии сделать - тот же результат...
Начинаю уже думать, что дисплей мертв...
Пытаюсь после резета читать ReadStatus в цикле и отображать его биты диодами.
После резета загорается RESET, через секунду одновременно ADC и BUSY, потом DISP_OFF.
И так остаются гореть постоянно...
Ерунда какая-то... Бесит уже этот дисплей.
У тебя другой дисплей. У моего один вход стробоимпульса и два входа выбора чипа.
У тебя два стробоимпульса и нет выбора чипа.
Попробовал инит по аналогии сделать - тот же результат...
Начинаю уже думать, что дисплей мертв...
Пытаюсь после резета читать ReadStatus в цикле и отображать его биты диодами.
После резета загорается RESET, через секунду одновременно ADC и BUSY, потом DISP_OFF.
И так остаются гореть постоянно...
Ерунда какая-то... Бесит уже этот дисплей.
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Johnson писал(а):Не выходит...
У тебя другой дисплей. У моего один вход стробоимпульса и два входа выбора чипа.
У тебя два стробоимпульса и нет выбора чипа.
Попробовал инит по аналогии сделать - тот же результат...
Начинаю уже думать, что дисплей мертв...
Пытаюсь после резета читать ReadStatus в цикле и отображать его биты диодами.
После резета загорается RESET, через секунду одновременно ADC и BUSY, потом DISP_OFF.
И так остаются гореть постоянно...
Ерунда какая-то... Бесит уже этот дисплей.
дисплеи абсолютно идентичны по распиновке разница только в размерах по этому подключи так как у меня написано только всесто е1-cs1, e2-cs2
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Погоди... У тебя в коде Е1 и Е2 - это стробировка же.
А, судя по ДШ, у меня CS1 и CS2 - это выбор кристала, а стробировка это EN (/RD)...
Хотя, твою идею понял, попробую сегодня.
А, судя по ДШ, у меня CS1 и CS2 - это выбор кристала, а стробировка это EN (/RD)...
Хотя, твою идею понял, попробую сегодня.
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Вобщем, транслировал код в CVAVR.
Из функции LCD_WaitForStatus не выходит...
Посмотрите логику, может где напутал?..
PS: У меня уже лапы опускаются...
Из функции LCD_WaitForStatus не выходит...
Спойлер
Код: Выделить всё
#include <mega8535.h>
#include <i2c.h>
#include <delay.h>
#include "main.h"
#include "encoder.c"
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
int tmp2 = 2;
unsigned char lcd_x = 0, lcd_y = 0;
interrupt [TIM0_OVF] void timer0_ovf_isr(void){
unsigned char tmp1 = 0;
PORTD.7= ~PORTD.7;
ENC_PollEncoder();
tmp1 = ENC_GetStateEncoder();
if (tmp1 == RIGHT_SPIN) tmp2++;
if (tmp1 == LEFT_SPIN) tmp2--;
if (tmp2 > 3) tmp2 = 0;
if (tmp2 < 0) tmp2 = 3;
TCNT0= 0xC2;
}
// Функция ждет, пока не пропадет указанный бит из статуса.
void LCD_WaitForStatus(unsigned char status, unsigned char controller){
char tmp =0;
DDRA = 0x00;
PORTA = 0xff;
A0=0;
RW=1;
do{
if(controller == 0){
CS1=1;
NOP;NOP;
tmp = PINA;
CS1=0;
}else{
CS2=1;
NOP;NOP;
tmp = PINA;
CS2=0;
}
}
while(tmp & status);
RW=0;
PORTA = 0x00;
DDRA = 0xFF;
}
void LCD_WriteCommand(unsigned char commandToWrite,unsigned char ctrl){
LCD_WaitForStatus(0x80, ctrl);
DDRA = 0xff;
A0=0;
RW=0;
PORTA = commandToWrite;
if(ctrl == 0){
CS1=1;
NOP;NOP;NOP;
CS1=0;
}else{
CS2=1;
NOP;NOP;NOP;
CS2=0;
}
PORTA = 0x00;
}
void LCD_WriteData(unsigned char dataToWrite){
LCD_WaitForStatus(0x80, 0);
LCD_WaitForStatus(0x80, 1);
A0=1;
RW=0;
PORTA = dataToWrite;
if(lcd_x < 61){
CS1=1;
NOP;NOP;
CS1=0;
}else{
CS2=1;
NOP;NOP;
CS2=0;
}
lcd_x++;
if(lcd_x >= SCREEN_WIDTH)
lcd_x = 0;
}
void LCD_GoTo(unsigned char x,unsigned char y){
lcd_x = x;
lcd_y = y;
if(x < (SCREEN_WIDTH/2)){
LCD_WriteCommand(COLUMN_ADDRESS_SET | lcd_x, 0);
LCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y, 0);
LCD_WriteCommand(COLUMN_ADDRESS_SET | 0, 1);
LCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y, 1);
}else{
LCD_WriteCommand(COLUMN_ADDRESS_SET | (lcd_x - (SCREEN_WIDTH/2)), 1);
LCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y, 1);
}
}
void LCD_ClearScreen(void){
char j, i;
for(j = 0; j < 4; j++){
LCD_GoTo(0, j);
for(i = 0; i < SCREEN_WIDTH; i++){
LCD_WriteData(0);
}
}
LCD_GoTo(0, 0);
}
void main(void){
char i;
DDRA=0b11111111;
DDRB=0b00000000;
DDRC=0b11111100;
DDRD=0b10111100; //0,1 - Encoder; 2,3,4,5 - LED; 6 - IrDA; 7 - LCD Clock;
PORTA=0b00000000;
PORTB=0b00010000;
PORTC=0b10001100; // RES=1,CS1=1,CS2=1,EN=0,RW=1,A0=1 || SDA=0,SCL=0
PORTD=0b01000011;
TCCR0=0b00000011;
TIMSK=0b00000001;
ACSR =0b10000000;
i2c_init();
#asm("sei");
RES=0;
delay_ms(10);
RES=1;
delay_ms(10);
LCD_WriteCommand(RESET, 0);
LCD_WriteCommand(RESET, 1);
LCD_WaitForStatus(0x10, 0);
LCD_WaitForStatus(0x10, 1);
LCD_WriteCommand(DISPLAY_ON, 0);
LCD_WriteCommand(DISPLAY_ON, 1);
LCD_WriteCommand(DISPLAY_START_LINE | 0, 0);
LCD_WriteCommand(DISPLAY_START_LINE | 0, 1);
delay_ms(100);
LCD_ClearScreen();
for(i = 0; i < 5; i++)
LCD_WriteData(0xAA);
LCD_WriteData(0x00);
while (1){
PORTD.2 = ~PORTD.2;
delay_ms(200);
}
}
Посмотрите логику, может где напутал?..
PS: У меня уже лапы опускаются...
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Я - идиот...
Я посчитал, что нумерация выводов будет как в арабском счете - слева на право...
Всё так и есть, только вот я его вверх ногами держал...
Я посчитал, что нумерация выводов будет как в арабском счете - слева на право...
Всё так и есть, только вот я его вверх ногами держал...
- s_black
- Мучитель микросхем
- Сообщения: 411
- Зарегистрирован: Вс авг 10, 2008 19:35:49
- Откуда: Евпатория
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Ну, так запустил, наконец?
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Да я на работе сижу... Не всегда есть время.
Щас вот только перепаял соединения все.
Напишу демо-код - обязательно выложу.
PS: да, дисплей завелся, инициализацию проходит и уже отрисовывает произвольные данные...
Осталось разобраться с управлением и оформить код...
Щас вот только перепаял соединения все.
Напишу демо-код - обязательно выложу.
PS: да, дисплей завелся, инициализацию проходит и уже отрисовывает произвольные данные...
Осталось разобраться с управлением и оформить код...
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
Johnson писал(а):Да я на работе сижу... Не всегда есть время.
Щас вот только перепаял соединения все.
Напишу демо-код - обязательно выложу.
PS: да, дисплей завелся, инициализацию проходит и уже отрисовывает произвольные данные...
Осталось разобраться с управлением и оформить код...
Пыгодь, ты че дисплей к верх нагами включал??
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: ATmega8535 + LCD WG12232 = светящийся кирпич (?)
shurikss123 писал(а):Johnson писал(а):Да я на работе сижу... Не всегда есть время.
Щас вот только перепаял соединения все.
Напишу демо-код - обязательно выложу.
PS: да, дисплей завелся, инициализацию проходит и уже отрисовывает произвольные данные...
Осталось разобраться с управлением и оформить код...
Пыгодь, ты че дисплей к верх нагами включал??
Ага
Разработчики по-умолчанию посчитали, что пользователь будет идиотом, и прасположили выводы питания так, что включение наоборот не вызовет повреждений...
