• Announcements

    • bluehash

      Forum Upgrade   03/11/2017

      Hello Everyone, Thanks for being patient while the forums were being fixed and upgraded. Please see details and report issues in this thread. Thanks!
touch

SPI 4 digit 7 segment displays

39 posts in this topic

I found these on eBay and bought some:

http://www.ebay.com/itm/NEW-Lot-10-Oasi ... 0807998835

 

They are 7 segment displays with the PT6961 driver chip built in. Datasheet here: http://www.princeton.com.tw/downloadpro ... PT6961.pdf

 

I cant seem to find anything out about the Oasis display, it appears to be pretty old with a date code of 0726, I'd assume the 26th week of 07. I did figure out the pinout of the display though. IC requires between 3.3 and 5v so I assume it will work with the launchpad.

 

Hope to get this working soon, I'll update when I do...

oPossum and RobG like this

Share this post


Link to post
Share on other sites

Pin out is as follows, starting from the pin closest to PIN1 on the SOP32 chip.

VCC, STB, CLK, DIN, DOUT, GND.

 

For SPI, clock polarity needs to be set to 1 and phase 0, LSB, I believe.

 

I've not gotten anything meaningful displayed yet.. I'm still trying to decipher the datasheet and figure out the address's for each digit/segment.

 

I've never seen a 7 segment display with different colors like this one.

HZsKa.jpg

Share this post


Link to post
Share on other sites

From what I can tell so far the decimal points aren't hooked up at all. :cry:

 

It seems that way, green digits with a red colon...very odd.

 

I noticed they have another set of displays here:

http://www.ebay.com/itm/10-New-Oasis-4- ... 2ec116e572

 

Seems they are the same P/N though. I'm almost tempted to buy another 10... No idea what I'd use them for but I've never seen any displays like these with the driver chip built in, let alone at this price...

 

Here's what it looks like after I mapped out the segments.

9kXUk.jpg

bluehash likes this

Share this post


Link to post
Share on other sites

Nice find on the datasheet, I've been looking for one with no luck so far. I'm going to try to contact the manufacturer and see if I can get them to send me one.

 

From what I can tell there are not two segment colors, I'm not sure why the auction says that, maybe an error?

 

The digits are mapped as the following bits for each corresponding segment, LSB:

0 - A

1 - B

2 - C

3 - D

4 - E

5 - F

6 - G

7 - Colon

 

DP Appears to be unconnected from what I can tell. I filled the entire display RAM with FF and can't get them to light.

Share this post


Link to post
Share on other sites

Considering they have multiple auctions, your's listed as red+blue (but you got green + maybe red?) and they have a different auction for red only on the same type of displays, but it looks like they have the same part numbers? Is there any other markings on the display itself?

Share this post


Link to post
Share on other sites

Here's what the label on the tube they came in says:

PN 07G024002500

SPEC: 4/D LED DISPLAY BLUE+RED

TOFD-5465GGH-B

Date Code: 0726 Lot code DB02

Maker OASIS Vender OASIS

 

Display has the same marking TOFD-5465GGH-B on it.

 

Here's some code I wrote in Energia to cycle through the display:

#include 

const int slaveSelectPin = SS;
const char DISP[16] {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x58, 0x5e, 0x79, 0x71};

void setup() {
 pinMode (slaveSelectPin, OUTPUT);
 SPI.begin(); 
 SPI.setBitOrder(LSBFIRST); 
 SPI.setDataMode(SPI_MODE2);
}

void loop() {
 //set display to 6x12 segments
 digitalWrite(slaveSelectPin,LOW);
 SPI.transfer(0x02);
 digitalWrite(slaveSelectPin,HIGH); 

 //set to writing mode, auto incrament address after data write
 digitalWrite(slaveSelectPin,LOW);
 SPI.transfer(0x40);
 digitalWrite(slaveSelectPin,HIGH);

 //first clear 8 bytes of the display RAM
 digitalWrite(slaveSelectPin,LOW);
 SPI.transfer(0xC0);
 for(int i=0; i<8; i++){
     SPI.transfer(0x00);
 }
 digitalWrite(slaveSelectPin,HIGH); 

 //display on, max brightness
 digitalWrite(slaveSelectPin,LOW);
 SPI.transfer(0x8F);
 digitalWrite(slaveSelectPin,HIGH); 

 //count through 0-9,a-f
 for(int i=0; i<16; i++){
     digitalWrite(slaveSelectPin,LOW);
     SPI.transfer(0xC0);
     SPI.transfer(DISP[i]);
     digitalWrite(slaveSelectPin,HIGH); 
     delay(500);
 }
}

Share this post


Link to post
Share on other sites

