Author Topic: Rset functionality on AS1108  (Read 1446 times)

0 Members and 1 Guest are viewing this topic.

Offline bitmanTopic starter

  • Supporter
  • ****
  • Posts: 299
  • Country: us
  • Open Source Guy jabbing with Electronics
Rset functionality on AS1108
« on: November 04, 2018, 06:04:29 pm »
I have a few legacy AS1108 [1] chips and created my own driver for it with Ardino - nothing exciting, and most of my issues was figuring out MODE0->MODE3 of SPI and which one worked with the chip. I know these are legacy chips. I'm not trying to do anything "production" level here.

My question is about the current handling. The "selling point" seems to be the Rset but I still see different current draws depending on the number of segments lit. The less segments turned on, the brighter they are - ie. no constant current here.  So how is this supposed to work?

[1] https://ams.com/documents/20143/36005/AS1108_DS000169_2-00.pdf
 

Offline mvs

  • Frequent Contributor
  • **
  • Posts: 370
  • Country: de
Re: Rset functionality on AS1108
« Reply #1 on: November 04, 2018, 08:39:10 pm »
My question is about the current handling. The "selling point" seems to be the Rset but I still see different current draws depending on the number of segments lit. The less segments turned on, the brighter they are - ie. no constant current here.  So how is this supposed to work?
[1] https://ams.com/documents/20143/36005/AS1108_DS000169_2-00.pdf
I would expect current mirror in this driver. So current flowing throught segments should be quite constant.
Check your power supply, add some decoupling capacitors, try to reduce segment current...
 

Offline bitmanTopic starter

  • Supporter
  • ****
  • Posts: 299
  • Country: us
  • Open Source Guy jabbing with Electronics
Re: Rset functionality on AS1108
« Reply #2 on: November 05, 2018, 01:19:24 am »
I would expect current mirror in this driver. So current flowing throught segments should be quite constant.
Check your power supply, add some decoupling capacitors, try to reduce segment current...
Thanks - I've done all 3. Even blown a few segments with too much current - part of that comes down to me not fully understanding the charts provided for Rset so I experimented a bit. And why is it that data sheets for these old 7segment segments cannot be found?  Something provides a hit, but you get a PDF for a completely different model/vendor.  Anyway - I made a few guesses but I was NEVER able to reliably find forward voltage to find the right entry.
Anyway - there's definitely a current difference as you enable/disable 7segment modules (this chip allows you to enable only some of them, so if you're only showing "12" on a 4 module display, you can turn off the first two. When I do that, "12" is brighter than when I have 3 or 4 digits on. Even when I do a test with all segments turned on, it seems some of the segments are slightly dimmer (always the same ones). I'll experiment with other Rset values and see what happens.
Thanks for a good reply - got me thinking and learning something new!
 

Offline bitmanTopic starter

  • Supporter
  • ****
  • Posts: 299
  • Country: us
  • Open Source Guy jabbing with Electronics
Re: Rset functionality on AS1108
« Reply #3 on: November 05, 2018, 01:24:27 am »
Let me quickly add a second thing. As I add higher resistance (lower the current over Rset) the SAME individual segments (A in particular) gets much dimmer. The rest are the same steady brightness. If this was software I would be looking for a coding error as I would expect not all segments to be affected by the resistor.
 

Offline mvs

  • Frequent Contributor
  • **
  • Posts: 370
  • Country: de
Re: Rset functionality on AS1108
« Reply #4 on: November 05, 2018, 06:41:15 pm »
Anyway - there's definitely a current difference as you enable/disable 7segment modules (this chip allows you to enable only some of them, so if you're only showing "12" on a 4 module display, you can turn off the first two. When I do that, "12" is brighter than when I have 3 or 4 digits on.
Ok, now i got it. By disabling digits using Scan Limit Register you will change duty cycle and hence brightness.
If you wish to maintain brightness you should disable digits by writing 0 to Digit Register.

PS AS1108 is actually a "half" of MAX7219/MAX7221 and is software compatible. You can use LedControl lib from arduino.
« Last Edit: November 05, 2018, 06:56:33 pm by mvs »
 

Offline bitmanTopic starter

  • Supporter
  • ****
  • Posts: 299
  • Country: us
  • Open Source Guy jabbing with Electronics
Re: Rset functionality on AS1108
« Reply #5 on: November 05, 2018, 10:16:13 pm »
Anyway - there's definitely a current difference as you enable/disable 7segment modules (this chip allows you to enable only some of them, so if you're only showing "12" on a 4 module display, you can turn off the first two. When I do that, "12" is brighter than when I have 3 or 4 digits on.
Ok, now i got it. By disabling digits using Scan Limit Register you will change duty cycle and hence brightness.
If you wish to maintain brightness you should disable digits by writing 0 to Digit Register.

PS AS1108 is actually a "half" of MAX7219/MAX7221 and is software compatible. You can use LedControl lib from arduino.

I'm not sure how the "putting 0" will help. Maybe I'm overlooking something - it shows up a ZERO - it doesn't blank it. Perhaps you're talking about putting 0x0F (blank) instead of zero?
 

Offline mvs

  • Frequent Contributor
  • **
  • Posts: 370
  • Country: de
Re: Rset functionality on AS1108
« Reply #6 on: November 05, 2018, 10:59:29 pm »
I'm not sure how the "putting 0" will help. Maybe I'm overlooking something - it shows up a ZERO - it doesn't blank it. Perhaps you're talking about putting 0x0F (blank) instead of zero?
Yes, if you are using built in BCD to 7-Segment decoder (Code B), put blank 0x0F.
 
The following users thanked this post: bitman

Offline bitmanTopic starter

  • Supporter
  • ****
  • Posts: 299
  • Country: us
  • Open Source Guy jabbing with Electronics
Re: Rset functionality on AS1108
« Reply #7 on: November 06, 2018, 12:54:54 am »
I'm not sure how the "putting 0" will help. Maybe I'm overlooking something - it shows up a ZERO - it doesn't blank it. Perhaps you're talking about putting 0x0F (blank) instead of zero?
Yes, if you are using built in BCD to 7-Segment decoder (Code B), put blank 0x0F.

Thanks - this allowed me to fix another issue where I was writing values and then blanking them with a second write. Using 0x0F not only has a more uniform brightness regardless of the number size, but the update is a lot smoother as the number changes.  I'll take a look at the library - I searched but couldn't find anything that mentioned this chip. I took that as a challenge, and it sure did teach me a few things about SPI that I hadn't thought of before.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf