Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 27.05.2011, 00:47   #26
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение
Спасибо, уважаемый Gera82, сравню с тем, что я написала.
да не за что
Gera82 вне форума   Ответить с цитированием
Старый 30.05.2011, 01:59   #27
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Еще не проверяла "провода".
Написала на ассемблере, подумала, может, пропускаю что-то "важное" на СИ....

Код:
 
;*********************************************************
; 27_05_2011 OLED DISPLAY BL12864G
; SSD1303
;*********************************************************
$MOD831 ; Use 8052&ADuC812 predefined symbols
 
LED_red        EQU P3.4 ;red diod
RST             EQU P0.7
DC               EQU P0.6 ;COMMAND/DAT
CS               EQU P0.5
;-------------------------
R00 EQU 000H ; for delay
R01 EQU 001H ;
R02 EQU 002H ;
R03 EQU 003H ;
R04 EQU 004H ; FOR X_ADDRESS
R05 EQU 005H ; FOR Y_ADDRESS
R06 EQU 006H ; far cicls
R07 EQU 007H
 
PAGETMP        EQU 31H
PAGEIN          EQU 32H
WR_NUM        EQU 33H
WR_BYTE       EQU 34H
;
WR_MODE      EQU 35H
CHANGEXY      EQU 36H
OFFSET        EQU 37H
OUTPUT       EQU 38H
 
ORG 000H
       LJMP BEGIN
 
ORG 003Bh ; (.................... SPI ISR)
        LJMP SPIG
 
ORG 060H
BEGIN:
        MOV PCON,#00H
        SETB EA
 
; CONFIGURE SPI...
       MOV SPICON,#037H; //003C//037h ; configure SPI port for:
; Fosc/64, CPHA=1, CPOL=0, master
       MOV IEIP2,#01H ; enable SPI interrupt ;SETB ESI
;--------------------------------------------------------
       ANL 8EH,#0
       MOV DPTR,#0400H
       MOV A,#1H
       MOVX @DPTR,A
       MOVX A,@DPTR
       MOV WR_MODE,A
       MOV OFFSET,#0
       LCALL RESET
       LCALL DELLS
       LCALL OLEDINIT
      LCALL DELLS
      START: LCALL DRAW_TEST
       LCALL DELLM
      JMP START
;--------------------------------------------------------------
 
; SENDSP; sends the value in ACC out the SPI port. also
; receives simultaneously into SPIDAT. SPI interrupt
; is triggered when transfer is complete.
SENDSPI:    CLR CS ; must pull slave's SS pin low first
                 MOV SPIDAT,A; OUTPUT ; trigger data transfer
                 RET
;-------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Код:
 
OLEDINIT:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0AEH; /*set display ON/OF AF=ON AE=OF*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A4H; /*SET ENTIRE DISPLAY ON*/
LCALL COMMAND;
MOV A,#40H; /*set display start line*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A0H; /*re-map(A0/A1)*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A6H; /*set normal display*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D3H; /*set display offset*/
LCALL COMMAND;
MOV A,#0H; /*no offset*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D9H; /*set vp*/
LCALL COMMAND;
MOV A,#22H;
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0DAH; /*set pin hardware configuration*/
LCALL COMMAND;
MOV A,#12H;
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#81H; /*set contrast control*/
LCALL COMMAND;
MOV A,#0FFH;
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A8H; /*set multiplex ratio*/
LCALL COMMAND;
MOV A,#03FH; /**/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0ADH; /*set DC-DC*/
LCALL COMMAND;
MOV A,#8AH; /*8B=ON 8A=OF*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0AFH; /*set display ON/OF AF=ON AE=OF*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D5H; /*set clock driver*/
LCALL COMMAND;
MOV A,#0A0H; /*set 100hz*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D8H; /*set area color on or off*/
LCALL COMMAND
MOV A,#0H; /*mono mode*/
LCALL COMMAND;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0DBH; /*set vcomh*/
LCALL COMMAND
MOV A,#25H
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0C0H; /*set com output(C0/C8)*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RET
Код:
 
;----------------------------------------------------------
C_XY:
       MOV A,PAGEIN
       ADD A,#0B0H
      CALL COMMAND
      MOV A,CHANGEXY
      ANL A,#0FH
      CALL COMMAND
      MOV A,CHANGEXY
      SWAP A
      ANL A,#0FH
      ADD A,#010H
      CALL COMMAND
       RET
;-------------------------------------
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;
WRDB:
MOV A,WR_MODE
JZ WR_OK
CLR A
MOVC A,@A+DPTR
CPL A
JMP CPL_OK
WR_OK: CLR A
MOVC A,@A+DPTR
CPL_OK: CALL SENDDATA
INC DPTR
DJNZ WR_NUM,WRDB
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;

Последний раз редактировалось Belka12; 30.05.2011 в 02:07.
Belka12 вне форума   Ответить с цитированием
Старый 30.05.2011, 02:21   #28
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Код:
 
DRAW_TEST:
       MOV PAGETMP,#008H
        MOV PAGEIN,#007H
        MOV CHANGEXY,#000H
P_LOOP:
         CALL C_XY
         MOV R0,#10H
         MOV WR_BYTE,#001H
DRAW_LOOP:
         MOV A,WR_BYTE ;
        CALL SENDDATA
        MOV A,WR_BYTE
         RL A
       MOV WR_BYTE,A
        CJNE A,#00000001B,DRAW_LOOP ;
        DJNZ R0,DRAW_LOOP ;
        DEC PAGEIN ;
        DJNZ PAGETMP,P_LOOP ;
       RET
 
;-----------------------------------------
COMMAND:
CLR DC ;DC=LOW SEND COMMAND
CLR CS
;--------------------------------------
SEND: 
MOV SPIDAT,A; OUTPUT
JNB ISPI,$
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB CS
NOP
RET
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SENDDATA:
SETB DC
CLR CS
SEND1: 
MOV SPIDAT,A; OUTPUT
JNB ISPI,$
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB CS
NOP
RET
Код:
 
RESET:
SETB CS SETB RST LCALL DEL50MC CLR RST LCALL DEL50MC SETB RST NOP NOP
RET
Здесь основные выдержки. Инициализация дисплея и SPI а также передача команд и данных.
Толку никакого, все равно не работает.

Последний раз редактировалось Belka12; 30.05.2011 в 02:32.
Belka12 вне форума   Ответить с цитированием
Старый 30.05.2011, 15:40   #29
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение
Здесь основные выдержки. Инициализация дисплея и SPI а также передача команд и данных.
Толку никакого, все равно не работает.
Ну если не работает, тогда всё легко и просто:
обзаводимся оборудованием, типа осциллографа(если есть логический анализатор), отладчика, мультиметром.
И проверяем с начало "железо" потом программу:
1.Все питание в норме 3.3В и 12В?
2.Все сопротивление/кондёры на месте?
3.Потом проверяем каждый вывод (CS,RST,Bus данных итд.) на дисплей.
4.Если все выводы работают, то проверяем "timing" по "даташиту".
5. соблюдая спецификацию дисплея, теперь можно грешить на программу
Миниатюры
oled.JPG  
Gera82 вне форума   Ответить с цитированием
Старый 30.05.2011, 18:10   #30
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
Ну если не работает, тогда всё легко и просто :


Цитата:
Сообщение от Gera82 Посмотреть сообщение
обзаводимся оборудованием, типа осциллографа(если есть логический анализатор), отладчика, мультиметром.
И проверяем с начало "железо" потом программу:
1.Все питание в норме 3.3В и 12В?
Только осциллограф, да и то не у меня.
Питание 3.3 В есть, нету 12 В.
А разве питание 12В устанавливается не после прохождения команды SET DC-DC?

Цитата:
2.Все сопротивление/кондёры на месте?
Не проверяла, посмотрю....
Цитата:
3.Потом проверяем каждый вывод (CS,RST,Bus данных итд.) на дисплей.
Не проходит сигналы CS, DC, почему не знаю, буду смотреть, может, просто на макетной плате глюк, RST проходит. Не проходит почему-то SLK ....
Цитата:
4.Если все выводы работают, то проверяем "timing" по "даташиту".
Не поняла, Вы имеете в виду циклограммы сигналов, т.е. длительность фронтов, задержек?
Цитата:
5. соблюдая спецификацию дисплея, теперь можно грешить на программу

Точно. Там собака зарыта, там.
Belka12 вне форума   Ответить с цитированием
Старый 31.05.2011, 00:20   #31
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Gera82, пошла я смотреть "монтаж".
Как говорится, "мама моя".
Канифоли налито между выводами немеряно, хотела малость почистить, провода отвалились.

Паяльника нужного у меня дома нет, есть тощиной в карандаш, в среду поеду на фирму, пусть спаяют.
А, может быть, умудрюсь своим толстым паяльником припаять завтра, т.е. уже сегодня.
Belka12 вне форума   Ответить с цитированием
Старый 31.05.2011, 10:40   #32
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение

Питание 3.3 В есть, нету 12 В.
А разве питание 12В устанавливается не после прохождения команды SET DC-DC?
питание +12В должно подходить, в моём случае на 3, 22 ножки,
напрямую, через DC-DC или транзистор разницы нету.
Gera82 вне форума   Ответить с цитированием
Старый 31.05.2011, 11:59   #33
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
питание +12В должно подходить, в моём случае на 3, 22 ножки,
напрямую, через DC-DC или транзистор разницы нету.
Тогда, значит, дела совсем плохи....У меня вывода VDD на ножки нет, но на самой плате дисплея питания 12 В нет. (OLED12864G)
Belka12 вне форума   Ответить с цитированием
Старый 31.05.2011, 13:16   #34
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение
Да я тоже так думаю, может быть, элементарно провод перепутан или отвалися.
вот этот дисплей?:
http://www.fush.lv/Bolymin/Data/BL12864G.pdf

значит dc-dc преобразователь уже на дисплее встроен.
http://www.lc-design.de/shop/de/spec...864G_VER04.pdf
10 страница.

Значит dc-dc надо включать (AE~AF).

Последний раз редактировалось Gera82; 31.05.2011 в 13:23.
Gera82 вне форума   Ответить с цитированием
Старый 31.05.2011, 20:48   #35
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
вот этот дисплей?:
Цитата:
Сообщение от Gera82 Посмотреть сообщение
http://www.fush.lv/Bolymin/Data/BL12864G.pdf

значит dc-dc преобразователь уже на дисплее встроен.
http://www.lc-design.de/shop/de/specs/graphic/OLED/BL12864G_VER04.pdf
10 страница.

Значит dc-dc надо включать (AE~AF).
Да, этот.

Включение DC-DC SET DC-DC команда AD, как я поняла, а команды AE~AF, выключение/включение дисплея. (Знать бы в чем принципиальная разница)

Еще раз проверила. Отлегло. 12 В есть.

Не проходят сигналы CS и DC. Полагаю, что причина в том, что подсоединены эти выходы к линиям порта Р0 ADUC831 "напрямую", а эти выходы с открытом стоком, т.е. надо бы навесить к ним нагрузку порядка ~10 кОм к плюсу питания.
Belka12 вне форума   Ответить с цитированием
Старый 01.06.2011, 10:20   #36
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение

Да, этот.

Включение DC-DC SET DC-DC команда AD, как я поняла, а команды AE~AF, выключение/включение дисплея. (Знать бы в чем принципиальная разница)

Еще раз проверила. Отлегло. 12 В есть.

Не проходят сигналы CS и DC. Полагаю, что причина в том, что подсоединены эти выходы к линиям порта Р0 ADUC831 "напрямую", а эти выходы с открытом стоком, т.е. надо бы навесить к ним нагрузку порядка ~10 кОм к плюсу питания.
да я перепутал, AE~AF это вкл./выкл. дисплей...
Gera82 вне форума   Ответить с цитированием
Старый 01.07.2011, 21:47   #37
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

В общем, пока к моему большому сожалению, дисплей запустить пока не смогла, увы .

Gera82, у меня к Вам несколько вопросов вопросов.
1. Режим SPI на данном дисплее доступен чисто программно, или, кроме этого, надо еще пользоваться перемычками на самом дисплее, ведь они для чего там есть?
2. В режиме команды сигнал DC у меня все время на низком уровне, т.е. «о». Может, надо, как у Вас в конце байта устанавливать его в 1?
3. Насколько важен порядок следования комманд инициализации, т.е. кто за кем?
Belka12 вне форума   Ответить с цитированием
Старый 02.07.2011, 22:16   #38
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

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

Ну, хоть с этим разобралась.
Belka12 вне форума   Ответить с цитированием
Старый 04.07.2011, 17:36   #39
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Пришел ответ от производителя (Bolymin):


Чтобы для этого дисплея получить режим SPI, нужно отпаять сопротивления R1 и R3 и припаять их на меcта R2 и R4.


Вот теперь я в раздумье...

То ли перепаивать сопротивления, то ли не морочить себе голову и написать уже все для параллельного интерфейса, а то, может, там еще какие призраки в кустах припрятались.
Belka12 вне форума   Ответить с цитированием
Старый 05.07.2011, 20:22   #40
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение
2. В режиме команды сигнал DC у меня все время на низком уровне, т.е. «о». Может, надо, как у Вас в конце байта устанавливать его в 1?
?
да вроде бы при команде всегда 0, только когда "данные" загоняю на 1 настраевою:
Код:
/********************************************************************************
 *                                                                              *
 *  Funktion:           OLED_write_command                                      * 
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: write command byte to LCD module                     
 ********************************************************************************/
