Фрикер Клуб
 

Вернуться   Фрикер Клуб > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 18.04.2014, 09:27   #311
-Valery-
Вступил в клуб
 
Регистрация: 04.05.2012
Сообщений: 43
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

10 минут и все будет))

Добавлено через 4 минуты
/************************************************** *****************************
* Имя: init_port_spi()
* Описание: Инициализация порта на работу с lcd через SPI
* Параметры: Нет
* Пример: init_port_spi();
************************************************** *****************************/
void init_port_spi(void)
{
/* Установка MOSI(SDA),SCK и SS на выход, а MISO на вход */
DDR_SPI |= (1<<MOSI_SPI_PIN)|(1<<SCK_SPI_PIN)|(1<<SS_SPI_PIN) |(0<<MISO_SPI_PIN);

/*Установка MOSI(SDA), SCK, SS на выход- с нолем (0), а MISO вход- с нолем(0)*/
PORT_SPI |= (0<<MOSI_SPI_PIN)|(0<<SCK_SPI_PIN)|(0<<SS_SPI_PIN) |(0<<MISO_SPI_PIN);
}

/************************************************** ****************************
* Имя: start_spi()
* Описание: Разрешаем работу SPI как мастера в режиме SP0
* Параметры: Нет
* Пример: start_spi;
************************************************** *****************************/
void start_spi(void) /*|SPI2X|SPR1|SPR0|Частота SCK|*/
{ /*| 0 | 0 | 0 | fosc/4 |*/
/* Разрешение SPI в режиме мастера, старший бит вперед (MSB), скорость связи fosc/2 */ /*| 0 | 0 | 1 | fosc/16 |*/
SPCR = (1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|( 0<<SPR1)|(0<<SPR0); // /*| 0 | 1 | 0 | fosc/64 |*/
/* Удваиваем скорость работы SPI*/ /*| 0 | 1 | 1 | fosc/128 |*/
SPSR = (1<<SPI2X); /*| 1 | 0 | 0 | fosc/2 |*/
} /*| 1 | 0 | 1 | fosc/8 |*/
/*| 1 | 1 | 0 | fosc/32 |*/
/*| 1 | 1 | 1 | fosc/64 |*/

Добавлено через 1 минуту
Продолжаем..
/************************************************** ****************************
* Имя: spi_transmit(c)
* Описание: Передача одного байта данных по SPI
* Параметры: data- восьмибитное число
* Пример: spi_transmit(0xF0);
************************************************** *****************************/
void spi_write(unsigned char c)
{
SS_SPI_RESET; // активируем SPI посредством SS (выбрали ведомый)
SPDR = c; // передаем данные
while(!(SPSR & (1<<SPIF))); // ждем, пока не окончится передача данных
SPCR &=~0x50; // выключение SPI и освобождение шины SPI
SS_SPI_SET; // откл. SPI посредством SS (отключили ведомый)
}

Добавлено через 4 минуты
void nlcd_SendByte(char mode,unsigned char c)
{
CS_LCD_SPI_RESET; // выбираем дисплей
SCK_SPI_RESET; // Установили в ноль сигнал SCK для импульса тактирования

if(mode) MOSI_SPI_SET; // если передаем данные(единица), то MOSI(это-SDA)-в 1,
else MOSI_SPI_RESET; // иначе передаем команду(ноль) и MOSI- в 0.

SCK_SPI_SET; // имитируем импульс тактирования и
SCK_SPI_RESET; // записываем 1-й бит из девяти (команду, или данные)

init_port_spi(); // инициализируем SPI порт
start_spi(); // Разрешаем работу SPI в режиме мастер SP0
spi_write(c); // передаем данные и отцепляемся от порта (отключаем SPI)
CS_LCD_SPI_SET; // отцепляемся от дисплея
}


И результат-
int main(void)
{
init_RST_CS_lcd_pin_spi(); // Инициализация выводов RST и CS дисплея
init_port_spi(); // Инициализация порта SPI
lcd_init_pin_spi(); // Инициализация дисплея "ногодрыг+SPI"
}

Вот и все, думаю вопросов не должно возникнуть..)
-Valery- вне форума   Ответить с цитированием
Старый 18.04.2014, 12:17   #312
andrik
Автор
 
Аватар для andrik
 
Регистрация: 18.02.2011
Сообщений: 212
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

Поделюсь тоже инитом для 1616/С1-01, програмный ногодрыг для кодвижена.

