| Author |
Message |
samIam
Guest
|
Posted:
Thu Dec 08, 2005 12:53 am Post subject:
replacing the seven segment decoder/driver with a pal+latch |
|
|
I am designing a circuit that will use the seven segment LED display
for output.
I dont have the decoder driver chip and dont want to buy it.
I do have lots of 22v10' and 573/373' (I hate the latters pin out).
Can I decode on the 22v10 ... feed its output to a 573/373 and then
to the seven segment LED display?
Would fan out be an issue?
I suppose I should just test it ... when I get home, but I have already
started the PCB and nearly done ...
|
|
| Back to top |
|
 |
Andrew Holme
Guest
|
Posted:
Thu Dec 08, 2005 1:10 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
samIam wrote:
| Quote: | I am designing a circuit that will use the seven segment LED display
for output.
I dont have the decoder driver chip and dont want to buy it.
I do have lots of 22v10' and 573/373' (I hate the latters pin out).
Can I decode on the 22v10 ... feed its output to a 573/373 and then
to the seven segment LED display?
Would fan out be an issue?
|
I assume this is a one-off project.
What's the 573/373 for? The 22V10 contains flip-flops.
Lattice GAL22V10 outputs can sink 16mA. That's enough for an LED segment. |
|
| Back to top |
|
 |
Tim Shoppa
Guest
|
Posted:
Thu Dec 08, 2005 1:16 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
| Quote: | I dont have the decoder driver chip and dont want to buy it.
|
You're a little unclear on what you're doing, normally the PAL would be
sufficient to replace a decoder/driver if TTL levels out are good
enough and you wouldn't need the latch.
Do you have a microcontroller anywhere there?
Using shift-register drivers (like HC595's or their power-driver
equivalent) lets you avoid a decoder chip of any kind, and you only
need three pins out of your microcontroller (some of which you may be
able to share with other functions) to drive as many digits as you
like.
Tim.
|
|
| Back to top |
|
 |
samIam
Guest
|
Posted:
Thu Dec 08, 2005 1:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
| Quote: | I assume this is a one-off project.
|
Absolutely!
| Quote: | What's the 573/373 for? The 22V10 contains flip-flops.
|
YES YES I totally forgot (banging head against wall).
I am stuck in 16L* land. Originally I was going to do the decode
driver in a 16L8 with 573/373 ...
Forgot to "resync" my thinking when I pickeup the 22v10's.
| Quote: | Lattice GAL22V10 outputs can sink 16mA. That's enough for an LED segment.
|
Good point thanks.
I love this newsgroup :) |
|
| Back to top |
|
 |
Rich Grise
Guest
|
Posted:
Thu Dec 08, 2005 9:16 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
| Quote: | I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
YES YES I totally forgot (banging head against wall).
I am stuck in 16L* land. Originally I was going to do the decode driver in
a 16L8 with 573/373 ...
Forgot to "resync" my thinking when I pickeup the 22v10's.
Lattice GAL22V10 outputs can sink 16mA. That's enough for an LED
segment.
Good point thanks.
I love this newsgroup :)
|
Well, the newsgroup loves smart questions like this. As a matter of fact,
you've got me thinking of doing a BCD-7-segment in some kind of PLD. I've
also seen this pattern (or something very similar) for Sexydecimal ;-)
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| _| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| |_| |_| |_ |_| |_ |
Cheers!
Rich |
|
| Back to top |
|
 |
Spehro Pefhany
Guest
|
Posted:
Thu Dec 08, 2005 9:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Thu, 08 Dec 2005 03:16:29 GMT, the renowned Rich Grise
<richgrise@example.net> wrote:
| Quote: | On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
YES YES I totally forgot (banging head against wall).
I am stuck in 16L* land. Originally I was going to do the decode driver in
a 16L8 with 573/373 ...
Forgot to "resync" my thinking when I pickeup the 22v10's.
Lattice GAL22V10 outputs can sink 16mA. That's enough for an LED
segment.
Good point thanks.
I love this newsgroup :)
Well, the newsgroup loves smart questions like this. As a matter of fact,
you've got me thinking of doing a BCD-7-segment in some kind of PLD. I've
also seen this pattern (or something very similar) for Sexydecimal ;-)
|
Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
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 |
|
| Back to top |
|
 |
Glenn Gundlach
Guest
|
Posted:
Thu Dec 08, 2005 9:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
Spehro Pefhany wrote:
| Quote: | On Thu, 08 Dec 2005 03:16:29 GMT, the renowned Rich Grise
richgrise@example.net> wrote:
On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
YES YES I totally forgot (banging head against wall).
I am stuck in 16L* land. Originally I was going to do the decode driver in
a 16L8 with 573/373 ...
Forgot to "resync" my thinking when I pickeup the 22v10's.
Lattice GAL22V10 outputs can sink 16mA. That's enough for an LED
segment.
Good point thanks.
I love this newsgroup :)
Well, the newsgroup loves smart questions like this. As a matter of fact,
you've got me thinking of doing a BCD-7-segment in some kind of PLD. I've
also seen this pattern (or something very similar) for Sexydecimal ;-)
Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
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
|
I implemented this 'font' in my clock project (Moto 68HC908). Its
actually quite readable.
http://www.twyman.org.uk/Fonts/
My only comment about 22V10s as decoder/drivers is if you use 1 for
each digit, they're kind of power hungry.
GG |
|
| Back to top |
|
 |
Rich Grise
Guest
|
Posted:
Fri Dec 09, 2005 1:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Wed, 07 Dec 2005 22:55:58 -0500, Spehro Pefhany wrote:
....
| Quote: | Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
|
OK, you're right, that is better than mine. :-)
(but I _did_ kind of make it up on the fly. :-) )
Thanks!
Rich |
|
| Back to top |
|
 |
Rich Grise
Guest
|
Posted:
Fri Dec 09, 2005 1:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Wed, 07 Dec 2005 21:04:35 -0800, Glenn Gundlach wrote:
| Quote: | Spehro Pefhany wrote:
On Thu, 08 Dec 2005 03:16:29 GMT, the renowned Rich Grise
On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
I love this newsgroup :)
....
Well, the newsgroup loves smart questions like this.
....
Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
I implemented this 'font' in my clock project (Moto 68HC908). Its actually
quite readable.
http://www.twyman.org.uk/Fonts/
My only comment about 22V10s as decoder/drivers is if you use 1 for each
digit, they're kind of power hungry.
|
Speaking of LUTs, what ever happened to the 8223, 32X8 PROM? They were
handier than a rat for a universal 5-input, 8-output thing. Yes, that's
thirty-two by eight - thirty-two eight-bit bytes. Maybe these days they're
just using SOIC OTP 27512s or something?
Thanks,
Rich |
|
| Back to top |
|
 |
Keith Williams
Guest
|
Posted:
Fri Dec 09, 2005 9:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
In article <pan.2005.12.08.21.03.55.306161@example.net>,
richgrise@example.net says...
| Quote: | On Wed, 07 Dec 2005 21:04:35 -0800, Glenn Gundlach wrote:
Spehro Pefhany wrote:
On Thu, 08 Dec 2005 03:16:29 GMT, the renowned Rich Grise
On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
I love this newsgroup :)
...
Well, the newsgroup loves smart questions like this.
...
Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
I implemented this 'font' in my clock project (Moto 68HC908). Its actually
quite readable.
http://www.twyman.org.uk/Fonts/
My only comment about 22V10s as decoder/drivers is if you use 1 for each
digit, they're kind of power hungry.
Speaking of LUTs, what ever happened to the 8223, 32X8 PROM? They were
handier than a rat for a universal 5-input, 8-output thing. Yes, that's
thirty-two by eight - thirty-two eight-bit bytes. Maybe these days they're
just using SOIC OTP 27512s or something?
|
Too small to bother with. Even 64Kx16 is too small. Use a PLD of
some sort.
--
Keith |
|
| Back to top |
|
 |
Spehro Pefhany
Guest
|
Posted:
Fri Dec 09, 2005 9:35 am Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Thu, 8 Dec 2005 23:15:22 -0500, the renowned Keith Williams
<krw@att.bizzzz> wrote:
| Quote: | In article <pan.2005.12.08.21.03.55.306161@example.net>,
richgrise@example.net says...
On Wed, 07 Dec 2005 21:04:35 -0800, Glenn Gundlach wrote:
Spehro Pefhany wrote:
On Thu, 08 Dec 2005 03:16:29 GMT, the renowned Rich Grise
On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
I love this newsgroup :)
...
Well, the newsgroup loves smart questions like this.
...
Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
I implemented this 'font' in my clock project (Moto 68HC908). Its actually
quite readable.
http://www.twyman.org.uk/Fonts/
My only comment about 22V10s as decoder/drivers is if you use 1 for each
digit, they're kind of power hungry.
Speaking of LUTs, what ever happened to the 8223, 32X8 PROM? They were
handier than a rat for a universal 5-input, 8-output thing. Yes, that's
thirty-two by eight - thirty-two eight-bit bytes. Maybe these days they're
just using SOIC OTP 27512s or something?
Too small to bother with. Even 64Kx16 is too small. Use a PLD of
some sort.
|
Here's some simple VHDL code for a 7-segment decoder as above, with
segments inverted to drive a common-anode display (written by David
Warren-Smith). Note that VHDL isn't case-sensitive, so D==d, S==s,
SEG7==seg7:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
-- Title "7 segment display driver circuit";
-- File: seg7.vhd
ENTITY seg7 IS
PORT (D : IN STD_LOGIC_VECTOR (3 DOWNTO 0); -- BCD input
S : OUT STD_LOGIC_VECTOR (6 DOWNTO 0)); -- 7 segment
outputs
END seg7;
ARCHITECTURE display OF SEG7 IS
BEGIN
s <= "1000000" WHEN d = "0000" ELSE -- H"40"
"1111001" WHEN d = "0001" ELSE -- H"79"
"0100100" WHEN d = "0010" ELSE -- H"24"
"0110000" WHEN d = "0011" ELSE -- H"30"
"0011001" WHEN d = "0100" ELSE -- H"19"
"0010010" WHEN d = "0101" ELSE -- H"12"
"0000010" WHEN d = "0110" ELSE -- H"02"
"1111000" WHEN d = "0111" ELSE -- H"78"
"0000000" WHEN d = "1000" ELSE -- H"00"
"0010000" WHEN d = "1001" ELSE -- H"10"
"0001000" WHEN d = "1010" ELSE -- H"08"
"0000011" WHEN d = "1011" ELSE -- H"03"
"1000110" WHEN d = "1100" ELSE -- H"46"
"0100001" WHEN d = "1101" ELSE -- H"21"
"0000110" WHEN d = "1110" ELSE -- H"06"
"0001110"; -- H"0E"
END display;
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 |
|
| Back to top |
|
 |
Ken Smith
Guest
|
Posted:
Fri Dec 09, 2005 2:43 pm Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
In article <jp6ip1duch02pba0gd4h3iun8ad14flkfb@4ax.com>,
Spehro Pefhany <speffSNIP@interlogDOTyou.knowwhat> wrote:
[....]
| Quote: | ENTITY seg7 IS
ARCHITECTURE display OF SEG7 IS
|
I have found that it is better to make the names of ENTITYs and
ARCHITECTUREs more obvious such as:
ENTITY SevenSegmentConnect IS
and
ARCHITECTURE SevenSegmentDisplay OF SevenSegmentConnect IS
It doesn't matter in a simple case like this but when you have a hundred
or so of each, remembering what matches up with who can be troublesome.
--
--
kensmith@rahul.net forging knowledge |
|
| Back to top |
|
 |
Ken Smith
Guest
|
Posted:
Sat Dec 10, 2005 10:52 pm Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
In article <pan.2005.12.10.17.45.35.258339@att.bizzzz>,
Keith <krw@att.bizzzz> wrote:
[...]
| Quote: | ENTITY SevenSegmentConnect IS
and
ARCHITECTURE SevenSegmentDisplay OF SevenSegmentConnect IS
It doesn't matter in a simple case like this but when you have a hundred
or so of each, remembering what matches up with who can be troublesome.
I find your method to be awkward when trying to follow or scope a signal
through many levels of herarchy. The names get to be unmanageable.
|
I don't see how. How does what I've done effect the signal names? I
assume you mean that the signal names get unmanageable.
In the tools I've used ( small set I admit ) the names in reports are
built up with instance names not the type of the entity so it is the
instance name that you want to keep shortish.
--
--
kensmith@rahul.net forging knowledge |
|
| Back to top |
|
 |