void OLED_write_command(unsigned char command)
{
  OLED_RD = 1;  //tell system only write
  OLED_DC = 0;  //1=Data/0=Command Control
  OLED_CS = 0;  //Chip Select
  OLED_WR = 0;  //

   OLED_DATA_OUT_PORT = command;

  OLED_WR = 1;  //
  OLED_CS = 1;  //Chip Select


} // OLED_write_command

/********************************************************************************
 *                                                                              *
 *  Funktion:           OLED_write_data                                         * 
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: write data byte to OLED module,                     
 ********************************************************************************/
void OLED_write_data(unsigned char data)
{
  OLED_RD = 1;  //tell system only write
  OLED_DC = 1;  //1=Data/0=Command Control
  OLED_CS = 0;  //Chip Select
  OLED_WR = 0;  //

   OLED_DATA_OUT_PORT = data;  //8Bit

  OLED_WR = 1;  //
  OLED_CS = 1;  //Chip Select

} // OLED_write_data

Код:
Чтобы для этого дисплея получить режим SPI, нужно отпаять сопротивления R1 и R3 и припаять их на меcта R2 и R4.
 
 
Вот теперь я в раздумье...
 
То ли перепаивать сопротивления, то ли не морочить себе голову и  написать уже все для параллельного интерфейса, а то, может, там еще  какие призраки в кустах припрятались.
советую в параллельном режиме настроить, а потом с СПИ баловаться.
Gera82 вне форума   Ответить с цитированием
Старый 07.07.2011, 14:13   #41
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Перепаяли резисторы, дисплей заработал.
Т.е. в качестве теста я загнала циклический вывод пикселя со сменой координаты (как я это понимаю), у меня появились косые линии на дисплее.
Теперь буду разбираться с дальнейшим выводом текстов и картинок
Belka12 вне форума   Ответить с цитированием
Старый 07.07.2011, 15:00   #42
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
да вроде бы при команде всегда 0, только когда "данные" загоняю на 1 настраевою:
Там, в даташите, стр. 15, есть такое примечание перед таблицей команд:
Цитата:
9. Display Control Instruction

