+ Post New Thread
Results 1 to 19 of 19
  1. #1
    Member level 2
    Points: 3,088, Level: 13

    Join Date
    Jan 2002
    Location
    France
    Posts
    45
    Helped
    11 / 11
    Points
    3,088
    Level
    13

    nokia 6100 lcd

    Hi all ;)

    I finally made my own driver for the pcf8833 controller.
    All i have see on the web was or incomplete or dont have work like i want.
    I post 3 examples here :

    A 3D rotating cube , a mini breakout game , and the good old pong :)
    change the #define from pcf8833.c for set the pin's you use on the CPU.

    Enjoy.

  2. #2
    Junior Member level 2
    Points: 1,944, Level: 10
    Achievements:
    7 years registered

    Join Date
    Oct 2006
    Location
    Bangkok, Thailand.
    Posts
    21
    Helped
    8 / 8
    Points
    1,944
    Level
    10

    nokia 6100 display

    Thank you for posting valuable code :)


    2 members found this post helpful.

    •   Alt27th September 2007, 04:48

      advertising

        
       

  3. #3
    Member level 2
    Points: 3,088, Level: 13

    Join Date
    Jan 2002
    Location
    France
    Posts
    45
    Helped
    11 / 11
    Points
    3,088
    Level
    13

    nokia 6100 display identification

    he he ;)

    A not valuable code is a useless code ;)
    If this one can help you then my job is done :D

    cya and enjoy.


    1 members found this post helpful.

  4. #4
    Full Member level 4
    Points: 3,206, Level: 13
    Achievements:
    7 years registered

    Join Date
    May 2007
    Location
    Hochiminh City university of technology (VietNam)
    Posts
    235
    Helped
    25 / 25
    Points
    3,206
    Level
    13

    nokia 6100 lcd ccs

    hello;
    I have project using GLCD( phillip chipset use for NOKIA 6100)! And I met a big problem when coding with it.I don't know why my code incorrect.Here that code
    Code:
    Code:
    /****************************************************/
    
    // LPC2148    ----->  GLCD(6100 display PCF8833)
    // MOSI(P0.6) ------>  DATA(pin 3 )
    // SCK(P0.4)  ------>  SCK
    // MISO(P0.5) -------  NC
    // P0.2         ------>  RS
    // P0.7) ------------> CS
    //P0.3--------------->Blink
    
    #include "LPC214x.H"    
    /* pototype  section */                                  // LPC2148 MPU Register
    //define for LCD
    /*****************************************************************************
              Command of LCD NOKIA6100(phillips chipset)
    *****************************************************************************/
    #define NOP       0x00 // nop
    #define SWRESET    0x01 // software reset
    #define BSTROFF    0x02 // booster voltage OFF
    #define BSTRON       0x03 // booster voltage ON
    #define RDDIDIF    0x04 // read display identification
    #define RDDST       0x09 // read display status
    #define SLEEPIN    0x10 // sleep in
    #define SLEEPOUT    0x11 // sleep out
    #define PTLON       0x12 // partial display mode
    #define NORON       0x13 // display normal mode
    #define INVOFF      0x20 // inversion OFF
    #define INVON       0x21 // inversion ON
    #define DALO       0x22 // all pixel OFF
    #define DAL       0x23 // all pixel ON
    #define SETCON       0x25 // write contrast
    #define DISPOFF    0x28 // display OFF
    #define DISPON       0x29 // display ON
    #define CASET       0x2A // column address set
    #define PASET       0x2B // page address set
    #define RAMWR       0x2C // memory write
    #define RGBSET       0x2D // colour set
    #define PTLAR       0x30 // partial area
    #define VSCRDEF    0x33 // vertical scrolling definition
    #define TEOFF       0x34 // test mode
    #define TEON       0x35 // test mode
    #define MADCTL       0x36 // memory access control
    #define SEP       0x37 // vertical scrolling start address
    #define IDMOFF       0x38 // idle mode OFF
    #define IDMON       0x39 // idle mode ON
    #define COLMOD       0x3A // interface pixel format
    #define SETVOP       0xB0 // set Vop
    #define BRS       0xB4 // bottom row swap
    #define TRS       0xB6 // top row swap
    #define DISCTR       0xB9 // display control
    #define DOR       0xBA // data order
    #define TCDFE       0xBD // enable/disable DF temperature compensation
    #define TCVOPE       0xBF // enable/disable Vop temp comp
    #define EC          0xC0 // internal or external oscillator
    #define SETMUL       0xC2 // set multiplication factor
    #define TCVOPAB    0xC3 // set TCVOP slopes A and B
    #define TCVOPCD    0xC4 // set TCVOP slopes c and d
    #define TCDF       0xC5 // set divider frequency
    #define DF8COLOR    0xC6 // set divider frequency 8-color mode
    #define SETBS       0xC7 // set bias system
    #define RDTEMP       0xC8 // temperature read back
    #define NLI       0xC9 // n-line inversion
    #define RDID1       0xDA // read ID1
    #define RDID2       0xDB // read ID2
    #define RDID3       0xDC // read ID3
    //define pin
    #define RS (1<<2)
    #define CS (1<<7)
    #define BL (1<<3)
    #define SDA       (1<<6) //MOSI
    #define CLK       (1<<4) //CLK
    //define program
    //*****************************************************************************
    //          Program definition
    //*****************************************************************************/
    #define CS0 IOCLR0 = CS
    #define CS1 IOSET0 = CS
    #define CLK0 IOCLR0 = CLK
    #define CLK1 IOSET0 = CLK
    #define SDA0 IOCLR0 = SDA
    #define SDA1 IOSET0 = SDA
    #define RESET0 IOCLR0 = RS
    #define RESET1 IOSET0 = RS
    
    /* pototype  section */
    //****************************************************************************
    //          Program prototype
    //****************************************************************************
    void lcd_init(void);
    void spi_init(void);
    void sendData(unsigned char data);
    void sendCMD(unsigned char com);
    void LCD_put_pixel(unsigned char color, unsigned char x, unsigned char y);
    
    void delay_ms(unsigned long int);                  // Delay Time Function
    //main function
    
    int main(void)
    {
    unsigned int i;
    //int
    IODIR0 =  CS|CLK|SDA|RS;
    lcd_init();
    while(1)
    {
    for(i=1;i<131;i++)
    {
    LCD_put_pixel(0xFC,i,50);
    }
    //test code
    }
    }    
    //=============spi int==================
    
    void spi_init(void)
    {
       PINSEL0 |= 0x00001500; // set port0.4-0.6 SPI0
     
     // SPI0 initial function LCD6100
         S0SPCCR = 8;       // SPI0 clk = VPB clk /S0PCCR
                     //  7.5 MHz = 60 MHz /8
     // SPI0 Register control
         S0SPCR = 0x00000924; // 9 bit data
                        // CPHA=0, CPOL=0
                           // MPU master
                          // MSB first   
                         // SPIF interrupts unable
    }
    //=============end function==============
    
                         
    /*****************************************************************************
              LCD initial Function
    *****************************************************************************/
    void lcd_init(void)
    {
    int i = 0;
    
      spi_init();
    
      /*** Hardware Reset LCD ***/
      RESET0;
      delay_ms(10);
      RESET1;
      delay_ms(10);
      /*** Initial state ***/
      CS0;               // cho phep LCD
      sendCMD(SWRESET);    // Software Reset LCD
      delay_ms(10);
     
      sendCMD(SLEEPOUT); // Sleep out
      delay_ms(10);
      //sendCMD(INVON);   //seem to be requires for this controller
     
      sendCMD(COLMOD);   // 8 bit color
      sendData(0x02);
      sendCMD(NORON);    // Normal Display
      sendCMD(MADCTL);    //   memory access control
      sendData(0x40);    // Miror X
    
      sendCMD(SETCON);    // set contrast
      sendData(63);   
      delay_ms(10);
    
      sendCMD(DISPON);    // Display ON
      delay_ms(10);
       
       /*** Set Black Coulour to Backgound ***/
       sendCMD(CASET);   
       sendData(0);
       sendData(131);
       sendCMD(PASET);   
       sendData(1);     
       sendData(131);
       sendCMD(RAMWR);         
       for(i=0;i<(131*131);i++)
       {
          sendData(0);
        }
    }
    
    /*****************************************************************************
              Send command to LCD Function
    *****************************************************************************/
    void sendCMD(unsigned char com)
    {   
           CS0;// chip select enable
         S0SPDR = com & ~0x0100;// For Command MSB "LOW"
         while((S0SPSR & 0x80)!= 0x80){;;}   // Wait SPIF = 1 (SPI Send Complete)
         CS1; //unselect
    }
    
    /*****************************************************************************
              Send Data to LCd function
    *****************************************************************************/
    void sendData(unsigned char data)
    {
      CS0;
      S0SPDR  = data | 0x0100;// For Data MSB must "HIGH"
      while((S0SPSR & 0x80)!= 0x80){;;}   // Wait SPIF = 1 (SPI Send Complete)
      CS1;
    }
    
    /*****************************************************************************
              LCD plot pixel on LCD Function
    *****************************************************************************/
    
    void LCD_put_pixel(unsigned char color, unsigned char x, unsigned char y)
    {
      sendCMD(PASET);   // page start/end ram  = Row
      sendData(y);
      sendData(131);
      sendCMD(CASET);   // column start/end ram = Colum
      sendData(x);     
      sendData(131);
      sendCMD(RAMWR);    // write DATA
      sendData(color);
    }
    /***********************/
    /* Delay Time Function */
    /***********************/
    
    void delay_ms(unsigned long int count1)
    {
    unsigned int i,k;
    k=count1*2600;
      for(i=0;i<k;i++);                     // Loop Decrease Counter   
    }


    1 members found this post helpful.

  5. #5
    Full Member level 4
    Points: 4,746, Level: 16

    Join Date
    Jan 2000
    Location
    Pakistan
    Posts
    235
    Helped
    13 / 13
    Points
    4,746
    Level
    16

    pcf8833.c

    Hi Darth.Vader
    can you please translate ur comments in above codes into English.
    Thanks
    sadat007


    1 members found this post helpful.

  6. #6
    Member level 2
    Points: 3,088, Level: 13

    Join Date
    Jan 2002
    Location
    France
    Posts
    45
    Helped
    11 / 11
    Points
    3,088
    Level
    13

    nokia 6100 lcd ccs c compiler

    Hi ;)

    I will do this tomorow ....
    be patient or learn French ... hehe ...

    cya latter ;)

    Added after 27 minutes:

    I finaly translate the driver file directly :)

    Enjoy ;)

    PS : i have use CCS C Compiler for PIC controler ...


    2 members found this post helpful.

  7. #7
    Newbie level 5
    Points: 1,479, Level: 8
    Achievements:
    7 years registered

    Join Date
    Sep 2007
    Posts
    8
    Helped
    0 / 0
    Points
    1,479
    Level
    8

    nokia 6100 lcd contrast

    Hi friends.
    I want begin project with 6100. does this code complete . who test this code?
    Can I use this code for 6100 display?



  8. #8
    Full Member level 2
    Points: 2,777, Level: 12

    Join Date
    Aug 2004
    Posts
    135
    Helped
    8 / 8
    Points
    2,777
    Level
    12

    nokia 6100 lcd pinouts

    See this file.It 's work for Philips and Epson.


    1 members found this post helpful.

    •   Alt16th April 2008, 12:13

      advertising

        
       

  9. #9
    Member level 2
    Points: 3,088, Level: 13

    Join Date
    Jan 2002
    Location
    France
    Posts
    45
    Helped
    11 / 11
    Points
    3,088
    Level
    13

    proteus nokia 6100

    Hi ;)

    @ ROBOTICAR : Sure it work , it's for PIC Microcontroller and the sources are in CCS C.
    For your question about testing , i'm the writer from the 3D rotating cube , mini breakout game , and pong , and it ... work :)

    Cya.


    1 members found this post helpful.

    •   Alt16th April 2008, 16:35

      advertising

        
       

  10. #10
    Newbie level 5
    Points: 1,479, Level: 8
    Achievements:
    7 years registered

    Join Date
    Sep 2007
    Posts
    8
    Helped
    0 / 0
    Points
    1,479
    Level
    8

    glcd_img

    Hi Dear Darth.Vader .


    thanks a lot . I need it but I have some questions.
    where is the <FONT57.c> and <FONT812.c> and <image.c>?
    CCS can't include them.

    and another:
    Can I show image on 6100 with this code? how?



  11. #11
    Member level 2
    Points: 3,088, Level: 13

    Join Date
    Jan 2002
    Location
    France
    Posts
    45
    Helped
    11 / 11
    Points
    3,088
    Level
    13

    lcd nokia 6100

    Hi ,

    For example , take the 'Pong' sources ...
    They are all file in it.
    This fonts and images files are loaded from the pcf8833 driver.

    #include <FONT57.c>
    #include <FONT812.c>
    #include <image.c>

    Now for get image on your display ...
    You have first to make the array of points from your image and put them in the image.c file under :

    STATIC CONST UNSIGNED INT8 img []={0x0000,0x0000,pts color , pts color , pts color ... etc , etc , etc ....};

    the two first 0x0000,0x0000 rerpesent the size in X and Y from your image ...
    all the next data represent the colors of each point.

    the glcd_img(char x, char y) is here for display your picture.
    x and y are the coord from the start where the picture will be show in your screen.

    Now if you have a sequence of images to show one animation you have to use the
    glcd_anim(char x, char y, int8 frame, int16 wait) ... it work like the glcd_img function , the only difference is that it show the animation from many picture , the 'frame' is how much pict you have to show and the 'wait' is how much Ms you wait betwen 2 pictures .
    the array to fill in image.c is then :
    STATIC CONST UNSIGNED INT8 img_a []={0x0000,0x0000,pts color , pts color , pts color ... etc , etc , etc ....};
    the only difference is that the points from ALL of your images have to be present in the array.

    Enjoy :D



  12. #12
    Newbie level 1
    Points: 669, Level: 5

    Join Date
    Mar 2009
    Location
    Curitiba PR Brasil
    Posts
    1
    Helped
    0 / 0
    Points
    669
    Level
    5

    nokia 6100 driver lcd

    Hi there!

    I´m very happy to found this codes, specially thanks to DartVader!!!

    I agree that there´s no complete code on internet, i have to use various codes to implement my own on nokia 3310 bw display!

    now i have a full lib for this one (nokia 3310) working good!

    if anybody want it, just mail -me!

    i´ll go to next step: nokia 6100 experiments with 16F877A Chip!

    Thanks for all this sources!

    Hamilton



  13. #13
    Newbie level 1
    Points: 719, Level: 5

    Join Date
    Apr 2009
    Posts
    1
    Helped
    0 / 0
    Points
    719
    Level
    5

    write a image on lcd 6100

    Thanks for the codes Darth.Vader.

    But i have some question for you and the forum members. Please take into account that, even though i have some experience about electronics and c programming, i am completely newbie about microcontroller programming and lcd's.

    1. I have a "Nokia 3120" lcd screen. According to this page, it is compatible for the "Nokia 6100" lcd screens. My questions is , this two different controller issue will apply to my Nokia 3120 lcd?. If you have any idea about Nokia 3120 lcd controller(philips or epson) or possible source for it, please post.

    2. What is the pinouts for PIC18F4680 and the lcd, which microcontroller pin goes which lcd pin.

    3. As previous commenter, i am trying to make a compatible driver for pic16f877a or pic16f876a. After cut out font functions from "pcf8833.c "(sorry), i was able to build a hex file. For now it' s seems to be working in ISIS(Proteus) simulations with no problem.

    If someone verify that this code can generate a "centred parallel green line" with a black background for pcf8833 controlled lcd by using "pic16f877a", it will be much appreciated.

    Code:
    #include "picsss.h"
    #include <pcf8833.c>
    
    void main()
    {
    
       setup_adc_ports(NO_ANALOGS);
       setup_adc(ADC_OFF);
       setup_psp(PSP_DISABLED);
       setup_spi(FALSE);
       setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
       setup_timer_1(T1_DISABLED);
       setup_timer_2(T2_DISABLED,0,1);
       setup_comparator(NC_NC_NC_NC);
       setup_vref(FALSE);
    
     set_tris_c(0x00);
    
       output_c(0x00);
    
       delay_ms(1000);
    
       glcd_init(65);
    
       glcd_cls(BLACK);
    
       glcd_line(0,64,128,64,GREEN);
    }
    Sorry about mess but if i knew the pinouts for PIC18F4680 at the first place, i could verify myself.

    I had also uploaded driver source files for "pic16f877a", take a look at for details.



  14. #14
    Member level 2
    Points: 844, Level: 6

    Join Date
    Mar 2010
    Posts
    51
    Helped
    1 / 1
    Points
    844
    Level
    6

    Re: write a image on lcd 6100

    Could the Gurus of this thread support me on the other similar thread here please? http://www.edaboard.com/thread189740.html#post793366



    •   Alt6th October 2010, 11:50

      advertising

        
       

  15. #15
    Newbie level 1
    Points: 213, Level: 2

    Join Date
    Oct 2011
    Posts
    1
    Helped
    0 / 0
    Points
    213
    Level
    2

    Re: nokia 6100 lcd

    Quote Originally Posted by Darth.Vader View Post
    Hi all ;)

    I finally made my own driver for the pcf8833 controller.
    All i have see on the web was or incomplete or dont have work like i want.
    I post 3 examples here :

    A 3D rotating cube , a mini breakout game , and the good old pong :)
    change the #define from pcf8833.c for set the pin's you use on the CPU.

    Enjoy.
    i need simple nokia 6100 lcd initialize code
    plz...
    help me...



  16. #16
    Newbie level 1
    Points: 169, Level: 2

    Join Date
    Jan 2012
    Posts
    1
    Helped
    0 / 0
    Points
    169
    Level
    2

    Re: Nokia 6100 LCD with CCS C

    Hello Guys...
    I am really facing some problem and need your help...

    I have successfully interfaced an epson controller LCD but now I have an LCD with philips(I am not sure coz i dont have exact datasheet, i think it is coz my epson driver is not working)...and more interestingly one aitendo interface is with it and it doesnot have any pin out for reset...Is it possible to initialise without that pin and if yes then how ?

    ---------- Post added at 12:04 ---------- Previous post was at 11:56 ----------

    Nice post dear....can u plz tell me is it possible to initializ any LCD without any hardware reset...plz i need ur help....coz i have an LCD with an AITENDO interface board which doesnot have any reset pinout...



  17. #17
    Newbie level 1
    Points: 117, Level: 1

    Join Date
    Apr 2012
    Location
    Rio de Janeiro - Brazil
    Posts
    1
    Helped
    0 / 0
    Points
    117
    Level
    1

    Re: Nokia 6100 LCD with CCS C

    Hi there!

    I have an LCD Nokia 6100 with philips pcf8833. I am trying to find a compatible driver to put it working with a pic16f877a.
    The driver made by Darth.Vader, is shown the following error when I try to compile it: In "FONT812.c" <error87: Data item too big>. And I read that acce had problem to make it compatible with pic16f877a.
    Could someone help me...



  18. #18
    Newbie level 1
    Points: 114, Level: 1

    Join Date
    May 2012
    Posts
    1
    Helped
    0 / 0
    Points
    114
    Level
    1

    Re: Nokia 6100 LCD with CCS C

    Fantatic!!!!!! Thank you a lot!
    I test with PIC 18F4520 and works fine!!!

    THANK YOU A LOT!!!!!!!!!!!!!!!!!
    Now, i have one question, I test the 3D cube. Can I move it more fast???



  19. #19
    Member level 2
    Points: 3,088, Level: 13

    Join Date
    Jan 2002
    Location
    France
    Posts
    45
    Helped
    11 / 11
    Points
    3,088
    Level
    13

    Re: Nokia 6100 LCD with CCS C

    just increment the axis angle for each step with bigger value



--[[ ]]--