Юзаем дисплеи от сотовых и других потаскунчиков.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Jack_A »

Кислый писал(а):хмм. появилась одна идея :)


- У меня появилась мысль.
- Ну так думай её !
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение avreal »

Jack_A писал(а):
Кислый писал(а):хмм. появилась одна идея :)

- У меня появилась мысль.
- Ну так думай её !
Пока к другому не сбежала :)))
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
abc
Друг Кота
Сообщения: 3678
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение abc »

Пару лет назад покупал на ebay у китайцев дисплей 2,4", называется TM240320, разрешение, соответственно, 320х240
контроллер - ILI9325,
управление - PIC18F2520, запущен на 40MHz (режим PLL Fosc x4)
подключен к USB через мост PL2303, скорость - 6Mb/s
выводит параметры компьютера из AIDA64
скорость обновления - 5-6 кадров/сек
этого недостаточно для "живого" видео, но вполне хватает для вывода такой вот несложной статистики

Изображение Изображение
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение SubDia »

Забавно. В корпусе TinyBlackBox вообще солидно выглядит, можно было бы фотку сюда запилить.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

здравсуйте пытаюсь настроить в протеусе Nokio6100, нефига непонимаю(
используется 4 ноги:sdata-подключаем к MISO,skl -тактовый(sck),reset -перезагрука всегда ноль?вначале только для запуска ставим в 1,потом в ноль(я неуверен),CS - тут я вооще теряюсь,я думал что он используется чтобы можно было подключить много устройств,тобиш для экрана должен быть всегда 1?
ВОПРОС!!!!!: где DC??? как переключать данные и команды?может это программно?какимнить booster?
Внизу подключение и даташит с иностранными буквами)
Собственно сама программа:

.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m48def.inc"
.list
.nolist

.def temp = r16;
.def counter = r17;
.def delay = r16;
.def delay1 = r18;
.def delay2 = r19;


ldi r16,high(RAMEND) ;
out SPH,r16 ;


ser temp;
out DDRB,temp;
out DDRD,temp;


rjmp init;
zapoln:ТУПО ЗАДЕРЖКА
ldi delay,0x10;
ldi delay1,0x05;


loop:
subi delay,1;
sbci delay1,0;
brcc loop;
ret
init:


ldi temp,0b01110000;SPI настройка
out spcr,temp;

rcall zapoln;
sbi portB,1;установка CS


;какнить утанавливаем чтобы передавалась команда
ldi temp,0b00000001;перезагрузка (RESERT)
out spdr,temp;
rcall zapoln;
;какнить утверждаем) поидее я думал что должен быть WR)

ldi temp,0b00101001;вкл.дисплей
out spdr,temp;
rcall zapoln;

ldi temp,0b00010001;слип out
out spdr,temp;
rcall zapoln;


ldi temp,0b00010011;нормальный режим(пацан)
out spdr,temp;
rcall zapoln;

ldi temp,0b00101101;color
out spdr,temp;
rcall zapoln;

ldi temp,0b00100011;все пикселя включить
out spdr,temp;
rcall zapoln;

ldi temp,0b00101100;пишем в память(выводим на экран?)
out spdr,temp;
rcall zapoln;


sbi portB,1;

ldi temp,0b00110001;кидаем чонить туда
out spdr,temp;
rcall zapoln;


start:
ldi temp,0b00110001;кидаем чонить туда
out spdr,temp;

rcall zapoln;
rjmp start




Подскажите может быть с какогонибудь попроще дисплея начать(но обязательно в ПРОТЕУСЕ),и без библиотек.
Вложения
PCF8833_1.pdf
(469.76 КБ) 364 скачивания
Безымянный.GIF
(42.17 КБ) 453 скачивания
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение U235 »

Ну так в даташите есть диаграммы последовательного интерфейса. И там видно, что надо передавать 9 бит. Самым первым и передаётся D/C.
То есть надо сначала передать этот бит программно дёргая за mosi и sck, а следом - байт данных через SPI.
Последний раз редактировалось U235 Вс авг 19, 2012 16:30:32, всего редактировалось 1 раз.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение ChipKiller »

Подскажите может быть с какогонибудь попроще дисплея начать(но обязательно в ПРОТЕУСЕ),и без библиотек.
.. нормально работает Nokia 7110 - модель встроена в Proteus

PS ... и забудьте про аппаратный SPI, для тех дисплеев, где бит D/C явно не выведен наружу - у AVR передача по SPI всегда 8 бит.
Аватара пользователя
dmirrr
Мучитель микросхем
Сообщения: 475
Зарегистрирован: Вт дек 07, 2010 15:34:19
Откуда: UA

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение dmirrr »

C аппаратным скорость выше. Только одна проблема, для ногодрыга нужно выключать/включать SPI модуль, но это одна команда, не смертельно.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение HHIMERA »

На PIC24 и STM32 это вообще легко обходится...
"Я не даю готовых решений, я заставляю думать!"(С)
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

мне бы Цветной дисплей) а можно ли осуществить при помощи USART? или настроить SPI на 9 бит?
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение U235 »

спящий писал(а):...можно ли ... настроить SPI на 9 бит?

Нельзя. Можно как я говорил - один бит отправлять программно, оставшиеся 8 - через SPI. И делать то в общем много не придётся.
Подготавливаете в PORTB биты, соответсятвующие mosi и sck.
Отключаете SPI (бит SPE в регистре SPCR сбрасываете в ноль)
Дёргаете ногой sck.
Включаете SPI и передаёте байт.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

А как можно отдельно дергать ногой SCK до передачи? его надо програмно сделать?всмысле импульс определенной длиной на портB сделать?
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение SubDia »

спящий, принципиально нужен код на асме? Дело в том, что у меня дисп от Нокиа 6100 долгое время использовался в качестве вспомогательного - и при работе с AVR, и при работе с STM32. Правда, отправку данных/команд я реализовывал программно, не используя аппаратный SPI - так было привычнее. По крайней мере, логика понятна, и переделать будет несложно. Так что, если что, могу поискать код на Си.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