Цитата:

( D/C = 0, R/W ( WR ) = 0, E(RD ) = 1) unless specific setting is stated

Single byte command


( D/C = 0), Multiple byte command ( D/C = 0 for first byte, D/C = 1 for other bytes)


Т.е. в сложных, не однобайтовых коммандах, несколько иначе.


Gera82, Вы заметили эту разницу?
Belka12 вне форума   Ответить с цитированием
Старый 07.07.2011, 15:16   #43
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

http://catalog.gaw.ru/index.php?id=3...mponent_detail
Belka12 вне форума   Ответить с цитированием
Старый 07.07.2011, 16:09   #44
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Перепаяли резисторы, дисплей заработал.
Т.е. в качестве теста я загнала циклический вывод пикселя со сменой координаты (как я это понимаю), у меня появились косые линии на дисплее.
Теперь буду разбираться с дальнейшим выводом текстов и картинок
если пиксели появились, то остальное дело техники.


Цитата:
Сообщение от Belka12 Посмотреть сообщение
Там, в даташите, стр. 15, есть такое примечание перед таблицей команд:


Т.е. в сложных, не однобайтовых коммандах, несколько иначе.


Gera82, Вы заметили эту разницу?
не знаю, не обращал внимания, мои команды я привёл, и они 100% рабочие, уже не на одном дисплеи испробованы..
Gera82 вне форума   Ответить с цитированием
Старый 18.07.2011, 12:12   #45
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
я вспомнил, такой контролер ссд1303 был у меня, вот на моей страничке есть рабочий исходник, ну только параллельный выход и на немецком
http://www.pcb-devboards.de/DE/oled_dd-32645c-1a.php
Ув Gera82, на Вашей страничке представлены примеры вывода букв разных размеров.