void SendCom (unsigned char data)
{
unsigned char i,j;
sck_0;
cs_0;
sda_0;
sck_1;
sck_0;
j=0x80;
for(i=0;i<8;i++) {
if(data&j) {
sda_1;
sck_1;
sck_0;
}
else
{
sda_0;
sck_1;
sck_0;
}
j=j>>1;
}
cs_1;
}
void SendDat (unsigned char data)
{
unsigned char i,j;
sck_0;
cs_0;
sda_1;
sck_1;
sck_0;
j=0x80;
for(i=0;i<8;i++) {
if(data&j) {
sda_1;
sck_1;
sck_0;
}
else
{
sda_0;
sck_1;
sck_0;
}
j=j>>1;
}
cs_1;
}
void LCD_init(void)
{
res_1;
delay_ms(100);
res_0;
delay_ms(10);
res_1;
delay_ms(10);
SendCom (0x11);
delay_ms(10);
SendCom (0x3a); //Interface pixel format:bit1,2,3
SendDat (0x05); // 65k colour
SendCom (0x36); // Ориентация дисплея
SendDat (0b10100000);// альбомная 01100000
SendCom (0x29); // Display on,0x29=ON,0x28=OFF
}
andrik вне форума   Ответить с цитированием
Старый 18.04.2014, 14:34   #313
OLLEG
Гость клуба
 
Регистрация: 17.11.2013
Сообщений: 3
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

а как его в место этого внедрить ?


void S_spi_w(unsigned char name)
{
unsigned char mask = 0x80;

for( ; mask; mask >>= 1)
{
SDATA = name & mask;
CLK=1;
CLK=0;
SDATA=0;
}
}

void lcd_write(char cd,unsigned char register_name)
{
CS=0;
if (cd) SDATA=1; imps;
{
S_spi_w(register_name);
}
CS= 1;
}


void lcd_write16(unsigned int dat)
{
lcd_write(DATA,dat>>8);
lcd_write(DATA,dat);
}


void lcd_init_rgb(void)
{
CS= 0;
RESET=0;
delay_ms(5);
RESET=1;
delay_ms(5);
CS= 1;
lcd_write(CMD,0x01); delay_ms(50); //reset

lcd_write(CMD,0x11);
lcd_write(CMD,0x13);
// lcd_write(CMD,0x26); lcd_write(DATA,0b00001000);//Gamma Set 1,2,4,8
lcd_write(CMD,0x36); lcd_write(DATA,0b10100000);// <Альбомный режим>, RGB,
lcd_write(CMD,0x3A); lcd_write(DATA,0b00000101);//16bit

// lcd_write(CMD,0x2D); lcd_write(DATA,0b00001111);

fill_screen(WHITE); //Закрашиваем (чтоб не видеть мусор)
lcd_write(CMD,0x29);
//lcd_write(CMD,0x39);
// lcd_write(CMD,0x13);


}

void fill_screen(unsigned int color)
{
unsigned char j,i;
lcd_write(CMD,0x2A); //x-координата
lcd_write16(1);
lcd_write16(160);

lcd_write(CMD,0x2B);//Y-координата
lcd_write16(1);
lcd_write16(131);

lcd_write(CMD,0x2C);

for (i=0; i<DISP_H; i++)
{
for(j=0;j<DISP_W;j++)
{
lcd_write16(color);
}
}
}


void LCD_Char(unsigned char x, unsigned char y, char c, unsigned int color,char m)
{
unsigned char h,ch,p,mask;

lcd_write(CMD,0x2A); //x-координата
lcd_write16(x+2);
lcd_write16(x+2+CHAR_W*m-1);

lcd_write(CMD,0x2B);//Y-координата
lcd_write16(y+1);
lcd_write16(y+1+CHAR_H*m-1);


lcd_write(CMD,0x2C);


for (h=0; h<CHAR_H*m; h++) // every column of the character
{
ch=FONT8x15[ c-32 ][h/m];
// ch=FONT8x15[ c-32 ] [CHAR_H-h-1]; //зеркало по вертикали
mask = 0x80;
for (p=0; p<CHAR_W; p++) // write the pixels
{
if (ch & mask)
{
lcd_write16(color);
if(m==2)
{ lcd_write16(color); }
}

else
{
lcd_write16(bgcolor);
if(m==2)
{ lcd_write16(bgcolor);}
}
mask=mask/2;
}
}
}

