Author Topic: VFD multiplexing.  (Read 13124 times)

0 Members and 1 Guest are viewing this topic.

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13133
Re: VFD multiplexing.
« Reply #50 on: August 10, 2017, 01:15:01 am »
Your attempt looks possible but the code for 'A' is wrong - you've got 0xA0 (0b1010000) which is outside the standard ASCII character set so %DEITY% only knows what the display is doing with it.  You need 0x41 (0b01000001) for 'A'.  Try:
Code: [Select]
  digitalWrite (DB0, HIGH);
  digitalWrite (DB1, LOW);
  digitalWrite (DB2, LOW);
  digitalWrite (DB3, LOW);
  digitalWrite (DB4, LOW);
  digitalWrite (DB5, LOW);
  digitalWrite (DB6, HIGH);
  digitalWrite (DB7, LOW);

The EBAY ad lists the following control codes:
Hex    ASCII Code    Notes
---    ----------    -----
00    NULL
01    SOH
02    STX
03    ETX
04    EOT n        Set display brightness level (DIM = 0x20, MED1 = 0x40, MED2 = 0x60, FULL = 0xFF).
05    ENQ
06    ACK
07    BEL        Turn on blinking underline cursor.
08    BS        Backspace and erase. Spans both lines.
09    HT        Moves cursor one position right. Wraps to Line 01. Does not scroll at end of Line 01.
0A    LF        If on Line 00: moves cursor down one line, same column.
            If on Line 01: scrolls line up, moves cursor to column one.
0B    VT        Turn on blinking characters. ----    |---- Use in pairs.
0C  +  FF        Turn off blinking characters. ---
0D    CR        Moves cursor to start of line. Does not clear line.
0E  +    SO        Turn off cursor.
0F    SI        Turn on solid underline cursor.
10    DLE
11    DC1        Turns on wrap around. When Line 01, Col 19 is reached, continue at Line 00, Col 00.
12  +    DC2        Turns off wrap around. When Line 01, Col 19 is reached, characters overprint that position.
13    DC3        When Line 01, Col 19 is reached, scroll characters on Line 01 left. No effect on Line 00.
14    DC4        Clear screen. Home cursor. Turns cursor on. INITIALIZE SCREEN.
15    NAK        Clear screen. Home cursor. Leaves cursor off if off.
16    SYN        Home cursor. Does not clear screen.
17    ETB n        Turns underlines on/off (underline on = 0x44, blinking underline on = 0x46, underline off = 0x45).
18    CAN
19    EOM        Adds 80H to following character. Allows printing of high-bit characters if sending 7-bit data.
1A    SUB   
1B    ESC n        Moves cursor to position 0-39. Both lines contiguous.
1C    FS
1D    GS
1E    RS        Multi-byte command. Possible user defined characters.
1F    US


They don't match the control codes in Reinhard's sketch.  It sends 0x1F at startup then 0x16 before each screenful of characters.  Reinhard thinks 0x16 is soft reset, your supplier thinks its Home Cursor without clearing the screen.   

Maybe the model number in the EBAY ad is wrong, maybe Reinhard
made a typo and is actually using a different display, or maybe, as it has a MCU on board, its got custom firmware with different control codes.   I strongly recommend contacting the EBAY seller for the Arduino library and instructions,
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #51 on: August 10, 2017, 01:29:36 am »
Your attempt looks possible but the code for 'A' is wrong - you've got 0xA0 (0b1010000) which is outside the standard ASCII character set so %DEITY% only knows what the display is doing with it.  You need 0x41 (0b01000001) for 'A'.  Try:
Code: [Select]
  digitalWrite (DB0, HIGH);
  digitalWrite (DB1, LOW);
  digitalWrite (DB2, LOW);
  digitalWrite (DB3, LOW);
  digitalWrite (DB4, LOW);
  digitalWrite (DB5, LOW);
  digitalWrite (DB6, HIGH);
  digitalWrite (DB7, LOW);

The EBAY ad lists the following control codes:
Hex    ASCII Code    Notes
---    ----------    -----
00    NULL
01    SOH
02    STX
03    ETX
04    EOT n        Set display brightness level (DIM = 0x20, MED1 = 0x40, MED2 = 0x60, FULL = 0xFF).
05    ENQ
06    ACK
07    BEL        Turn on blinking underline cursor.
08    BS        Backspace and erase. Spans both lines.
09    HT        Moves cursor one position right. Wraps to Line 01. Does not scroll at end of Line 01.
0A    LF        If on Line 00: moves cursor down one line, same column.
            If on Line 01: scrolls line up, moves cursor to column one.
