This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EZDSP5535 - OSD9616 - printLetter(0x01,0x7C,0x04,0x01); // Y - Anyone have a complete library?

Hello All,

Any one have the complete printable ASCII's for the EZDSP_OSD9616 display - or know where to grab it?

I went to the OSD Displays site - tried to log in - looks like something is wrong with their current login screen or something.

Thanks In Advance,
johnw 

  • Hello,

    No one has all of the characters done in a file/library?

    TIA,
    johnw 

  • Hi,

    I am also facing the same problem...

    Could you find the lib for this???

  • Hey,

    I know it is a old question, but maybe that will help somebody else who is searching information about this topic.

    You do not need a additional ascii libary on C553x for oled as there is a graphical 6x8dots (and ascii) charset included in ROM. To use it you must link that code section it to your code and write a function which use this table to generate correct ascii symbol.

    -----------------------------------------------------------------------------

    Example:

    #pragma DATA_SECTION(charset_6x8, ".gcharrom")
    unsigned int charset_6x8[256*3];                                                      

    // graphical charset (included in-chip rom of C553x), 6Bytes are(draw) one symbol
    // ascii standard table is 256Bytes x 6 = 1536Bytes
    // to get start of symbol multiply ascii value with 3 (! because of int16 in memory)
    // e.g. ascii char symbol: A => 65d position in memory is 195d (0xc3) (! word addr.)
    //      => byte_of_charA[0]=0xc3(high), byte_of_charA[1]=0xc3(low), byte_of_charA[2]=0xc4(high), ...

        void printc_oled(char symbol) {
        
            unsigned int *chargen         = &charset_6x8[(symbol&0xff)*3];                  // start addr. in rom grapical charset
            unsigned int data[2];
            unsigned int i;
            
            for (i=0; i<3; i++) {                                                                   
                data[0] = chargen[i]>>8;                                                     // seperate int16 words of 6x8Byte grapical charset
                data[1] = chargen[i]&0xff;                                                    // to bytes (high and low)
                com_i2c_tx(OLED,2,OLED_DATA,&data[0]);                  // write char on oled (into internal gram of oled) via i2c
            }                                    
        }

    print_oled('T');print_oled('E');print_oled('S');print_oled('T');     // write on oled

    -----------------------------------------------------------------------------

    Additional you need to link the .gcharrom via your cmd linke file to adresse 0xfe0000 (see SPRABL7A for more information), Example:

    MEMORY

    {

    ...

        GCROM    (RX) : origin = 0xfe0000 length = 000600h          // on-chip ROM graphic chartable 6x8 (1536 Byte)

    }

    SECTIONS

    {

    ...

        .gcharrom    : > GCROM                                    // graphical chartable 6x8 pixel

    }

    I hope that helps!

    Regards,

    Max

  • Hi, I need to solve this kind of problem. According to your example, I got the copiling error about "OLED_DATA" and "OLED" undefined. Can you give me more description about your code? Thanks, you really do me a great help.

  • Very impressive. I tried your code and it worked. Thank you so much for saving me a lot of time. Just out of curiosity how did you figure out that they character set is stored in ROM. I looked in every documentation I can find, and no where does it mention that.
  • What I did is used the send function from the BSL that comes with the board. All the code that Max provided compiled. The only thing that I changed is used

    EZDSP5535_OSD9616_send(0x40,data[0]);
    EZDSP5535_OSD9616_send(0x40,data[1]);

    instead of
    com_i2c_tx(OLED,2,OLED_DATA,&data[0]);

    You can use the lcd-osd9616 test code provided through spectrum digital as a start.
  • Hey everybody,

    I used my own I2C stack, so define of OLED is I2C adr. (0x3c) and define OLED_DATA is command to OLED that next send data is data to display (and not a command). You can use EZDSP function instead like Aly mentioned.


    Best regards,

    Max

  • Hi,

    Sorry to revive an old thread but I was wondering how do I go about linking .gcharrom to the address 0xfe0000 like you mentioned earlier in the thread? I feel like I have looked everywhere can can't seem to figure it out so any help would be appreciated. Thank you in advance.

    Regards,

    Ulbert
  • Hi Ulbert,

    you need to do that in you linker file (*.cmd file) like I mentioned at the end of my old post:

    This few lines will do the job:

    MEMORY

    {

    ...

        GCROM    (RX) : origin = 0xfe0000 length = 000600h          // on-chip ROM graphic chartable 6x8 (1536 Byte)

    }

    SECTIONS

    {

    ...

        .gcharrom    : > GCROM                                    // graphical chartable 6x8 pixel

    }

    First block will select array of memory (origin plus length) and second block will link it to .gcharrom mark (which I use later in my *.c file).

    I hope that will help.

    Regards,

    Max

  • Hey Max,

    Thank you so much. I figured it out. It seems my project was missing the linker file, so I had to copy and paste it from another project to my directory. Afterwards it was as straightforward as you suggested. Thank you for your advice.

    Sincerely,

    Ulbert