Если не трудно, как Вы это получили?
Belka12 вне форума   Ответить с цитированием
Старый 30.08.2011, 01:22   #46
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение
Ув Gera82, на Вашей страничке представлены примеры вывода букв разных размеров.


Если не трудно, как Вы это получили?
Фонтгенератор, генерирует 5 шрифтов из этих двух шрифтов (cyrillic_font5x8 + Fonts5x8), эти функции "подогнаны" именно под этот дисплей, но можно и под другие переделать.
Код:
/********************************************************************************
 *                                                                              *
 *  Funktion:       OLED_PutText                                                * 
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: With FONT_1X is available only FONT_normal, FONT_fine is not available 
 *               Where: OLEDFontSize : FONT_1X = 8px, FONT_2X = 16px, FONT_4X = 32px
 *                      OLEDFontWeight : FONT_normal is normal font weight, 
 *                                       FONT_fine is halved FONT_normal
 *                      color : 1 is black, 0 is white
 *
 *  Example call: 
 *               OLED_PutText(0,0, FONT_1X, FONT_normal, 1, "Demo");
 *               OLED_PutText(4,4, FONT_2X, FONT_normal, 1, "Demo");
 *               OLED_PutText(10,10, FONT_2X, FONT_fine, 1, "Demo");
 *               OLED_PutText(5,5, FONT_4X, FONT_normal, 1, "Demo");
 *               OLED_PutText(9,9, FONT_4X, FONT_fine, 1, "Demo");
 ********************************************************************************/