Keith
Guest
|
Posted:
Sat Dec 10, 2005 11:43 pm Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Fri, 09 Dec 2005 00:57:56 -0500, Spehro Pefhany wrote:
| Quote: | On Thu, 8 Dec 2005 23:15:22 -0500, the renowned Keith Williams
krw@att.bizzzz> wrote:
In article <pan.2005.12.08.21.03.55.306161@example.net>,
richgrise@example.net says...
On Wed, 07 Dec 2005 21:04:35 -0800, Glenn Gundlach wrote:
Spehro Pefhany wrote:
On Thu, 08 Dec 2005 03:16:29 GMT, the renowned Rich Grise
On Wed, 07 Dec 2005 14:42:57 -0500, samIam wrote:
I assume this is a one-off project.
Absolutely!
What's the 573/373 for? The 22V10 contains flip-flops.
I love this newsgroup :)
...
Well, the newsgroup loves smart questions like this.
...
Below is to be preferred:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |
I implemented this 'font' in my clock project (Moto 68HC908). Its actually
quite readable.
http://www.twyman.org.uk/Fonts/
My only comment about 22V10s as decoder/drivers is if you use 1 for each
digit, they're kind of power hungry.
Speaking of LUTs, what ever happened to the 8223, 32X8 PROM? They were
handier than a rat for a universal 5-input, 8-output thing. Yes, that's
thirty-two by eight - thirty-two eight-bit bytes. Maybe these days they're
just using SOIC OTP 27512s or something?
Too small to bother with. Even 64Kx16 is too small. Use a PLD of
some sort.
Here's some simple VHDL code for a 7-segment decoder as above, with
segments inverted to drive a common-anode display (written by David
Warren-Smith). Note that VHDL isn't case-sensitive, so D==d, S==s,
SEG7==seg7:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
-- Title "7 segment display driver circuit";
-- File: seg7.vhd
ENTITY seg7 IS
PORT (D : IN STD_LOGIC_VECTOR (3 DOWNTO 0); -- BCD input
S : OUT STD_LOGIC_VECTOR (6 DOWNTO 0)); -- 7 segment
outputs
END seg7;
ARCHITECTURE display OF SEG7 IS
BEGIN
s <= "1000000" WHEN d = "0000" ELSE -- H"40"
"1111001" WHEN d = "0001" ELSE -- H"79"
"0100100" WHEN d = "0010" ELSE -- H"24"
"0110000" WHEN d = "0011" ELSE -- H"30"
"0011001" WHEN d = "0100" ELSE -- H"19"
"0010010" WHEN d = "0101" ELSE -- H"12"
"0000010" WHEN d = "0110" ELSE -- H"02"
"1111000" WHEN d = "0111" ELSE -- H"78"
"0000000" WHEN d = "1000" ELSE -- H"00"
"0010000" WHEN d = "1001" ELSE -- H"10"
"0001000" WHEN d = "1010" ELSE -- H"08"
"0000011" WHEN d = "1011" ELSE -- H"03"
"1000110" WHEN d = "1100" ELSE -- H"46"
"0100001" WHEN d = "1101" ELSE -- H"21"
"0000110" WHEN d = "1110" ELSE -- H"06"
"0001110"; -- H"0E"
END display;
|
The equivalent function, but I've found that a process using case/when
often produces better logic:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
-- Title "7 segment display driver circuit";
-- File: seg7.vhd
ENTITY seg7 IS
PORT (d : IN STD_LOGIC_VECTOR (3 DOWNTO 0); -- BCD input
d : OUT STD_LOGIC_VECTOR (6 DOWNTO 0)); -- 7 segment
END seg7;
ARCHITECTURE display OF SEG7 IS
BEGIN
seg7: PROCESS (d)
BEGIN
CASE d IS
WHEN "0000" => s <= "1000000"; -- H"40"
WHEN "0001" => s <= "1111001"; -- H"79"
WHEN "0010" => s <= "0100100"; -- H"24"
WHEN "0011" => s <= "0110000"; -- H"30"
WHEN "0100" => s <= "0011001"; -- H"19"
WHEN "0101" => s <= "0010010"; -- H"12"
WHEN "0110" => s <= "0000010"; -- H"02"
WHEN "0111" => s <= "1111000"; -- H"78"
WHEN "1000" => s <= "0000000"; -- H"00"
WHEN "1001" => s <= "0010000"; -- H"10"
WHEN "1010" => s <= "0001000"; -- H"08"
WHEN "1011" => s <= "0000011"; -- H"03"
WHEN "1100" => s <= "1000110"; -- H"46"
WHEN "1101" => s <= "0100001"; -- H"21"
WHEN "1110" => s <= "0000110"; -- H"06"
WHEN "1111" => s <= "0001110"; -- H"0E"
WHEN OTHERS => NULL;
END CASE;
END PROCESS;
END display;
Synthesizers are template driven and I've seen if/elsif/elsif/... and
when/else/when/else/... produce some terribly serial logic. At least with
Synplify the case/when template is often a lot cleaner.
--
Keith |
|
| Back to top |
|
 |
Keith
Guest
|
Posted:
Sat Dec 10, 2005 11:45 pm Post subject:
Re: replacing the seven segment decoder/driver with a pal+la |
|
|
On Fri, 09 Dec 2005 14:43:52 +0000, Ken Smith wrote:
| Quote: | In article <jp6ip1duch02pba0gd4h3iun8ad14flkfb@4ax.com>,
Spehro Pefhany <speffSNIP@interlogDOTyou.knowwhat> wrote:
[....]
ENTITY seg7 IS
ARCHITECTURE display OF SEG7 IS
I have found that it is better to make the names of ENTITYs and
ARCHITECTUREs more obvious such as:
ENTITY SevenSegmentConnect IS
and
ARCHITECTURE SevenSegmentDisplay OF SevenSegmentConnect IS
It doesn't matter in a simple case like this but when you have a hundred
or so of each, remembering what matches up with who can be troublesome.
|
I find your method to be awkward when trying to follow or scope a signal
through many levels of herarchy. The names get to be unmanageable.
--
Keith |
|
| Back to top |
|
 |
|
|
|
|