Posts Tagged ‘SPI’
For who need SH1101A OLED driver, I’m posting here my code (written in Microchip C18, but easly to port to other platform) to help more people on get use this great OLED display. It’s not finished, yet, but it’s very useful.
The code has geometric draw functions to draw single pixel, lines, rectangles and circles with fill option. There’s characters output functions too, with 8×6 pixel font.
The icons for Battery (animated), Bluetooth, WiFi, Sound (animated), etc are on the code too.
Some example of available functions are:
- SetPixel(), GetPixel();
- Character output functions, PutROMString(), PutString();
In the code you’ll find a DS18B20 Dallas OneWire Digital Temperature sensor driver too. That’s a limited version (only work for one sensor in OneWire bus) but works great. You get a float reading plus a string with temperature value (in Celsius Degrees). More improvements coming soon.
Well, let’s go to download link:
If you have any trouble with that code, email-me or let me a comment.
Some mounts ago I’ve bought a PIC24F Starter Kit. It’s a very nice development kit from Microchip for who wants know about USB OTG, Capacitive Touch Sensor and more. But I really like is the OLED display it comes.
The OLED is very small but with a good resolution (128×64 pixel). It’s monochrome black and white and, believe or not, very bright but without backlight! Well, I’m very impressed and obviously imagine what I can do if I have a small OLED like that.
So I’ve started to find the manufacture of OLED. I find some information at Microchip driver code and with some Google research:
- It’s use a Sino Wealth SH1101A controller;
- Parallel or SPI interface. Very nice feature for a display;
- The controller logics operates with 2.4V – 3.5V, but OLED requires 7.0V – 16V. It’s have a internal simple DC/DC Booster for that;
- The display is constructed with COG (Chip-On-Glass) technology;
- There’s a version where 128×16 pixels being yellow OLED, and 128×48 pixels as blue OLED;
- Crystalfontz sells this Yellow/Blue with code CFAL12864N-A-B1;
- Univision has the Black/White and Yellow/Blue version;
After that, I’ve started design a board to this OLED. Oh, if you don’t know what OLED means visit Wikipedia page. My design concentrates in a breadboard friendly board. The circuit is little variation of the circuit founded in Microchip PIC24F Starter Kit schematics. I’ve substituted some components for more flat and foundable items. Basically I change the inductor, the N-Channel MOSFET and the diode. You can see the design bellow:
- 0.1″ pin space and breadboard friendly;
- It comes with SPI interface preseted. If you want use 8080 parallel interface, simply pull-up “P/S” pin;
- Very flat design with only SMD parts;
- Clear pin identification;
- Small size (don’t increase OLED size too much);
- Can be hand soldered (whitout hot-bar or even hot-air station);
That’s my board finished:
I really like this board because it’s work at first time, and it’s not so common in electronics word with your first board design. After some tests, I’ve learning some useful information about the OLED displays in general:
Most of OLED displays have SPI interface. But most of them don’t let you read the display RAM data with SPI interface, because it’s a SPI 3-Wire interface. When you cannot read display RAM, should be impossible make functions that read display RAM and alter only one pixel (for example). So, some simple functions (like line creation) became very complex if you like to use it without modify some graphics already displayed. Example: if you have a picture and draw a line, you will change some blocks of RAM, don’t only the line pixels. I’m working on that problem.
If you like this board, email-me at email@example.com. I’ve five empty boards and five OLED yet.