Зравствуйте,сделал 9 бит передачу по SPI,всеравно нефига не получается(даже экран невключается в протеусе неработает(
Мож что-то нето делаю?

.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m48def.inc"
.list
.nolist

.def temp = r16;
.def data = r17;
.def delay = r18;
.def delay1 = r19;
.def DC = R20;


ldi r16,high(RAMEND) ;
out SPH,r16 ;
ldi r16,low(RAMEND) ;
out SPL,r16 ;

ser temp;
out DDRB,temp;
out DDRD,temp;


ldi temp,0b01010011;Активируем ISP
out spcr,temp;

rjmp init;
zapoln:
ldi delay,0x45;ТУПО ЗАДЕРЖКА
ldi delay1,0x02;


loop:
subi delay,1;
sbci delay1,0;
brcc loop;
ret
init:
cbi portB,0;


ldi r20,0;УКАЗЫВАЕМ DC- 1данные ,0-команда!
ldi data,0b00000001;ресет
rcall vivod;
rcall zapoln;

ldi r20,0;
ldi data,0b00010001;слип out
rcall vivod;
rcall zapoln;

ldi data,0b00000011;BSTRON
rcall vivod;
rcall zapoln;

ldi data,0b00101001;вкл.дисплей
rcall vivod;
rcall zapoln;

ldi data,0b00000011;вкл.нормальный режим
rcall vivod;
rcall zapoln;


ldi data,0xBA;вкл.нормальный режим
rcall vivod;
rcall zapoln;


;вывод инфы
ldi data,0x36;
rcall vivod;



ldi r20,1;
ldi data,0b10101000;
rcall vivod;
rcall zapoln;

;задаем цвет

ldi r20,0;
ldi data,0x3a;
rcall vivod;

ldi r20,1;
ldi data,0x2;
rcall vivod;
rcall zapoln;


;цвет
ldi r20,0;
ldi data,0x2d;
rcall vivod;

ldi r20,1;
ldi data,0x00;
rcall vivod;
ldi data,0x02;
rcall vivod;
ldi data,0x04;
rcall vivod;
ldi data,0x06;
rcall vivod;
rcall zapoln;


;вывод на экран
ldi r20,0;
ldi data,0x2C;
rcall vivod;



ldi r20,1;
ldi data,0x2C;
rcall vivod;

start:
ldi data,0x2C;
rcall vivod;

rjmp start;






;ВЫВОД 9 БИТОВ!!!
Vivod:
sbi portB,1;
ldi temp,0b00010011;дезактивируем ISP
out spcr,temp;
sec;
sbrs r20,0;проверка DC ,если есть делаем импульс,иначе просто записываем SPI
rjmp EXIT;

sbi portB,3;
sbi portB,5;
rcall zapoln2;

cbi portB,3;



rjmp vixod;
EXIT:
sbi portB,5;
rcall zapoln2;


vixod:
cbi portB,5;
rcall zapoln1;


ldi temp,0b01010011;активируем ISP
out spcr,temp;


out spdr,data;

cikl: ;ожидание передачи
in temp,SPSR;
sbrs temp,SPIF;
rjmp cikl;
cbi portB,1;

ret





zapoln2:
ldi delay,0x09;
ldi delay1,0x00;

loop2:
subi delay,1;
sbci delay1,0;
brcc loop2;
nop;
nop;
ret

zapoln1:
ldi delay,0x05;
ldi delay1,0x00;

loop1:
subi delay,1;
sbci delay1,0;
brcc loop1;
nop;
nop;
ret





Я хз как должны ноги работать. RES ставим в 1,только при передачи остальное время в 0,CSвсегда в 0.Нужно время(задержку) между командами и данными?



SubDia скинь пожалуйста,и сжелательно с какимнибудь Самым- самым и еще раз самым простым примером) (В С++ нешарю :dont_know: )
Вложения
Безымянный.GIF
(8.69 КБ) 439 скачиваний
Безымянный1.GIF
(6.7 КБ) 409 скачиваний
Аватара пользователя
radiokot__
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Вс янв 15, 2012 19:58:40

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение radiokot__ »

Немного неправильно.
RST перед включением дисплея подаёшь ноль потом еденицу, и так держать постоянно.
RST это сброс всех настроек, если этой ногой дёргать то постоянно будет происходить сброс всего что ты там напосылал.
CS перед передачей нужно установить в 0 после отправки байта установить 1, и так каждый раз перед отправкой байта.
Вот на асме, примерно так.

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

lcd_cmd:               // Send command to LCD
cbi    portb,lcd_CS    // select chip 
sbi    portb,lcd_res   //
cbi    portb,lcd_dat
sbi    portb,lcd_clk   // CLK -> 1
nop                    //
nop                    //
cbi     portb,lcd_clk  // CLK -> 0
lcd_cm:
ldi     loop,8         //
outs11:                //   
clc                    //
rol     tmp            //
brcc    noc1           //
sbi     portb,lcd_dat  // DATA=1
rjmp    drdy1          //
noc1:                  //
cbi     portb,lcd_dat  // DATA=0
drdy1:                 // 
nop                    //
sbi     portb,lcd_clk  // CLK -> 1
nop                    //
nop                    //
cbi     portb,lcd_clk  // CLK -> 0
dec     loop           //
brne    outs11         // 
sbi    portb,lcd_CS    // select chip 
clc
ret                    //



out_byte:              // Send data to LCD
cbi    portb,lcd_CS    // select chip 
sbi    portb,lcd_res   //
sbi    portb,lcd_dat
sbi    portb,lcd_clk   // CLK -> 1
nop                    //
nop                    //
cbi     portb,lcd_clk  // CLK -> 0
ldi     loop,8         //
outs12:                //   
clc                    //
rol     tmp            //
brcc    noc2           //
sbi     portb,lcd_dat  // DATA=1
rjmp    drdy2          //
noc2:                  //
cbi     portb,lcd_dat  // DATA=0
drdy2:                 // 
nop                    //
sbi     portb,lcd_clk  // CLK -> 1
nop                    //
nop                    //
cbi     portb,lcd_clk  // CLK -> 0
dec     loop           //
brne    outs12         // 
sbi    portb,lcd_CS    // select chip 
clc
ret                    //
Ни один домашний кот незнает что он домашний.
Chettuser

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Chettuser »

CS - это Chip Select если я правильно понимаю?
Я вроде не дёргал им когда программный SPI писал для сдвигового регистра.
Аватара пользователя
radiokot__
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Вс янв 15, 2012 19:58:40

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение radiokot__ »

Да CS это выбор девайса.
Можно на один канал SPI навешать несколько разных микросхем с SPI протоколом.
Данные и тактирование подсоеденить паралельно на все чипы, а на ноги CS подавать уровень, при этом програмироватся будет тот чип который выбран.
Все остальные чипы не будут реагировать на данные которые ты отправляешь.

Но в данном случае CS надо дёргать после каждого байта.
Ни один домашний кот незнает что он домашний.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение HHIMERA »

radiokot__ писал(а):Но в данном случае CS надо дёргать после каждого байта.

Не обязательно...
"Я не даю готовых решений, я заставляю думать!"(С)
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

Здравствуйте,зажег дисплей)но появились вопросы:
Скорость обновление экрана только у меня такая низкая? примерно раз в 1 секунду?может какнить побыстрее получится?
как расширить экран?думаю это х,у ориентацией(выделено красным) ,но неполучается.
И чтобы выводить какиенить буквы или цифры,надо сделать чтобы экран двигался 6х8,сначало 8 по y,потом 6 по х? чтобы пользоваться ASCLL?
Вот прога:



.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m48def.inc"
.list
.nolist

.def temp = r16;
.def data = r17;
.def delay = r18;
.def delay1 = r19;
.def DC = R20;


ldi r16,high(RAMEND) ;
out SPH,r16 ;
ldi r16,low(RAMEND) ;
out SPL,r16 ;

ser temp;
out DDRB,temp;
out DDRD,temp;


ldi temp,0b01010000;Активируем ISP
out spcr,temp;


ldi temp,0b00000001;активируем ISP
out spsr,temp;

rjmp init;
zapoln:
ldi delay,0x45;задержка нечитать)
ldi delay1,0x02;


loop:
subi delay,1;
sbci delay1,0;
brcc loop;
ret
init:
sbi portB,1;



ldi r20,0;
ldi data,0x11;sleep out
rcall vivod;

rcall zapoln;



ldi r20,0;
ldi data,0x14;verx niz
rcall vivod;

ldi r20,0;
ldi data,0x14;norm mode
rcall vivod;


ldi r20,0;9
ldi data,0b00101001;disp on
rcall vivod;



ldi r20,0;x ориентация
ldi data,0x2a;
rcall vivod;

ldi r20,1;11 данные
ldi data,0;
rcall vivod;

ldi data,250;
rcall vivod;

ldi data,0;
rcall vivod;

ldi data,0;
rcall vivod;


ldi r20,0;y ориентация
ldi data,0x2b;
rcall vivod;


ldi r20,1;11 данные
ldi data,0;
rcall vivod;

ldi data,255;
rcall vivod;

ldi data,255;
rcall vivod;

ldi data,250;
rcall vivod;



ldi r20,0;
ldi data,0b00101100;вывод инфы
rcall vivod;


ldi r20,1;
ldi data,0;

start:
inc data;
rcall vivod;
rjmp start;







Vivod:
cbi portB,0;
ldi temp,0b00010000;дезактивируем ISP
out spcr,temp;
sec;
sbrs r20,0;проверка DC ,если есть делаем импульс,иначе просто записываем SPI
rjmp EXIT;

sbi portB,3;
sbi portB,5;

cbi portB,3;



rjmp vixod;
EXIT:
sbi portB,5;

vixod:
cbi portB,5;

ldi temp,0b01010000;активируем ISP
out spcr,temp;

out spdr,data;

cikl: ;ожидание передачи
in temp,SPSR;
sbrs temp,SPIF;
rjmp cikl;
sbi portB,0;

ret
Вложения
Безымянный2.GIF
(16.76 КБ) 539 скачиваний
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

Кинте прогу которая переделывает картинку в массив(8 бит).
Ответить

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