0B    VT        Turn on blinking characters. ----    |---- Use in pairs.
0C  +  FF        Turn off blinking characters. ---
0D    CR        Moves cursor to start of line. Does not clear line.
0E  +    SO        Turn off cursor.
0F    SI        Turn on solid underline cursor.
10    DLE
11    DC1        Turns on wrap around. When Line 01, Col 19 is reached, continue at Line 00, Col 00.
12  +    DC2        Turns off wrap around. When Line 01, Col 19 is reached, characters overprint that position.
13    DC3        When Line 01, Col 19 is reached, scroll characters on Line 01 left. No effect on Line 00.
14    DC4        Clear screen. Home cursor. Turns cursor on. INITIALIZE SCREEN.
15    NAK        Clear screen. Home cursor. Leaves cursor off if off.
16    SYN        Home cursor. Does not clear screen.
17    ETB n        Turns underlines on/off (underline on = 0x44, blinking underline on = 0x46, underline off = 0x45).
18    CAN
19    EOM        Adds 80H to following character. Allows printing of high-bit characters if sending 7-bit data.
1A    SUB   
1B    ESC n        Moves cursor to position 0-39. Both lines contiguous.
1C    FS
1D    GS
1E    RS        Multi-byte command. Possible user defined characters.
1F    US


They don't match the control codes in Reinhard's sketch.  It sends 0x1F at startup then 0x16 before each screenful of characters.  Reinhard thinks 0x16 is soft reset, your supplier thinks its Home Cursor without clearing the screen.   

Maybe the model number in the EBAY ad is wrong, maybe Reinhard
made a typo and is actually using a different display, or maybe, as it has a MCU on board, its got custom firmware with different control codes.   I strongly recommend contacting the EBAY seller for the Arduino library and instructions,

The code has no effect and i am beginning to regret buying this thing. I just wish i knew why i thought desoldering the connect was a good idea, i could of just cut the shroud off to breadboard it.  |O |O

Well off topic, but it makes me feel less stupid, i had a DS3231 RTC laying around and was able able to monkey with the code to where it serials prints the time, date and temperature.
« Last Edit: August 10, 2017, 01:44:52 am by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #52 on: August 10, 2017, 11:26:05 pm »
Rereading the original thread about this is giving me a headache.  :-DD
But aside from that i finally figured out how to use the 7407 to raise voltage. You meant to pull up the output through a 40k resistor and so when it is off the output is high, right?

I am a bit slow on the upkeep. Once i get something, that is to say once it clicks in my head, it becomes much simpler.

Also i have come up with a genius idea that would make things simpler but it calls for a 7446, so unfortunately it is out given that they are 2 bucks a piece minimum.
« Last Edit: August 10, 2017, 11:56:40 pm by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13133
Re: VFD multiplexing.
« Reply #53 on: August 10, 2017, 11:54:19 pm »
Yes, when the output transistor of a gate from a 7407 is off, the output can be pulled up to a high voltage (Max. 30V) via an external resistor.   You'd want a little safety margin so a 27V or 28V HT rail would be good   As its non-inverting, TTL logic '1' in will turn off the output transistor and let the output be pulled high, and logic '0' in, will turn the transistor on pulling the output down to near 0V.  Also as I no doubt pointed out in the other topic, it *MUST* be real bipolar TTL (7407 or 74LS07) as all the CMOS ones have a diode clamp to VCC on the output so aren't high voltage capable.

I think I can see where you are going with the 7446, as its 30V capable OC outputs would let you use a simple base resistor up to a PNP transistor, emitter to 27V, collector to the VFD segment, which would give you a reduced component count BCD decode and VFD anode drive solution.   Its also got a useful blanking input.  You'd probably still need a 220K or so pulldown resistor on each PNP collector to prevent ghosting.  $2 isn't a bad price as you only need ONE 7446 as long as you do the multiplexing before it.   

The alternative of wiring N of them with their outputs in parallel then activating them one at a time via their blanking pins would be rather more expensive, but might be worth it for the simplicity.  It looks like Futurelec has them for $1.60.  There's also an EBAY buy it now for 5x N.O.S. D146D, which is an East German clone of the 7446, for $5 + $1 P&P, which would work out at $1.20 each.
« Last Edit: August 11, 2017, 12:21:01 am by Ian.M »
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #54 on: August 11, 2017, 12:04:25 am »
Yes, when the output transistor of a gate from a 7407 is off, the output can be pulled up to a high voltage (Max. 30V) via an external resistor.   You'd want a little safety margin so a 27V or 28V HT rail would be good   As its non-inverting, TTL logic '1' in will turn off the output transistor and let the output be pulled high, and logic '0' in, will turn the transistor on pulling the output down to near 0V.  Also as I no doubt pointed out in the other topic, it *MUST* be real bipolar TTL (7407 or 74LS07) as all the CMOS ones have a diode clamp to VCC on the output so aren't high voltage capable.