void put_string(unsigned char x, unsigned char y, char *str, unsigned int color,char m)
{
unsigned char j;
j=0;
while (j<strlen(str))
{
LCD_Char(x+j*CHAR_W*m,y,str[j], color,m);
j++;
}
}
OLLEG вне форума   Ответить с цитированием
Старый 26.05.2014, 20:05   #314
russo_turisto
Резидент клуба
 
Аватар для russo_turisto
 
Регистрация: 21.08.2011
Сообщений: 1,158
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

При использовании цветных дисплеев на SPI интерфейсе заметна инерционность обновления экрана дисплея. В качестве наглядного примера выкладываю видео анализатора на 2.2" TFT дисплее на контролере ILI9341. Микроконтролер используется самый шустрый из 18 пиков (16 MIPS) c тактовой в 16 мГц и включеным "ускорителем" режимом PLL. SPI аппаратный 16 мгц.
Имитатор сигналов используется в брелке шерифа ZX-1055 с прошивкой выложеной в теме http://phreakerclub.com/forum/showthread.php?t=1199. Там есть исходник имитатора.

Видеофайл тяжелый, примерно 88 мБт. Поэтому с лимитным инетом лучше не смотреть.
http://youtu.be/JDZf4fgaoBc
Изображения
Тип файла: jpg IMG_1286__1.jpg (118.0 Кб, 184 просмотров)
russo_turisto вне форума   Ответить с цитированием
Старый 16.06.2014, 14:49   #315
maksorel
Гость клуба
 
Регистрация: 16.06.2014
Сообщений: 1
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

Кинте кто нибудь печатку в архиве, фотки чет не грузятся...
maksorel вне форума   Ответить с цитированием
Старый 02.07.2014, 00:15   #316
Penchev
Гость клуба
 
Регистрация: 30.04.2014
Сообщений: 3
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

Привет. Поделюсь результатом.
Запустил дисплей от Nokia n73 с помощью STM32VLDISCOVERY.
Печатка в PROTEUS 7.8 и проект KEIL 4.73.
STM32F100 оказалась слабовата, 2 кадра удалось выжать, ну если оптимизировать код, то три будет.
Вложения
Тип файла: rar LCD.rar (401.5 Кб, 299 просмотров)
Тип файла: rar Display connector.rar (91.7 Кб, 191 просмотров)
Penchev вне форума   Ответить с цитированием
Старый 02.07.2014, 11:04   #317
helloshop
Гость клуба
 
Регистрация: 29.01.2013
Сообщений: 1
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

Для бОльших дисплеев надо FSMC юзать, в 100-й серии есть в чипах 100 и 144 ног. Либо 103-ю заюзать, либо на 2хх-4хх переходить.
helloshop вне форума   Ответить с цитированием
Старый 01.09.2014, 21:18   #318
pl161187smi
Гость клуба
 
Регистрация: 30.08.2014
Сообщений: 1
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

Цитата:
Сообщение от Penchev
Привет. Поделюсь результатом.
Запустил дисплей от Nokia n73 с помощью STM32VLDISCOVERY.
Печатка в PROTEUS 7.8 и проект KEIL 4.73.
STM32F100 оказалась слабовата, 2 кадра удалось выжать, ну если оптимизировать код, то три будет.

Доброго времени суток!
Смотрю на схему не вижу делителей и преобразователей уровня, судя по фотке Вы подключили напрямую к дискавери дисплей, дискавери питается от штатных 3V3 ?
Контроллер дисплеев LS022, 024 нормально работает с уровнями 3.3 вольта? Можно не заморачиваться с преобразованием уровней ?
pl161187smi вне форума   Ответить с цитированием
Старый 09.09.2014, 07:51   #319
Penchev
Гость клуба
 
Регистрация: 30.04.2014
Сообщений: 3
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

Нет, делиьели не нежны для 3v. На моей дисеавери написано 3.3v, а насамом деле 3v. Померяйте у себя, если 3.3 я бы рекомендовал просто плменят стабилизатор.
Penchev вне форума   Ответить с цитированием
Старый 23.11.2014, 22:47   #320
Mistr
Banned
 
Регистрация: 12.10.2014
Сообщений: 41
По умолчанию Re: Подключение дисплея NOKIA 6300 к микроконтроллеру

А есть кто ещё этот проект собрал? Вроде как мало(( . Вот russo_turisto мне девайс понравился
Mistr вне форума   Ответить с цитированием
Ответ
Опции темы
Опции просмотра

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

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



Текущее время: 16:51. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com