 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Raptor Član


Pridružen-a: Sob 22 Mar 2008 14:20 Prispevkov: 533 Aktiv.: 2.54 Kraj: Ravne na Koroškem/Maribor
|
Objavljeno: Ned Nov 14, 2010 12:29 am Naslov sporočila: Težava z grafičnim LCDjem |
|
|
Kupil sem GLCD oznake JHD240128D. Datasheet se nahaja TUKAJ.
Ima Toshibin čip T6963C.
Za začetek sem ga hotel preizkusiti kar s primerom, ki je zraven v programu mikroC. Namesto PIC18F4520 sem jaz uporabil 18F452. Zaslon sem priklopil tako, kot je bilo definirano. Povezal nisem edino MD signala, ker ga pri mojemu zaslonu tudi ni. Vse kar dobim na zaslonu je ena ravna črta ob resetu. Prosim za pomoč vse, ki bi lahko vedeli kaj je narobe.
Koda: |
/*
* Project Name:
T6963C_240x128 (GLCD Library demo for Toshiba's T6963 Controller)
* Copyright:
(c) Mikroelektronika, 2008.
* Revision History:
20080930:
- initial release; Credits to Bruno Gavand.
* Description:
This code in intended to work with GLCD's based on TOSHIBA T6963C controller.
Pressing buttons RB0 .. RB4 generates commands for text and graphic displaying.
This parts may need a -15V power supply on Vee for LCD drive,
a simple DC/DC converter can be made with a 2N2905, 220 µH self, diode & 47 µF cap,
transistor base is driven with PWM through a current limiting resistor.
This parts have a 8 Kb built-in display RAM, this allows 2 graphics panels
and one text panel.
* Test configuration:
MCU: PIC18F4520
Dev.Board: EasyPIC5
Oscillator: HS-PLL, 8.0000 MHz
Ext. Modules: mE T6963C 240x128 Parallel Adapter on PORTC(Control) and PORTD(Data),
T6963C display 240x128 pixels
SW: mikroC PRO for PIC
* NOTES:
- Put button jumper (J17) into Vcc position and pull-down PORTB.
*/
#include "__T6963C.h"
// T6963C module connections
char T6963C_dataPort at PORTD; // DATA port
sbit T6963C_ctrlwr at RC2_bit; // WR write signal
sbit T6963C_ctrlrd at RC1_bit; // RD read signal
sbit T6963C_ctrlcd at RC0_bit; // CD command/data signal
sbit T6963C_ctrlrst at RC4_bit; // RST reset signal
sbit T6963C_ctrlwr_Direction at TRISC2_bit; // WR write signal
sbit T6963C_ctrlrd_Direction at TRISC1_bit; // RD read signal
sbit T6963C_ctrlcd_Direction at TRISC0_bit; // CD command/data signal
sbit T6963C_ctrlrst_Direction at TRISC4_bit; // RST reset signal
// Signals not used by library, they are set in main function
sbit T6963C_ctrlce at RC3_bit; // CE signal
sbit T6963C_ctrlfs at RC6_bit; // FS signal
sbit T6963C_ctrlmd at RC5_bit; // MD signal
sbit T6963C_ctrlce_Direction at TRISC3_bit; // CE signal direction
sbit T6963C_ctrlfs_Direction at TRISC6_bit; // FS signal direction
sbit T6963C_ctrlmd_Direction at TRISC5_bit; // MD signal direction
// End T6963C module connections
/*
* bitmap pictures stored in ROM
*/
const code char mikroE_240x128_bmp[];
const code char einstein[];
void main() {
char txt1[] = " EINSTEIN WOULD HAVE LIKED mE";
char txt[] = " GLCD LIBRARY DEMO, WELCOME !";
unsigned char panel; // Current panel
unsigned int i; // General purpose register
unsigned char curs; // Cursor visibility
unsigned int cposx, cposy; // Cursor x-y position
#define COMPLETE_EXAMPLE // comment this line to make simpler/smaller example
ADCON1 |= 0x0F; // Configure AN pins as digital
TRISB0_bit = 1; // Set RB0 as input
TRISB1_bit = 1; // Set RB1 as input
TRISB2_bit = 1; // Set RB2 as input
TRISB3_bit = 1; // Set RB3 as input
TRISB4_bit = 1; // Set RB4 as input
T6963C_ctrlce_Direction = 0;
T6963C_ctrlce = 0; // Enable T6963C
T6963C_ctrlfs_Direction = 0;
T6963C_ctrlfs = 0; // Font Select 8x8
T6963C_ctrlmd_Direction = 0;
T6963C_ctrlmd = 0; // Column number select
// Initialize T6963C
T6963C_init(240, 128, 8);
/*
* Enable both graphics and text display at the same time
*/
T6963C_graphics(1);
T6963C_text(1);
panel = 0;
i = 0;
curs = 0;
cposx = cposy = 0;
/*
* Text messages
*/
T6963C_write_text(txt, 0, 0, T6963C_ROM_MODE_XOR);
T6963C_write_text(txt1, 0, 15, T6963C_ROM_MODE_XOR);
/*
* Cursor
*/
T6963C_cursor_height(8); // 8 pixel height
T6963C_set_cursor(0, 0); // Move cursor to top left
T6963C_cursor(0); // Cursor off
/*
* Draw rectangles
*/
T6963C_rectangle(0, 0, 239, 127, T6963C_WHITE);
T6963C_rectangle(20, 20, 219, 107, T6963C_WHITE);
T6963C_rectangle(40, 40, 199, 87, T6963C_WHITE);
T6963C_rectangle(60, 60, 179, 67, T6963C_WHITE);
/*
* Draw a cross
*/
T6963C_line(0, 0, 239, 127, T6963C_WHITE);
T6963C_line(0, 127, 239, 0, T6963C_WHITE);
/*
* Draw solid boxes
*/
T6963C_box(0, 0, 239, 8, T6963C_WHITE);
T6963C_box(0, 119, 239, 127, T6963C_WHITE);
#ifdef COMPLETE_EXAMPLE
/*
* Draw circles
*/
T6963C_circle(120, 64, 10, T6963C_WHITE);
T6963C_circle(120, 64, 30, T6963C_WHITE);
T6963C_circle(120, 64, 50, T6963C_WHITE);
T6963C_circle(120, 64, 70, T6963C_WHITE);
T6963C_circle(120, 64, 90, T6963C_WHITE);
T6963C_circle(120, 64, 110, T6963C_WHITE);
T6963C_circle(120, 64, 130, T6963C_WHITE);
T6963C_sprite(76, 4, einstein, 88, 119); // Draw a sprite
T6963C_setGrPanel(1); // Select other graphic panel
T6963C_image(mikroE_240x128_bmp); // Draw an image
#endif
for(;;) { // Endless loop
/*
* If RB0 is pressed, display only graphic panel
*/
if(RB0_bit) {
T6963C_graphics(1);
T6963C_text(0);
Delay_ms(300);
}
#ifdef COMPLETE_EXAMPLE
/*
* If RB1 is pressed, toggle the display between graphic panel 0 and graphic panel 1
*/
else if(RB1_bit) {
panel++;
panel &= 1;
T6963C_displayGrPanel(panel);
Delay_ms(300);
}
#endif
/*
* If RB2 is pressed, display only text panel
*/
else if(RB2_bit) {
T6963C_graphics(0);
T6963C_text(1);
Delay_ms(300);
}
/*
* If RB3 is pressed, display text and graphic panels
*/
else if(RB3_bit) {
T6963C_graphics(1);
T6963C_text(1);
Delay_ms(300);
}
/*
* If RB4 is pressed, change cursor
*/
else if(RB4_bit) {
curs++;
if(curs == 3) curs = 0;
switch(curs) {
case 0:
// no cursor
T6963C_cursor(0);
break;
case 1:
// blinking cursor
T6963C_cursor(1);
T6963C_cursor_blink(1);
break;
case 2:
// non blinking cursor
T6963C_cursor(1);
T6963C_cursor_blink(0);
break;
}
Delay_ms(300);
}
/*
* Move cursor, even if not visible
*/
cposx++;
if(cposx == T6963C_txtCols) {
cposx = 0;
cposy++;
if(cposy == T6963C_grHeight / T6963C_CHARACTER_HEIGHT) {
cposy = 0;
}
}
T6963C_set_cursor(cposx, cposy);
Delay_ms(100);
}
} |
|
|
Nazaj na vrh |
|
 |
California Član

Pridružen-a: Pet 26 Avg 2005 19:48 Prispevkov: 236 Aktiv.: 1.00 Kraj: Hrastnik
|
Objavljeno: Ned Nov 14, 2010 8:23 am Naslov sporočila: |
|
|
Poizkusi MD povezati na +5V ali na GND.
Si upošteval tole:
* NOTES:
- Put button jumper (J17) into Vcc position and pull-down PORTB.
Lp.
Vlado
_________________ California |
|
Nazaj na vrh |
|
 |
Bozo Član


Pridružen-a: Čet 08 Jan 2004 9:21 Prispevkov: 660 Aktiv.: 2.79 Kraj: Lendava, Trimlini
|
Objavljeno: Ned Nov 14, 2010 10:51 am Naslov sporočila: |
|
|
Tukaj imaš data od mojega LCD, poglej pin18 vezal sem ga na GND.
LP
Božo
Opis: |
|
 Download |
Ime datoteke: |
w240-7.pdf |
Velikost datoteke: |
302.72 KB |
Downloadano: |
8 krat |
|
|
Nazaj na vrh |
|
 |
Raptor Član


Pridružen-a: Sob 22 Mar 2008 14:20 Prispevkov: 533 Aktiv.: 2.54 Kraj: Ravne na Koroškem/Maribor
|
Objavljeno: Ned Nov 14, 2010 12:28 pm Naslov sporočila: |
|
|
Jaz MD pina ne morem vezati nikamor ker ga nimam. Na PORTB so pull-down upori, sem pa preizkušal tudi s programom, ki nima tipk. Priklopljeno imam tudi -15V napajanje na LCDju.
Opis: |
|
Velikost datoteke: |
147.49 KB |
Pogledana: |
0 krat |

