This is a multi part question about interfacing with a CFAG12232J-TFH-TA display, I am controlling the display from general purpose port lines of a MCF5272, and I am trying to create low level functions to implement the commands supported by the display. I am following the timing charts for 68-type micro controller since the reset line is active low.
My understanding about the display is that internally uses a pair of SBN1661_M18, connected in a master-slave configuration to drive all 122 columns and 32 rows the display has. The first driver connects to the right most 61 columns of the display from segment outputs SEG0 through SEG60, and to the top 16 rows of the display from common outputs COM0 through COM15. Similarly the second driver connects to the remaining 61 columns and the bottom 16 rows of the display using SEG0 through SEG60 and COM0 through COM15 respectively. The drivers share all 8 lines of the data bus, and they are activated individually by controlling their high active E line. Is this accurate?
1- I believe I am successfully reading the status of each driver by issuing the read status command to each driver while enabling only the driver to which the command is issued (since they both share the same data lines). Is this the way the display must be read? One driver at a time? The problem I am having is that right after a hardware reset, when I read the status both drivers report the MAPPING bit=1 (Inverted Mapping) while the documentation shows that that bit should default to 0 after a reset.
2- So far I have been unsuccessful making the display display anything at all. I understand that before writing to the display one should correctly set the page and column registers and then issue the write command which in turn will write and auto-increment the column register. I don't seem to be successful programing the page or column address registers. I basically don't understand which values I should program in each of the registers for each of the drivers, I also assume that I should write to only one driver at a time while keeping the other one disabled. Is this correct?
Also, if both drivers are connected to different groups of rows does that mean that driver 1 will always operate between pages 0 and 1 and driver 2 will operate between pages 2 and 3 or will both drivers operate between pages 0 and 1. As far as the columns would the column register of each driver be always set to a number between 0 and 60?
So if I wanted to write to rows 0 through 7 for column 0, I would only activate the first driver and set the page register and column register both to 0 and issue the write command to that one driver only. Is this correct? So, for rows 8 through 15 of column 0, I would set the page register to 1 while talking only to the first driver.
The problem comes when I want to write to any location whose column is controlled by the first driver (0 through 60), while the rows are controlled by the second driver (16 to 31). How do I set the page and column registers for each driver now? and to which driver should I send the write command?
I know this is a length e-mail but I have been fighting this for a while now with no results so far. Your help will be appreciated. Thanks
My understanding about the display is that internally uses a pair of SBN1661_M18, connected in a master-slave configuration to drive all 122 columns and 32 rows the display has. The first driver connects to the right most 61 columns of the display from segment outputs SEG0 through SEG60, and to the top 16 rows of the display from common outputs COM0 through COM15. Similarly the second driver connects to the remaining 61 columns and the bottom 16 rows of the display using SEG0 through SEG60 and COM0 through COM15 respectively. The drivers share all 8 lines of the data bus, and they are activated individually by controlling their high active E line. Is this accurate?
1- I believe I am successfully reading the status of each driver by issuing the read status command to each driver while enabling only the driver to which the command is issued (since they both share the same data lines). Is this the way the display must be read? One driver at a time? The problem I am having is that right after a hardware reset, when I read the status both drivers report the MAPPING bit=1 (Inverted Mapping) while the documentation shows that that bit should default to 0 after a reset.
2- So far I have been unsuccessful making the display display anything at all. I understand that before writing to the display one should correctly set the page and column registers and then issue the write command which in turn will write and auto-increment the column register. I don't seem to be successful programing the page or column address registers. I basically don't understand which values I should program in each of the registers for each of the drivers, I also assume that I should write to only one driver at a time while keeping the other one disabled. Is this correct?
Also, if both drivers are connected to different groups of rows does that mean that driver 1 will always operate between pages 0 and 1 and driver 2 will operate between pages 2 and 3 or will both drivers operate between pages 0 and 1. As far as the columns would the column register of each driver be always set to a number between 0 and 60?
So if I wanted to write to rows 0 through 7 for column 0, I would only activate the first driver and set the page register and column register both to 0 and issue the write command to that one driver only. Is this correct? So, for rows 8 through 15 of column 0, I would set the page register to 1 while talking only to the first driver.
The problem comes when I want to write to any location whose column is controlled by the first driver (0 through 60), while the rows are controlled by the second driver (16 to 31). How do I set the page and column registers for each driver now? and to which driver should I send the write command?
I know this is a length e-mail but I have been fighting this for a while now with no results so far. Your help will be appreciated. Thanks
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.