OK, got mine, they are green with red colon, not sure what BLUE + RED mean (maybe that's why they ended up with the surplus guy :) )

In any case, thanks for finding them touch, they are awesome.

 

Here's my test code

#include 

void sendData(unsigned char data, unsigned char hold);
const char segments[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,
	0x6f, 0x77, 0x7c, 0x58, 0x5e, 0x79, 0x71 };

void main(void) {
WDTCTL = WDTPW + WDTHOLD; // stop WDT

P1OUT |= BIT0 + BIT5 + BIT6;
P1DIR |= BIT0 + BIT5 + BIT6;

sendData(0x02, 0);
sendData(0x40, 0);
sendData(0x8F, 0);

char i = 0;
char colon = 1;
while (1) {
	for (i = 0; i < 16; i++) {
		colon ^= 0x01;
		sendData(0xC0, 1);
		sendData(segments[i] + (colon ? BIT7 : 0), 0);
		sendData(0xC2, 1);
		sendData(segments[i] + (colon ? BIT7 : 0), 0);
		sendData(0xC4, 1);
		sendData(segments[i], 0);
		sendData(0xC6, 1);
		sendData(segments[i], 0);
		_delay_cycles(500000);
	}
}
}

void sendData(unsigned char data, unsigned char hold) {
char c = 0;
P1OUT &= ~BIT0;
while (c < 8) {
	(data & 0x01) ? (P1OUT |= BIT6) : (P1OUT &= ~BIT6);
	data >>= 1;
	P1OUT &= ~BIT5;
	P1OUT |= BIT5;
	c++;
}

if (!hold) {
	P1OUT |= BIT0;
}
}

 

post-197-135135566593_thumb.jpg

touch, cubeberg and bluehash like this

Share this post


Link to post
Share on other sites
OK, got mine, they are green with red colon, not sure what BLUE + RED mean (maybe that's why they ended up with the surplus guy :) )

In any case, thanks for finding them touch, they are awesome.

You're welcome, they are awesome! I wish I could find some with working decimal points, or maybe a 6 digit version, but this is the first time I've ever found a 7 segment display with a driver IC built in. Sure beats having to deal with current limiting resistors/pwm + multiplexing...

 

It's kinda funny, since I made this post they've sold 30+, but when I bought mine they had sold none.

Share this post


Link to post
Share on other sites

This thread has been seen almost 500 times, and they featured it on the 43oh blog.

 

Also, Oasis's online catalog shows that the 5425 lcd's raw pinout. 1 common for each 4 digits, with 7 segment lines. But the last two commons have an extra segment for the separator dots. The decimal points are not connected at all, and probably don't even have leds in the positions.

http://issuu.com/oasistek/docs/2012_display_catalogue

Share this post


Link to post
Share on other sites

in answering the question of whether there are decimal LED's buried in there somewhere I can conclusively say no there are not.

 

I sacrificed one to the gods of tearing stuff apart and found there are neither LED's or driving circuit pads for them, just the 4 7 segment characters and the two colon points.

 

it was interesting extricating the circuit board without breaking it (although the LED's get destroyed when you split the two halves apart)

post-12741-135135566988_thumb.jpg

bluehash, RobG and touch like this

Share this post


Link to post
Share on other sites

I was considering adding my own LED's for the DP's on things where I needed them. It's easy enough to solder to the chip, just lightly sand the epoxy off of the chip legs, drill a hole where the DP is and stickin a 0402 LED with some enameled wire connecting it to the driver chip.

 

Can you tell if there are any traces in the way of doing this?

Share this post


Link to post
Share on other sites

@touch - the first and fourth decimal place would be clear to drill through to mount a led in, the second one is blocked by the 6 interface pins, and the third is blocked by a via.

 

@RobG - challenge complete... :) There is still some epoxy on the inside of the legs but it wouldn't interfere with reusing the chip, and if i tried too aggressively to clean it off, i would probably damage the legs.

 

I actually salvaged the little SMD resistor as well, but it is tiny and i misplaced it, now I can't find the thing :( the capacitor could have been salvaged if I was paying closer attention to it.

post-12741-1351355670_thumb.jpg

post-12741-135135567032_thumb.jpg

RobG likes this

Share this post


Link to post
Share on other sites

1st and 4th? that's all most people would need. Drill in from the back, a little at a time, drop down the led, test to see if it lights decently enough, drill some more if needed (jewelers drill [or hex shank drill bit on screwdriver] is probably best).

 

As for the legs, look into ic decapping acid. Just enough to clean them without tools. There are some cheap homebrew versions.

Share this post


Link to post
Share on other sites

The other option that would allow all 4 LEDs would be to drill into the side of the case, you have a good bit of room above the pcb that is just clear plastic(about 3/16 if i had to guess based on memory) you could drop the led in the side. Just a thought, when i get back home ill measure and take pictures

Share this post


Link to post
Share on other sites

Hey there guys, I ended up picking up 30 of these things.... mainly for no reason :)

 

Although I'm trying to get this working with a bus pirate

 

Does someone have an example to get this working with one? including full setup of the Bus Pirate to displaying some numbers.

I wouldn't mind stacking these things next to eachother for a long display... again for no reason :) just for fun.

 

I went though the setup mode to get to SPI> and tried sending 0x02, 0x40, 0x00, 0x8F but I don't see any numbers lit up.... could I be doing something horribly wrong?

 

Thanks,

--Aaron

Share this post


Link to post
Share on other sites

To light up all segments, send: 0x02, 0x40, 0x8F, 0xC0, 0xFF, 0xC2, 0xFF, 0xC4, 0xFF, 0xC6, 0xFF

Also, STB has to be kept low between address and data, you cannot raise it after 0xCx.

Share this post


Link to post
Share on other sites
To light up all segments, send: 0x02, 0x40, 0x8F, 0xC0, 0xFF, 0xC2, 0xFF, 0xC4, 0xFF, 0xC6, 0xFF

Also, STB has to be kept low between address and data, you cannot raise it after 0xCx.

 

Hi RobG,

 

If I send anything nothing happens,

The comment you made about keeping STB Low between address and data, is there a way of doing this on the BusPirate?

Only thing that gives this away is the setup option "Clock Polarity" this shows Idle low *Default and Idle High... me thinks Idle High?

 

I'm trying a bunch of different combinations, but I'm a new BusPirate user at least with attempting to decode datasheets... I would think it would be a little easier since some C code was provided above.

 

Thanks,

--Aaron

Share this post


Link to post
Share on other sites

Sorry, I have no experience with BusPirate.

Yes, clock polarity is idle high.

Another thing I forgot to mention, you send data LSB first.

Share this post


Link to post
Share on other sites

Humm, maybe I should stick with an Arduino example sketch if one exists?

 

--Aaron

 

Rob,

I can't get this display to do anything, I'm almost convinced its "My" setup of the buspirate into the SPI mode.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now