Hello. My current project uses a PIC16F873A to output to an already multiplexed LED Display (Fairchild MSQ6441, 4 digit, 7-segment numeric display). I would like to relieve some work from the PIC, so I've been looking into LED Display Drivers to pick up the slack. I came across the MAX7221, a nice chip from Maxim... common cathode LED Display Driver that does the multiplexing for you, SPI compatible..easy to use. It supports all 8 digits, so I don't need the extra pins. Now, Ideally I would like a LED Display Driver that is I2C (not SPI) compatible and drives up to 4 digits. I came across the MAX6958, it looked perfect.. I2C compatible, drives 4 digits, 16 pin PDIP. BUT, you cannot hook up a multiplexed LED Dispaly to it because of it's special multiplexing method (Charlieplexing). You have to connect individual digits to the chip...the chip needs access to each segment (a,b,c,d,e,f) of each digit. I would really like to stick with already multiplexed LED Displays (ie, common cathodes and all segments tied to each other). Anyone know of such a chip that could hook up multiplexed display which is I2C compatible. Thanks for any input.
LED Display Driver for use with PIC?
Started by ●December 7, 2004
Reply by ●December 7, 20042004-12-07
On 7 Dec 2004 14:25:31 -0800, the renowned jut.shanahan@gmail.com wrote:>Hello. > >My current project uses a PIC16F873A to output to an already >multiplexed LED Display (Fairchild MSQ6441, 4 digit, 7-segment numeric >display). > >I would like to relieve some work from the PIC, so I've been looking >into LED Display Drivers to pick up the slack. I came across the >MAX7221, a nice chip from Maxim... common cathode LED Display Driver >that does the multiplexing for you, SPI compatible..easy to use. It >supports all 8 digits, so I don't need the extra pins. > >Now, Ideally I would like a LED Display Driver that is I2C (not SPI) >compatible and drives up to 4 digits. I came across the MAX6958, it >looked perfect.. I2C compatible, drives 4 digits, 16 pin PDIP. BUT, >you cannot hook up a multiplexed LED Dispaly to it because of it's >special multiplexing method (Charlieplexing). You have to connect >individual digits to the chip...the chip needs access to each segment >(a,b,c,d,e,f) of each digit. I would really like to stick with already >multiplexed LED Displays (ie, common cathodes and all segments tied to >each other). Anyone know of such a chip that could hook up multiplexed >display which is I2C compatible. Thanks for any input.What's the problem with getting the PIC to do it? Best regards, Spehro Pefhany -- "it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com
Reply by ●December 7, 20042004-12-07
jut.shanahan@gmail.com wrote:> Hello. > > My current project uses a PIC16F873A to output to an already > multiplexed LED Display (Fairchild MSQ6441, 4 digit, 7-segment numeric > display). > > I would like to relieve some work from the PIC, so I've been looking > into LED Display Drivers to pick up the slack. I came across the > MAX7221, a nice chip from Maxim... common cathode LED Display Driver > that does the multiplexing for you, SPI compatible..easy to use. It > supports all 8 digits, so I don't need the extra pins. > > Now, Ideally I would like a LED Display Driver that is I2C (not SPI) > compatible and drives up to 4 digits. I came across the MAX6958, it > looked perfect.. I2C compatible, drives 4 digits, 16 pin PDIP. BUT, > you cannot hook up a multiplexed LED Dispaly to it because of it's > special multiplexing method (Charlieplexing). You have to connect > individual digits to the chip...the chip needs access to each segment > (a,b,c,d,e,f) of each digit. I would really like to stick with already > multiplexed LED Displays (ie, common cathodes and all segments tied to > each other). Anyone know of such a chip that could hook up multiplexed > display which is I2C compatible. Thanks for any input.try http://www.standardproducts.philips.com/products/segmentdisplays/
Reply by ●December 7, 20042004-12-07
jut.shanahan@gmail.com wrote:> Hello. > > My current project uses a PIC16F873A to output to an already > multiplexed LED Display (Fairchild MSQ6441, 4 digit, 7-segment numeric > display). > > I would like to relieve some work from the PIC, so I've been looking > into LED Display Drivers to pick up the slack. I came across the > MAX7221, a nice chip from Maxim... common cathode LED Display Driver > that does the multiplexing for you, SPI compatible..easy to use. It > supports all 8 digits, so I don't need the extra pins. > > Now, Ideally I would like a LED Display Driver that is I2C (not SPI) > compatible and drives up to 4 digits. I came across the MAX6958, it > looked perfect.. I2C compatible, drives 4 digits, 16 pin PDIP. BUT, > you cannot hook up a multiplexed LED Dispaly to it because of it's > special multiplexing method (Charlieplexing). You have to connect > individual digits to the chip...the chip needs access to each segment > (a,b,c,d,e,f) of each digit. I would really like to stick with already > multiplexed LED Displays (ie, common cathodes and all segments tied to > each other). Anyone know of such a chip that could hook up multiplexed > display which is I2C compatible. Thanks for any input.There shouldn't be that much work to offload. A timer that interrupts about every 4ms, 4 8-bit registers and a 4-bit shift register (or 2-bit counter) are all that's needed. If the processor is running at 4MHz, 10 instructions to do the switch would be 10us. 10us out of 4ms is a mere 0.25%. Even if my estimate if off by 2 or 3X, It's still less than 1% of the CPU cycles. Noel
Reply by ●December 8, 20042004-12-08
>Subject: Re: LED Display Driver for use with PIC? >From: Noel Henson noel@noels-lab.com >Date: 08/12/2004 00:34 GMT Standard Time >Message-id: <5Yrtd.1039$Pw6.134@fe25.usenetserver.com> > >jut.shanahan@gmail.com wrote: > >> Hello. >> >> My current project uses a PIC16F873A to output to an already >> multiplexed LED Display (Fairchild MSQ6441, 4 digit, 7-segment numeric >> display). >> >> I would like to relieve some work from the PIC,>There shouldn't be that much work to offload. A timer that interrupts about >every 4ms, 4 8-bit registers and a 4-bit shift register (or 2-bit counter) >are all that's needed. If the processor is running at 4MHz, 10 instructions >to do the switch would be 10us. 10us out of 4ms is a mere 0.25%. Even if my >estimate if off by 2 or 3X, It's still less than 1% of the CPU cycles. > >NoelI agree with you Noel, probably not even 10 instructions needed. A lot more effort would be needed to run an I2C link.
Reply by ●December 8, 20042004-12-08
On 08 Dec 2004 14:01:11 GMT, the renowned cbarn24050@aol.com (CBarn24050) wrote:>>Subject: Re: LED Display Driver for use with PIC? >>From: Noel Henson noel@noels-lab.com >>Date: 08/12/2004 00:34 GMT Standard Time >>Message-id: <5Yrtd.1039$Pw6.134@fe25.usenetserver.com> >> >>jut.shanahan@gmail.com wrote: >> >>> Hello. >>> >>> My current project uses a PIC16F873A to output to an already >>> multiplexed LED Display (Fairchild MSQ6441, 4 digit, 7-segment numeric >>> display). >>> >>> I would like to relieve some work from the PIC, > >>There shouldn't be that much work to offload. A timer that interrupts about >>every 4ms, 4 8-bit registers and a 4-bit shift register (or 2-bit counter) >>are all that's needed. If the processor is running at 4MHz, 10 instructions >>to do the switch would be 10us. 10us out of 4ms is a mere 0.25%. Even if my >>estimate if off by 2 or 3X, It's still less than 1% of the CPU cycles. >> >>Noel > >I agree with you Noel, probably not even 10 instructions needed. A lot more >effort would be needed to run an I2C link.More than 10, counting save/restore context. But the order of magnitude is correct. Best regards, Spehro Pefhany -- "it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com
Reply by ●December 8, 20042004-12-08
Spehro Pefhany wrote:> More than 10, counting save/restore context. But the order of > magnitude is correct. > > > Best regards, > Spehro PefhanyOK. Let's see how small we can make it. Perhaps it would make a good reference for others. I do love to make pins and ports do more than one thing so, let's consider 4 8-segment displays (7 plus a .) and 4 push-button switches for input. We'll only need 13 signals. Let's assume these variables: DIGIT3 the bit pattern for the left-most digit DIGIT2 the bit pattern for the left-center digit DIGIT1 the bit pattern for the left-center digit DIGIT0 the bit pattern for the right-most digit SELECT the shifter or counter Who wants to take the first stab at it? Noel
Reply by ●December 8, 20042004-12-08
>Subject: Re: LED Display Driver for use with PIC? >From: Spehro Pefhany speffSNIP@interlogDOTyou.knowwhat >Date: 08/12/2004 14:56 GMT Standard Time >Message-id: <j25er05oehojmons2cm5gumlq7p7ajmnes@4ax.com> >>>I agree with you Noel, probably not even 10 instructions needed. A lot more >>effort would be needed to run an I2C link. > >More than 10, counting save/restore context. But the order of >magnitude is correct. > > >Best regards, >Spehro PefhanyI was assuming that you were allready in the timer interrupt routine. Less than 10 meant the number of instructions used each time round the loop and not the total number of code instructions. I can't be bothered to actually write the code so I can't actually disagree with you.
Reply by ●December 9, 20042004-12-09
hamilton wrote:> Noel Henson wrote: >> >> Who wants to take the first stab at it? >> >> Noel >> >>Hamilton, What took you so long? ;) What is the schematic? We'll need to know which PIC pins do what. Noel PS: Nice work. Even an RS232 interface.
Reply by ●December 9, 20042004-12-09
Noel Henson wrote:> Spehro Pefhany wrote: > >> More than 10, counting save/restore context. But the order of >> magnitude is correct. >> >> >> Best regards, >> Spehro Pefhany > > OK. Let's see how small we can make it. Perhaps it would make a good > reference for others. > > I do love to make pins and ports do more than one thing so, let's consider > 4 8-segment displays (7 plus a .) and 4 push-button switches for input. > We'll only need 13 signals. > > Let's assume these variables: > > DIGIT3 the bit pattern for the left-most digit > DIGIT2 the bit pattern for the left-center digit > DIGIT1 the bit pattern for the left-center digit > DIGIT0 the bit pattern for the right-most digit > SELECT the shifter or counter > > Who wants to take the first stab at it? > > NoelI see that we need the code to support these functions: Initialize the timer Enable the interrupt Acknowledge the interrupt Context save Context restore Index into the data storage array Write the output Scan the keys Did I miss anything? Noel