I have plenty "real" 7407s and the good news is they are jelly bean parts.
I got an idea to eliminate a stage but it would require a 7446, 2 bucks a pop, versus a 7407 and 4055,  combo is 1.42 from digikey.
What does futerlec charge for shipping?
« Last Edit: August 11, 2017, 12:14:21 am by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #55 on: August 11, 2017, 12:27:55 am »
The alternative of wiring N of them with their outputs in parallel then activating them one at a time via their blanking pins would be rather more expensive, but might be worth it for the simplicity.  It looks like Futurelec has them for $1.60
Personally i would rather keep the current method, that is using a latch or buffer with tristate as a pre-stage.
It makes sense to me and is cheap enough, certainly more so that 1.6 bucks a digit.
Current idea, CD4508 latch, 1.21 each; 7446 from futerlec if shipping is reasonable, 1.6 each; a 4069 inverter which i have; a 4017 which i have, for the grids 7407 which i have.
As for putting information in i am trying to figure out how to use two 74HC595s to print a bcd value from arduino.
  Total cost for a whole circuit: ~$5 with a scrap bin VFD and a few parts on hand.
  Per set of digits: 2.8 and only 1.2 more for every additional pair of 7 segment digits.
« Last Edit: August 11, 2017, 12:34:52 am by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #56 on: August 11, 2017, 10:59:24 pm »
I think I can see where you are going with the 7446, as its 30V capable OC outputs would let you use a simple base resistor up to a PNP transistor, emitter to 27V, collector to the VFD segment, which would give you a reduced component count BCD decode and VFD anode drive solution.   Its also got a useful blanking input.  You'd probably still need a 220K or so pulldown resistor on each PNP collector to prevent ghosting.  $2 isn't a bad price as you only need ONE 7446 as long as you do the multiplexing before it.   

Can't i do a 7446 same as a 7407? With a pull-up resistor.
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13133
Re: VFD multiplexing.
« Reply #57 on: August 12, 2017, 03:36:05 am »
No. the 7446 output is active low: i.e. low when the segment is on - the exact opposite of what's needed for a VFD segment anode so you *MUST* have an inverting high side transistor for each segment if you want to use it as a single chip decoder and level shifter.  Unfortunately you cant substitute an active high chip in the same family as the only active high output parts in the 7446..49 family - (74xx48,49) only have logic level outputs, so would need  7407 buffers after them to get an active high 30V HV output.  Of course you could also drive 7406 inverting HV buffers from an active low decoder like a 7446 to get an active high output.

However as VFD segment anodes sink current, you need a sourcing driver for them and a plain resistive pullup makes a really crappy sourcing driver - the tradeoff between the voltage drop due to load current in the high state and power dissipation in the pullup when pulled low is not in your favour.   Its easier to bite the bullet and add a high side transistor - either PNP common emitter (as discussed above) if you don't mind (or actually want) inversion or for non-inverted output a NPN emitter follower with a base-emitter diode so you don't have to use a resistive pulldown.  The NPN still needs a pullup for its base, but depending on its current gain that 's typically two orders of magnitude less of a problem.
« Last Edit: August 12, 2017, 08:19:03 am by Ian.M »
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #58 on: August 12, 2017, 05:54:07 pm »
Multiplexing achieved. Admittedly very basic and useless data but it is multiplexing with what i had laying around, 8098 buffers with 7407 pulling up the voltage to 26V and a shift register feeding the data.
https://youtu.be/PVYEjEDDZ9k
I recommend .25 speed. I apologize for the quality and length the main video of it was thirty seconds but was deleted by a camera mishap.
It is almost useless but is a half decent proof of concept i think.
Also, in the final version i will just use the 7407s as the level shifter and accept the extra stage as it is unavoidable.
« Last Edit: August 13, 2017, 12:01:43 am by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #59 on: August 12, 2017, 11:52:34 pm »
Would the 4511 work to covert BCD to 7 segments? It is almost the only reasonable BCD to 7 segment driver on ebay, and it is the only reasonable chip in America for the task.
« Last Edit: August 13, 2017, 12:09:42 am by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13133
Re: VFD multiplexing.
« Reply #60 on: August 13, 2017, 12:32:44 am »
Sure, as long as your driver circuit is expecting an active high signal.  Its got a blanking input and if you tie its latch enable pin low its transparent.
 

Offline neoTopic starter

  • Super Contributor
  • ***
  • Posts: 1694
  • Country: us
  • The specialist.
Re: VFD multiplexing.
« Reply #61 on: August 13, 2017, 02:21:18 am »
Sure, as long as your driver circuit is expecting an active high signal.  Its got a blanking input and if you tie its latch enable pin low its transparent.
Great, i just found two in my collection and a 7447, prototyping continues. I also found 8 7446 chips.
« Last Edit: August 15, 2017, 02:58:23 pm by neo »
A hopeless addict (and slave) to TEA and a firm believer that high frequency is little more than modern hoodoo.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf