реклама на сайте
подробности

 
 
> AVR и Siemens M55
dexter_khm
сообщение May 26 2006, 07:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 10-04-06
Пользователь №: 15 990



Здравствуйте проблема такая есть у меня телефон siemens m55 хочу взять его цветной экран и подключить к AVR. Насколько это реально???? Даташит на екран я не нашел.
Go to the top of the page
 
+Quote Post
87 страниц V  « < 21 22 23 24 25 > »   
Start new topic
Ответов (330 - 344)
lomtev
сообщение Aug 23 2007, 18:33
Сообщение #331


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Ну да ладно. Мне надо не на мультимедиа а на измерительный девайс, если честно то мне и цветов не надо было столько, просто график функции выводить. Зато мне над как-то засунуть в один МК два SPI один на память другой на дисплей. Вообще возможно такое? Если не два сразу то хоть поочереди. Но лучше сразу.
И почему-то на выводе 2.9В при включенном шлейфе с дисплеем напряжение 4В, отключаю шлейф и напряжение падает... Что за хрень... Но работает, пока еще не спалил...=)
Go to the top of the page
 
+Quote Post
SashaGubov
сообщение Aug 24 2007, 04:11
Сообщение #332


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-05-06
Из: Киев
Пользователь №: 17 060



Цитата(lomtev @ Aug 23 2007, 21:33) *
Ну да ладно. Мне надо не на мультимедиа а на измерительный девайс, если честно то мне и цветов не надо было столько, просто график функции выводить. Зато мне над как-то засунуть в один МК два SPI один на память другой на дисплей. Вообще возможно такое? Если не два сразу то хоть поочереди. Но лучше сразу.
И почему-то на выводе 2.9В при включенном шлейфе с дисплеем напряжение 4В, отключаю шлейф и напряжение падает... Что за хрень... Но работает, пока еще не спалил...=)


Ипользуй программный SPI , скорость почти такая-же, лучше тот, который полностью расписан по битам
Go to the top of the page
 
+Quote Post
lomtev
сообщение Aug 24 2007, 12:15
Сообщение #333


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(SashaGubov @ Aug 24 2007, 08:11) *
Ипользуй программный SPI , скорость почти такая-же, лучше тот, который полностью расписан по битам

Я просто запускал один SPI, причем только в CVAVR, так что как запустить по битам два я вообще не понимаю. И они будут работать вместе или только если один оключить, второй включить. Регистры же пишутся только одни, так что придется самому.
Или побитово, это я должен описать работу каждой ножки, например функция send - поднять лог одной, поднять другой, а через третью посылать данные? На енто я точно не способен, с регистрами легче
Go to the top of the page
 
+Quote Post
SashaGubov
сообщение Aug 24 2007, 12:21
Сообщение #334


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-05-06
Из: Киев
Пользователь №: 17 060



Цитата(lomtev @ Aug 24 2007, 15:15) *
Я просто запускал один SPI, причем только в CVAVR, так что как запустить по битам два я вообще не понимаю. И они будут работать вместе или только если один оключить, второй включить. Регистры же пишутся только одни, так что придется самому.
Или побитово, это я должен описать работу каждой ножки, например функция send - поднять лог одной, поднять другой, а через третью посылать данные? На енто я точно не способен, с регистрами легче

Для экрана используйте функцию посылки через обыкновенное дрыгание ногами!
Ну а для памяти аппаратный......
void lcd_write(uint8_t a)
{
LCD_SCK=0;if (a & 128) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 64) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 32) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 16) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 8) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 4) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 2) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
}
Только ноги правильно настройте.....
#define LCD_RS PORTC.4
#define LCD_RESET PORTC.3
#define LCD_CS PORTC.2
#define LCD_SCK PORTC.1
#define LCD_DAT PORTC.0
Использовать можно любые....

Сообщение отредактировал SashaGubov - Aug 24 2007, 12:24
Go to the top of the page
 
+Quote Post
sadat
сообщение Aug 24 2007, 18:43
Сообщение #335


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



Цитата
И почему-то на выводе 2.9В при включенном шлейфе с дисплеем напряжение 4В, отключаю шлейф и напряжение падает... Что за хрень... Но работает, пока еще не спалил...=)


Это из-за защитных диодов по выводам данных внутри дисплея. Надо согласовывать уровни, так, как сделано у немцев (резисторы) либо логикой, либо диодами. Мк питается-то от пяти вольт, на линии данных - 4.6в, после встроенных защ. диодов на питании 4 вольта и формируется.
К стати, дисплей может работать и без питания - внутренее потребление около 1 ма, может и на "паразитном" питании сидеть, только это не совсем правильно ;-)

От перенапряжения по входам дисплей может сдохнуть, люди уже жаловались.....
Go to the top of the page
 
+Quote Post
lomtev
сообщение Aug 24 2007, 19:33
Сообщение #336


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(sadat @ Aug 24 2007, 22:43) *
Это из-за защитных диодов по выводам данных внутри дисплея. Надо согласовывать уровни, так, как сделано у немцев (резисторы) либо логикой, либо диодами. Мк питается-то от пяти вольт, на линии данных - 4.6в, после встроенных защ. диодов на питании 4 вольта и формируется.
К стати, дисплей может работать и без питания - внутренее потребление около 1 ма, может и на "паразитном" питании сидеть, только это не совсем правильно ;-)

От перенапряжения по входам дисплей может сдохнуть, люди уже жаловались.....

Спасибо. Все понял. Что-нибудь придумаем.

Цитата(SashaGubov @ Aug 24 2007, 16:21) *
Для экрана используйте функцию посылки через обыкновенное дрыгание ногами!
Ну а для памяти аппаратный......
void lcd_write(uint8_t a)
{
LCD_SCK=0;if (a & 128) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 64) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 32) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 16) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 8) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 4) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 2) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (a & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
}
Только ноги правильно настройте.....
#define LCD_RS PORTC.4
#define LCD_RESET PORTC.3
#define LCD_CS PORTC.2
#define LCD_SCK PORTC.1
#define LCD_DAT PORTC.0
Использовать можно любые....

Сидел думал - Что за хрень, а потом ан нет стал догонять.... Значит для дисплеяя нужен только SCK и DAT, а у меня еще и CS дергается.
Go to the top of the page
 
+Quote Post
SashaGubov
сообщение Aug 25 2007, 09:38
Сообщение #337


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-05-06
Из: Киев
Пользователь №: 17 060



Цитата(lomtev @ Aug 24 2007, 22:33) *
Спасибо. Все понял. Что-нибудь придумаем.
Сидел думал - Что за хрень, а потом ан нет стал догонять.... Значит для дисплеяя нужен только SCK и DAT, а у меня еще и CS дергается.

CS тоже нужен! Посмотрите по примерам...
Go to the top of the page
 
+Quote Post
lomtev
сообщение Aug 25 2007, 11:38
Сообщение #338


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(SashaGubov @ Aug 25 2007, 13:38) *
CS тоже нужен! Посмотрите по примерам...

Вроде где-то были. Взглянем. Всем спасибо a14.gif . Если что че-нить ще глупое спрошу twak.gif .
Go to the top of the page
 
+Quote Post
k34Nex
сообщение Aug 27 2007, 10:45
Сообщение #339





Группа: Новичок
Сообщений: 13
Регистрация: 27-08-07
Пользователь №: 30 086



Здравствуйте уважаемые электронщики!У меня есть M65 lcd с контроллером L2F50** и еще есть огромное желание прикрутить его к МК. Но я не знаю WinAVR и контроллер у меня Мега16. Знаю основы Си и CVAVR. Мне бы только инициализировать его и все) Помогите новичку плз! Перечитал форум, скачал примеры с немецкого форума но нифига не разобрался)Подскажите, как инициализировать чтобы написать в cvavr! Заранее благодарен всем!!
Go to the top of the page
 
+Quote Post
-=Женек=-
сообщение Aug 27 2007, 11:59
Сообщение #340


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



http://electronix.ru/forum/index.php?showt...6563&st=300

Вот где-то на этой странице есть две ссылки на архивы с библиотекой под CV.

От себя добавлю - есть там файл disp.lib, так вот он викидывал ошибку при ассемблировании до тех пор, пока после всех строк ассемблерных вставок (#asm/#endasm) я не поубирал комментарии. Так что если не будет запускаться - уберите их.
Go to the top of the page
 
+Quote Post
lomtev
сообщение Aug 27 2007, 21:49
Сообщение #341


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(SashaGubov @ Aug 24 2007, 16:21) *

Вот и назрел тупой вопрос.
Привожу код побитового SPI? много, но все очень понятно.
файл simple.c

#include <mega32.h>
#include <delay.h>

#include "lcd_function.h"

int main(void)
{
PORTB=0x5D;
DDRB=0xFF;

// backlight PWM generation
// use timer 2 in fast PWM mode for this
PORTD = 0<<7; // clear port before enable
DDRD = 1<<7; // will be used for OC2, must be output
TCCR2 = 1<<3 | 1<<6 | 1<<5 | 1<<0;
TCNT2=0x00;
OCR2=85;
delay_ms(1);
lcd_init();
while (1)
{
}
return(0);
}


файл lcd_function.h

#include <mega32.h>
#include <delay.h>

#define cmd 1
#define dat 0

#define LCD_CS PORTB.0
#define LCD_RESET PORTB.1
#define LCD_RS PORTB.2
#define LCD_DAT PORTB.5
#define LCD_SCK PORTB.7

char i=0;
char datcom=0;
int word=0;

int INIT1[12]={0xFDFD,0xFDFD,0xEF00,0xEE04,0x1B04,0xFEFE,0xFEFE,0xEF90,0x4A04,0x7F3F
,0xEE04,0x4306};

int INIT2[20]={0xEF90,0x0983,0x0800,0x0BAF,0x0A00,0x0500,0x0600,0x0700,0xEF00,0xEE0C
,0xEF90,0x0080,0xEFB0,0x4902,0xEF00,0x7F01,0xE181,0xE202,0xE276,0xE183};

int INIT3[1]={0x8001};

void lcd_write(char,int word);
//инициализация дисплея
void lcd_init()
{

for(i=0; i<12; i++) lcd_write(cmd, INIT1[i]); //Первый массив данных
delay_ms(7);

for(i=0; i<20; i++) lcd_write(cmd, INIT2[i]); //Второй массив данных
delay_ms(50);

for(i=0; i<1; i++) lcd_write(cmd, INIT3[i]); //Третий массив данных
delay_ms(5);
}

//Запись байта
void lcd_write(char datcom, int word)
{
if(datcom & 1) LCD_RS=1; else LCD_RS=0;
LCD_CS=0;
LCD_SCK=0;if (word & 32768) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 16384) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 8192) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 4096) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 2048) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 1024) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 512) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 256) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 128) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 64) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 32) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 16) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 8) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 4) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 2) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_CS=1;
}

Проверял в VMLAB, все скачки подходят под числа, никаких сдвигов, все ноги (вроде RESET) в нужном лог. уровне. Причем всё сверял с немцами. различается лишь что я посылаю int, а в рабочем примере char, и у немцев идет небольшая пауза между передаче двух char-ов (пр. их - 0xFD,0xFD, мой 0xFDFD), но кристалл в это время все равно не выбран так что ни на что влиять не должно.
Я вообще в непонятках. Как я понимаю после того что я привел выше на дисплее должен появиться мусор. Однако черный экран.
Заранее огромной спасибо за помощь. help.gif

Сообщение отредактировал lomtev - Aug 27 2007, 21:52
Go to the top of the page
 
+Quote Post
lomtev
сообщение Aug 28 2007, 18:28
Сообщение #342


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Отвечать на предыдущий вопрос не надо, все пошло. Свои "мусор" я вывел. Теперь. Кто подскажет как совместить лог уровни, что бы там где должно 2.9В быть не было 4В. На умных словах не пойму в упор, только уж если совсем на пальцах, так что если можно схемку - какие резисторы куда вешать. Заранее спасибо.
Go to the top of the page
 
+Quote Post
-=Женек=-
сообщение Aug 29 2007, 05:05
Сообщение #343


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



можно без резисторов. У меня Мега32 работала на 3,3 вольтах на 16 МГц. Оба вывода питания 2.9 и 1.8 вольт можно совершенно безболезненно цеплять на 3,3 вольти ничего дисплею не будет.
Go to the top of the page
 
+Quote Post
lomtev
сообщение Aug 29 2007, 13:11
Сообщение #344


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(-=Женек=- @ Aug 29 2007, 09:05) *
можно без резисторов. У меня Мега32 работала на 3,3 вольтах на 16 МГц. Оба вывода питания 2.9 и 1.8 вольт можно совершенно безболезненно цеплять на 3,3 вольти ничего дисплею не будет.

Питаюсь от USB с матери в компе. Если есть мысль где там 3.3 буду рад узнать.
Go to the top of the page
 
+Quote Post
iDenis
сообщение Aug 29 2007, 18:59
Сообщение #345


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 1-08-06
Из: St.-Petersburg, China
Пользователь №: 19 243



Цитата(skripach @ Feb 10 2007, 05:10) *
Народ можеткто нить пробовал разобраться с диспам у которого разрешение больше чем 132х176, например 240х320???????????


Сейчас у Нокиа е61 очень не плохой экран 320 х 240... не только в плане точек но и самого размера экрана, только как за него зацепится пока не представляю... Разпиновку нашел в схеме е61... в остальном черный ящик... какие контроллеры использует Нокиа для таких решений?
Прикрепленные изображения
Прикрепленное изображение
 


--------------------
С Уважением, Денис.
Go to the top of the page
 
+Quote Post

87 страниц V  « < 21 22 23 24 25 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01502 секунд с 7
ELECTRONIX ©2004-2016