vfd_driver
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
vfd_driver [2016/01/27 11:47] – [segments] kingkevin | vfd_driver [2024/01/07 17:49] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
The firefly conductor is a vacuum fluorescent display (VFD) driver/ | The firefly conductor is a vacuum fluorescent display (VFD) driver/ | ||
- | {{: | + | {{: |
Main parts: | Main parts: | ||
Line 35: | Line 35: | ||
They each can driver 32 channels (up to 90V). | They each can driver 32 channels (up to 90V). | ||
- | The VFD segments start already to be visible at 5V, but to get them bright you need higher voltages (I use 60V). | + | The VFD segments start already to be visible at 5V, but to get them bright you need higher voltages (I use 50V). |
This is particularly important because you have to drive the digits and matrix one after each other. | This is particularly important because you have to drive the digits and matrix one after each other. | ||
If you do it fast enough, thanks to the persistence of vision they will not appear as flickering. | If you do it fast enough, thanks to the persistence of vision they will not appear as flickering. | ||
Line 73: | Line 73: | ||
- DIN: to shift the data in | - DIN: to shift the data in | ||
- CLK: clock to shift the data, on the clock rise | - CLK: clock to shift the data, on the clock rise | ||
- | - NLE: enable latch on low | + | - #LE: enable latch on low (aka. negative LE, or NLE) |
- STR: strobe the shifted data | - STR: strobe the shifted data | ||
- | - GND: ground | + | - AUX: connected to ground |
{{ : | {{ : | ||
Line 81: | Line 81: | ||
The second VFD has 10 digits, and is a copy of the 10 digits from the main VFD (minus comma and underline). | The second VFD has 10 digits, and is a copy of the 10 digits from the main VFD (minus comma and underline). | ||
- | If you don't have the auxiliary VFD connected, the main VFD will not light up. | + | The AUX pin of CN2 is shorted to ground when the auxiliary VFD is connected. |
- | To circumvent this protection | + | You can use the AUX pin to detect if the auxiliary |
+ | You can also the use AUX pin as second ground pin (i.e. for the VPP power suply). | ||
+ | If the auxiliary VFD is not present, | ||
==== segments ==== | ==== segments ==== | ||
Line 169: | Line 171: | ||
| 00000000 00000000 20000000 | 3 | 30 | 5 | 6 | | | 00000000 00000000 20000000 | 3 | 30 | 5 | 6 | | ||
| 00000000 00000000 40000000 | 3 | 31 | 5 | 7 | | | 00000000 00000000 40000000 | 3 | 31 | 5 | 7 | | ||
+ | |||
+ | ===== micro-controller ===== | ||
+ | |||
+ | The hardware used to control this VFD is a [[stm32f1xx# | ||
+ | |||
+ | The firmware is available [[https:// | ||
+ | It : | ||
+ | * starts by testing all segments of the VFD | ||
+ | * plays an animation | ||
+ | * and finally displays the text typed in over the USB CDC ACM or USART1 ports | ||
+ | |||
+ | The data is shifted out from the micro-controller to the drivers using SPI (this protocol fits well what the HV518 requires). | ||
+ | A timer will periodically refresh all parts of the VFD at 100 Hz. | ||
+ | |||
+ | Since the STM32 provides only 3.3V I/Os and the HV518 requires 5V signals I used a simple [[http:// | ||
+ | But actually it works fine also without, by directly connecting the HV518 to the STM32. | ||
+ | |||
+ | Connection: | ||
+ | ^ STM32 signal ^ board pin ^ VFD CN2 pin ^ HV518 signal ^ | ||
+ | | | GND | 1 | GND | | ||
+ | | | 5V | 2| VDD | | ||
+ | | | | 3 | VPP | | ||
+ | | SPI1_MOSI | PA7 | 4 | DIN | | ||
+ | | SPI1_SCK | PA5 | 5 | CLK | | ||
+ | | GPIO | PA4 | 6 | NLE | | ||
+ | | GPIO | PA6 | 7 | STR | | ||
+ | | | | 8 | AUX | | ||
+ | |||
+ | The VPP and GND pins to drive the VFD segments are provided using an external power supply. | ||
+ | I use a [[http:// |
vfd_driver.1453895227.txt.gz · Last modified: 2024/01/07 17:49 (external edit)