Страница 28 из 73
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Сб авг 18, 2012 11:47:00
Jack_A
Кислый писал(а):хмм. появилась одна идея

- У меня появилась мысль.
- Ну так думай её !
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Сб авг 18, 2012 15:22:50
avreal
Jack_A писал(а):Кислый писал(а):хмм. появилась одна идея

- У меня появилась мысль.
- Ну так думай её !
Пока к другому не сбежала

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

Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 01:28:51
SubDia
Забавно. В корпусе TinyBlackBox вообще солидно выглядит, можно было бы фотку сюда запилить.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 12:05:09
спящий
здравсуйте пытаюсь настроить в протеусе 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
Подскажите может быть с какогонибудь попроще дисплея начать(но обязательно в ПРОТЕУСЕ),и без библиотек.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 13:16:19
U235
Ну так в даташите есть диаграммы последовательного интерфейса. И там видно, что надо передавать 9 бит. Самым первым и передаётся D/C.
То есть надо сначала передать этот бит программно дёргая за mosi и sck, а следом - байт данных через SPI.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 13:24:56
ChipKiller
Подскажите может быть с какогонибудь попроще дисплея начать(но обязательно в ПРОТЕУСЕ),и без библиотек.
.. нормально работает Nokia 7110 - модель встроена в Proteus
PS ... и забудьте про аппаратный SPI, для тех дисплеев, где бит D/C явно не выведен наружу - у AVR передача по SPI всегда 8 бит.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 15:41:58
dmirrr
C аппаратным скорость выше. Только одна проблема, для ногодрыга нужно выключать/включать SPI модуль, но это одна команда, не смертельно.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 15:44:45
HHIMERA
На PIC24 и STM32 это вообще легко обходится...
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 16:02:40
спящий
мне бы Цветной дисплей) а можно ли осуществить при помощи USART? или настроить SPI на 9 бит?
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 16:36:59
U235
спящий писал(а):...можно ли ... настроить SPI на 9 бит?
Нельзя. Можно как я говорил - один бит отправлять программно, оставшиеся 8 - через SPI. И делать то в общем много не придётся.
Подготавливаете в PORTB биты, соответсятвующие mosi и sck.
Отключаете SPI (бит SPE в регистре SPCR сбрасываете в ноль)
Дёргаете ногой sck.
Включаете SPI и передаёте байт.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 16:47:34
спящий
А как можно отдельно дергать ногой SCK до передачи? его надо програмно сделать?всмысле импульс определенной длиной на портB сделать?
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вс авг 19, 2012 16:51:16
SubDia
спящий, принципиально нужен код на асме? Дело в том, что у меня дисп от Нокиа 6100 долгое время использовался в качестве вспомогательного - и при работе с AVR, и при работе с STM32. Правда, отправку данных/команд я реализовывал программно, не используя аппаратный SPI - так было привычнее. По крайней мере, логика понятна, и переделать будет несложно. Так что, если что, могу поискать код на Си.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Вт авг 21, 2012 23:42:35
спящий
Зравствуйте,сделал 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 скинь пожалуйста,и сжелательно с какимнибудь Самым- самым и еще раз самым простым примером) (В С++ нешарю

)
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Ср авг 22, 2012 11:35:24
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 //
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Ср авг 22, 2012 17:23:33
Chettuser
CS - это Chip Select если я правильно понимаю?
Я вроде не дёргал им когда программный SPI писал для сдвигового регистра.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Ср авг 22, 2012 19:23:52
radiokot__
Да CS это выбор девайса.
Можно на один канал SPI навешать несколько разных микросхем с SPI протоколом.
Данные и тактирование подсоеденить паралельно на все чипы, а на ноги CS подавать уровень, при этом програмироватся будет тот чип который выбран.
Все остальные чипы не будут реагировать на данные которые ты отправляешь.
Но в данном случае CS надо дёргать после каждого байта.
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Ср авг 22, 2012 20:38:30
HHIMERA
radiokot__ писал(а):Но в данном случае CS надо дёргать после каждого байта.
Не обязательно...
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Сб авг 25, 2012 20:18:08
спящий
Здравствуйте,зажег дисплей)но появились вопросы:
Скорость обновление экрана только у меня такая низкая? примерно раз в 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
Re: Юзаем дисплеи от сотовых и других потаскунчиков.
Добавлено: Сб авг 25, 2012 21:27:08
спящий
Кинте прогу которая переделывает картинку в массив(8 бит).