void OLED_PutText (unsigned char X,unsigned char Y, OLEDFontSize size, OLEDFontWeight font_weight,
                   unsigned char color, const char* STR)
{       
 unsigned char i; 

        switch (size)
        {
          case FONT_1X:
            {
              for (i=0; STR[i]!=0;i++)
               {
                OLED_PutChar(STR[i],X,Y, color);
                X += 6; 

                if (X >= (XMAX-5)) 
                 {
                  X = 0;
                  Y += 8;
                 } 
               }
              break;
            }

         case FONT_2X:
            {
              for (i=0; STR[i]!=0;i++)
               {
                OLED_PutChar_FONT2(STR[i],X,Y, font_weight, color);

                if (font_weight==FONT_normal)
                 { 
                  X += 12;
                   if (X >= (XMAX-11)) // 
                    {
                     X = 0;
                     Y += 16;
                    }
                 } 
                else if (font_weight==FONT_fine)
                 {
                  X += 6;
                  if (X >= (XMAX)) // 
                   {
                    X = 0;
                    Y += 16;
                   }
                 }
                }  

              break;
            }

         case FONT_4X:
            {
              for (i=0; STR[i]!=0;i++)
               {
                OLED_PutChar_FONT4(STR[i],X,Y, font_weight, color);

                if (font_weight==FONT_normal)
                 {
                  X += 24;
                   if (X >= (XMAX-23)) // 
                    {
                     X = 0;
                     Y += 32;
                    }
                 } 
                else if (font_weight==FONT_fine)
                 {
                  X += 12;
                   if (X >= (XMAX-11)) // 
                    {
                     X = 0;
                     Y += 32;
                    }
                  }
                 }   

              break;
            }

          default:
            {
              break;
            }

         }
}



/********************************************************************************
 *                                                                              *
 *  Funktion:      OLED_PutChar                                                 * 
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: Where: X : max 16 Text Column 132/8  
 *                      Y : max 8 Text Row 64/8
 ********************************************************************************/
void OLED_PutChar(unsigned char CHAR, unsigned char X, unsigned char Y, 
                  unsigned char color)
{
 unsigned char row, col;
 unsigned char a;
 unsigned int position;

  if (CHAR == 168) 
   { position = 6*(CHAR - 103); } //Ё
  else if (CHAR == 184) 
   { position = 6*(CHAR - 120); } //ё
  else if((CHAR<0x20)||(CHAR>0x7f))
   { position = 6*(CHAR - 192); }
  else
   { position = 6*(CHAR-0x20); }

             for(row=0;row<6;row++)
              for(col=0;col<8;col++)
               {
                if((CHAR<0x20)||(CHAR>0x7f))
                   a = pgm_read_byte(&cyrillic_font5x8[position+row]);
                else
                   a = pgm_read_byte(&Fonts5x8[position+row]);

                if ((a >> col) & 0x01)
                 OLED_PutPixel(X+row,Y+col, color);
               }
      
}




/********************************************************************************
 *                                                                              *
 *  Funktion:      OLED_PutChar_FONT2                                           * 
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: Where: X, FONT_fine :   max 16 Text Column 132/8  
 *                      X, FONT_normal : max 8 Text Column 132/16
 *                      Y :              max 4 Text Row 64/16
 ********************************************************************************/
void OLED_PutChar_FONT2(unsigned char CHAR, unsigned char X, unsigned char Y, 
                        OLEDFontWeight font_weight, unsigned char color)
{
 unsigned char row, col;
 unsigned char a;
 unsigned int position;

  if (CHAR == 168) 
   { position = 6*(CHAR - 103); } //Ё
  else if (CHAR == 184) 
   { position = 6*(CHAR - 120); } //ё
  else if((CHAR<0x20)||(CHAR>0x7f))
   { position = 6*(CHAR - 192); }
  else
   { position = 6*(CHAR-0x20); }

          for(row=0;row<(6*font_weight);row++)
              for(col=0;col<16;col++)
               {
                if((CHAR<0x20)||(CHAR>0x7f))
                   a = pgm_read_byte(&cyrillic_font5x8[position+(row/font_weight)]);
                else
                   a = pgm_read_byte(&Fonts5x8[position+(row/font_weight)]);

                if ((a >> (col/2)) & 0x01)
                  OLED_PutPixel(X+row,Y+col, color);
               }
      
}



