I played with the OLED display this week. With the data I have on the display that makes any sense, it should be working. I received sample code from the distributor I bought the display from. I modified it to work on arduino, and still no display. I may have damaged my display while probing the signals. I shorted Vdd to Vcc with my scope probe. I saw a little spark and I was no longer getting 13 Volts on Vcc
Included with the sample code is a schematic that has a drop down voltage regulator on it to drive Vcc. The drop down voltage regulator is configured to regulate to 6 Volts. However, the input to the drop down regulator is Vdd. According to the SSD1332 data sheet, Vdd should not exceed 3.6 Volts. This suggests that I have incomplete information. The datasheet also says that Vcc should be between 7 and 20 Volts.
I am thinking I will disable the switching regulator and do further testing while sending individual commands. I think I might try one of the 8 bit interfaces to see if I can write to and read from RAM. That will confirm the data interface is wired correctly.
Port Expander vs Level Shifter:
I can still get 8 pins of data if I assume I don’t need high voltage when I need all 8 pins. I still haven’t decided whether I want to just use a level shifter or switch to a port expander and only level shift the SPI connections. Another and more expensive option would be a port expander and a level shifter. Yet another option is another Microcontroller that works as both the port expander and level shifter.
For cost and assembly, the add on microcontroller is the best choice. Unfortunately, it requires even more firmware.
The easiest firmware solution would be with the level shifter alone.
If I go with the extra microcontroller, I could share processing load between processors. I could use the additional processor as a USB to serial adapter as well, this would reduce cost a little.
8, 16, or 32 Bit:
I am leaning toward the microcontroller solution. If I go that route, I have to decide which architecture to use.
Generally the more bits, the more expensive. I can get 8 bit devices well under US $1. For what I would need, 16 bit would run right around US $1, and ARM 32 bit would end up costing around US $1.50.
ARM devices will probably only be rated to work at 3.3 volts. This means no built in level shift function.
There are many 8 bit devices that can run up to 5.5 volts. I am not very familiar with 16 bit devices.
For price and ease of development, I am going to look at 8 bit and 32 bit solutions this following week.
Short post this week, I need to make some decisions. Do you have any ideas that might solve this issue?