|
|
|
Nazaj na vrh |
|
 |
Bozo Član


Pridružen-a: Čet 08 Jan 2004 9:21 Prispevkov: 660 Aktiv.: 2.79 Kraj: Lendava, Trimlini
|
Objavljeno: Ned Nov 14, 2010 2:16 pm Naslov sporočila: |
|
|
Daj gor načrt povezave. Načrt po katerem sem jaz delal se ni ujemal z mojim LCDjem, zato sem vezal moj LCD po programu ki je bil zelo dobro komentiran. Na načrtu nisem imel MD imel sem pa FG, torej pripelji MD na pin FG na LCD. Negativno napetost nisem priklopil, ampak sem pin 17 povezal po slikici zraven na poteciometer od kontrasta. Tako bi moralo delat.
LP
Božo
|
|
Nazaj na vrh |
|
 |
Raptor Član


Pridružen-a: Sob 22 Mar 2008 14:20 Prispevkov: 533 Aktiv.: 2.54 Kraj: Ravne na Koroškem/Maribor
|
Objavljeno: Ned Nov 14, 2010 2:46 pm Naslov sporočila: |
|
|
Povezano sem imel tako:
1FG.....GND
2GND.....GND
3Vdd.....+5V
4Vo.....sredinski odcep trimmerja
5WR.....RC2-WR
6RD.....RC1-RD
7CE.....RC3-CE
8C/D.....RC0-CD
9RST.....RC4-RST
10DB0-17DB7.....PORTD0-7
18FS.....RC6-FS
19VEE.....-15V
20LED+.....+5V
Zdaj sem povezal prvi pin na RC5 in pin 19 na trimmer ampak žal še vedno ne dela. Sem pa opazil, da vleče LCD malo prevelik tok (okoli 1A brez osvetlitve).
|
|
Nazaj na vrh |
|
 |
igor_k Član

Pridružen-a: Pon 19 Jul 2004 11:44 Prispevkov: 1011 Aktiv.: 4.27 Kraj: Rače
|
Objavljeno: Ned Nov 14, 2010 2:50 pm Naslov sporočila: |
|
|
Če vleče 1A se je verjetno že poslovil....
|
|
Nazaj na vrh |
|
 |
Raptor Član


Pridružen-a: Sob 22 Mar 2008 14:20 Prispevkov: 533 Aktiv.: 2.54 Kraj: Ravne na Koroškem/Maribor
|
Objavljeno: Ned Nov 14, 2010 2:51 pm Naslov sporočila: |
|
|
To tudi mene skrbi. Še vedno pa se prikazuje tista slavna črta.
|
|
Nazaj na vrh |
|
 |
Bozo Član


Pridružen-a: Čet 08 Jan 2004 9:21 Prispevkov: 660 Aktiv.: 2.79 Kraj: Lendava, Trimlini
|
Objavljeno: Ned Nov 14, 2010 5:15 pm Naslov sporočila: |
|
|
Pri meni je FG (MD) na masi tudi po načrtu. Zato je bila poraba pri tebi 1A. Moj LCD ima 20 pinov + 2 pina za osvetlitev, torej 22. Bil bi sigurno primeren za tvojo aplikacijo. Očitno si nabavil napačnega. Žal nebi več vedel kaj povedat.
LP
Božo
|
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Ned Nov 14, 2010 5:20 pm Naslov sporočila: |
|
|
Kakšna pa je velikost displeja? Pri velikih osvetlitev poje kar veliko toka. Drugače pa običajno črna črta pomeni, da napajanje ima, ne dobi pa pravilnih ukazov po vodilu. Imaš nastavljeno primerno frekvenco procesorja? Ali je krmilnik podprt s strani razvojnega okolja?
_________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
 |
Bozo Član


Pridružen-a: Čet 08 Jan 2004 9:21 Prispevkov: 660 Aktiv.: 2.79 Kraj: Lendava, Trimlini
|
Objavljeno: Ned Nov 14, 2010 5:28 pm Naslov sporočila: |
|
|
Pri meni kompletno vezje z osvetlitvijo okoli 290 mA.
LP
Božo
|
|
Nazaj na vrh |
|
 |
igor_k Član

Pridružen-a: Pon 19 Jul 2004 11:44 Prispevkov: 1011 Aktiv.: 4.27 Kraj: Rače
|
Objavljeno: Ned Nov 14, 2010 5:54 pm Naslov sporočila: |
|
|
Če vleče 1A brez osvetlitve je konec z njim, razen če imaš kje kakšenj stik že pred LCD-jem.
|
|
Nazaj na vrh |
|
 |
Raptor Član


Pridružen-a: Sob 22 Mar 2008 14:20 Prispevkov: 533 Aktiv.: 2.54 Kraj: Ravne na Koroškem/Maribor
|
Objavljeno: Ned Nov 14, 2010 6:39 pm Naslov sporočila: |
|
|
Verjetno sem ga res uničil. Na začetku sem ga lahko napajal kar z ICDjem, zdaj pa je osvetlitev zaslona zelo slaba, če priklopim samo ICD2. Zdaj sem ugotovil, da se greje samo LMC7660. Bom šel jutri v lov za njim in ga zamenjal, če ne pa kupil nov LCD.
@Highlag, velikost zaslona je 240x128 ampak kot sem napisal ni bilo problemov z napajanjem iz USBja. Možno je, da je napačna frekvenca procesorja. S strani mikroC-ja pa je podprt saj je knjižnica in nekaj primerov za ta krmilnik, ki ga ima zaslon.
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Nov 14, 2010 6:43 pm Naslov sporočila: |
|
|
Je SMD ali običajen? Verjetno mimam kak kos doma. (moram preverit)
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Raptor Član


Pridružen-a: Sob 22 Mar 2008 14:20 Prispevkov: 533 Aktiv.: 2.54 Kraj: Ravne na Koroškem/Maribor
|
Objavljeno: Ned Nov 14, 2010 6:49 pm Naslov sporočila: |
|
|
SMD. Saj sem med tednom v Mariboru tako, da bom preveril zalogo v teh trgovinah.
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|