/********************************************************************************
 *                                                                              *
 *  Funktion:      OLED_PutChar_FONT4                                           * 
 *                                                                              *
 *------------------------------------------------------------------------------*
 *  Description: Where: X, FONT_fine :   max 8 Text Column 132/16  
 *                      X, FONT_normal : max 4 Text Column 132/32
 *                      Y :              max 2 Text Row 64/32
 ********************************************************************************/
void OLED_PutChar_FONT4(unsigned char CHAR, unsigned char X, unsigned char Y, 
                        OLEDFontWeight font_weight, unsigned char color)
{
 unsigned char row, col;
 unsigned char a;
 unsigned int position;

  if (CHAR == 168) 
   { position = 6*(CHAR - 103); } //Ё
  else if (CHAR == 184) 
   { position = 6*(CHAR - 120); } //ё
  else if((CHAR<0x20)||(CHAR>0x7f))
   { position = 6*(CHAR - 192); }
  else
   { position = 6*(CHAR-0x20); }

             for(row=0;row<(12*font_weight); row++)
              for(col=0;col<32;col++)
               {
                if((CHAR<0x20)||(CHAR>0x7f))
                   a = pgm_read_byte(&cyrillic_font5x8[position+(row/(font_weight*2))]);
                else
                   a = pgm_read_byte(&Fonts5x8[position+(row/(font_weight*2))]);

                if ((a >> (col/4)) & 0x01)
                  OLED_PutPixel(X+row,Y+col, color);
               }
      
}
Gera82 вне форума   Ответить с цитированием
Старый 30.08.2011, 14:24   #47
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
Фонтгенератор, генерирует 5 шрифтов из этих двух шрифтов (cyrillic_font5x8 + Fonts5x8), эти функции "подогнаны" именно под этот дисплей, но можно и под другие переделать.

Ув. Gera82, спасибо Вам за ответ.
Т.к. я пока в раздумье, как быть?

Вариант 1, как и у Вас, генерить из одного шрифта шрифты других размеров, подобное я делала, когда работала с ЖК дисплеем PG12864G. Только там я из одного базового шрифта генерила еще два размера, кроме основного.

Вариант 2: Для каждого шрифта писать свой массив, свою заготовку. Плюс в том, что шрифт будет более красивый, более закругленный, минус - дополнительный расход памяти на каждый шрифт..
Belka12 вне форума   Ответить с цитированием
Старый 31.08.2011, 10:23   #48
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Belka12 Посмотреть сообщение

Плюс в том, что шрифт будет более красивый, более закругленный, минус - дополнительный расход памяти на каждый шрифт..
красота требует жертв
Gera82 вне форума   Ответить с цитированием
Старый 28.08.2013, 00:24   #49
Belka12
Member
 
Аватар для Belka12
 
Регистрация: 23.05.2011
Адрес: Климовск, М.обл.
Сообщений: 43
Вес репутации: 100/34
Belka12 will become famous soon enoughBelka12 will become famous soon enough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Цитата:
Сообщение от Gera82 Посмотреть сообщение
красота требует жертв
Это да.

Вот интересно, какова возможность двигать части изображения. Нарпимер, корпус батарейки сдвинуть на пару пикселей вниз или вверх?
Миниатюры
IMG_3118_1.jpg  
Belka12 вне форума   Ответить с цитированием
Старый 30.08.2013, 02:33   #50
Gera82
Senior Member
 
Аватар для Gera82
 
Регистрация: 13.08.2009
Адрес: Frankfurt / Новосибирск
Возраст: 38
Сообщений: 552
Вес репутации: 349/48
Gera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the roughGera82 is a jewel in the rough
По умолчанию Re: Дисплеи от Univision OLED (DD-32645C-1A, DD-9664FC-2A, DD-6448BE-2A, DD-2864BY-1A)

Ну и как, дисплейчик завёлся
ужа ка два года то прошло
Gera82 вне форума   Ответить с цитированием
Ответ

Метки
oled


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

Быстрый переход


Часовой пояс GMT +3, время: 21:09.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot