Hi
Using 98.06. VFD display Farnell 149-5420. Parallel interface 8bit works perfectly. If i then change to 4bit
i just get garbage display. Swapped out with a pin compatible LCD, works perfect in both 8/4 bit.
Has anyone tried the VFD in 4bit?
I've used a similar unit with an SPI interface though. I do recall that it was rather fussy on the timing. It could be that there are not enough delays between the Hi/Lo nibbles of the 4 data bits as they are transferred to the display?
I'm clutching at straws though really. I would have suggested that you try putting a standard LCD in the circuit and give that a try to eliminate any wiring sillies, but you've done that already...
I never got the brightness on mine to work reliably for no reason I could ever track down. Gave up on that. These really are lovely displays and I would like to use them more, it is a pity that LCDs can be bought for so much less.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I will try to get a sample and see the differences. This looks closer to the T6963 Controller than a standard LCD. I try to get one on the next few days.
Anobium
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
According to the manual, to change to 4bit mode, you would need to send a control instruction for 4bit, and a second instruction for brightness. It could be that the usual LCD routine of sending the 4bit (or 8bit) instruction three times is incorrect for this display?
The command for 4bit is the same (32 decimal, 0x20 hex) as is that for 8bit (48 decimal, 0x30 hex) but the manual does specify that it must be followed by a brightness value.
The manual further states that there must be a minimum 40uS delay between sending the upper and lower nibbles of the data byte when in 4bit mode.
This device required a minimum 40us delay between nibbles when using 4-bit mode. The current LCD driver uses HD44780 specifications so the only delay between nibbles is 2 us plus a bit of processing overhead.
This VFD is possibly not initalizing correctly due the the 40us requirement and will certainly
print "garbage" unless the 40us delay between nibbles is implemented.
Also, the LCD initalization routines do not address "display luminance"
It will require modification of the existing LCD Driver (4-bit and 8 bit initalizaton routines and modification to the 4-bit section of LCDWriteByte) to accomodate this incompatible device.
William
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have obtained a VFD. Test and I cannot reproduce any issue. I tested on Great Cow BASIC v.0.98.01, 02, 03, 04, 05. 06 and the latest release candidate.
Not sure what this issue.
Evan
4 - bit code
#chip18f4525,20
#configmclr=on'Use LCD in 4 pin mode and define LCD pins
#DEFINELCD_IO4
#DEFINELCD_RWPORTE.1
#DEFINELCD_RSPORTE.0
#DEFINELCD_EnablePORTE.2
#DEFINELCD_DB4PORTD.4
#DEFINELCD_DB5PORTD.5
#DEFINELCD_DB6PORTD.6
#DEFINELCD_DB7PORTD.7'Main program'Clear the LCDCLS'Display some text on both linesLocate0,0Print"HOBBY COMPONENTS"Wait1sCLSPrintChipNameStr+" @ "+Str(ChipMHz)+"Mhz"Locate1,0
8bit code
#chip18f4525,20
#DEFINELCD_IO8
#DEFINELCD_RWPORTE.1
#DEFINELCD_RSPORTE.0
#DEFINELCD_EnablePORTE.2
#DEFINELCD_DATA_PORTPORTD'Main program'Clear the LCDCLS'Display some text on both linesLocate0,0Print"HOBBY COMPONENTS"Wait1sCLSPrintChipNameStr+" @ "+Str(ChipMHz)+"Mhz"Locate1,0Print"by Anobium"
I noticed that in 4-bit mode you defined the RW pin and did not define NO_RW. Do you have the RW pin grounded or is the display using RW Mode? RW mode waits for the busy/ready flag and will prevent timing errors.
It could be that the OP was not using RW mode and the RW pin was grounded.
Suggest you configure for NO_RW, ground the RW Pin, and retest to see if you get the garbage display.
Bill
Last edit: William Roth 2020-05-05
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi
Thanks for checking in 4bit mode. Not sure where the problem lies. If i cycle the power slowly
i still get garbage, but if i cycle the power quickly <2s the display then works.
Please cycle power.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Resolved. Please use v0.98.07
Also see https://github.com/Anobium/Great-Cow-BASIC-Demonstration-Sources/tree/master/VFD_solutions
Hi
Using 98.06. VFD display Farnell 149-5420. Parallel interface 8bit works perfectly. If i then change to 4bit
i just get garbage display. Swapped out with a pin compatible LCD, works perfect in both 8/4 bit.
Has anyone tried the VFD in 4bit?
Thanks
Last edit: Anobium 2020-05-13
I've not used one of those units, no.
I've used a similar unit with an SPI interface though. I do recall that it was rather fussy on the timing. It could be that there are not enough delays between the Hi/Lo nibbles of the 4 data bits as they are transferred to the display?
I'm clutching at straws though really. I would have suggested that you try putting a standard LCD in the circuit and give that a try to eliminate any wiring sillies, but you've done that already...
I never got the brightness on mine to work reliably for no reason I could ever track down. Gave up on that. These really are lovely displays and I would like to use them more, it is a pity that LCDs can be bought for so much less.
Hi Thanks for the info.
Looks like ill have to revert to LCD. Just prefer VFD's as they look more profesional.
Rgds
Looks nice.
I will try to get a sample and see the differences. This looks closer to the T6963 Controller than a standard LCD. I try to get one on the next few days.
Anobium
I have sent the 'ask' to the manufacturer. Have to wait for a response.
Perhaps the mode select sequence is different
According to the manual, to change to 4bit mode, you would need to send a control instruction for 4bit, and a second instruction for brightness. It could be that the usual LCD routine of sending the 4bit (or 8bit) instruction three times is incorrect for this display?
The command for 4bit is the same (32 decimal, 0x20 hex) as is that for 8bit (48 decimal, 0x30 hex) but the manual does specify that it must be followed by a brightness value.
The manual further states that there must be a minimum 40uS delay between sending the upper and lower nibbles of the data byte when in 4bit mode.
Last edit: mkstevo 2020-04-15
This device required a minimum 40us delay between nibbles when using 4-bit mode. The current LCD driver uses HD44780 specifications so the only delay between nibbles is 2 us plus a bit of processing overhead.
This VFD is possibly not initalizing correctly due the the 40us requirement and will certainly
print "garbage" unless the 40us delay between nibbles is implemented.
Also, the LCD initalization routines do not address "display luminance"
It will require modification of the existing LCD Driver (4-bit and 8 bit initalizaton routines and modification to the 4-bit section of LCDWriteByte) to accomodate this incompatible device.
William
I have obtained a VFD. Test and I cannot reproduce any issue. I tested on Great Cow BASIC v.0.98.01, 02, 03, 04, 05. 06 and the latest release candidate.
Not sure what this issue.
Evan
4 - bit code
8bit code
Last edit: Anobium 2020-05-05
Very nice display.
The color is a really nice green.. the GIF does not do the VFD justice.
Code.
Last edit: Anobium 2020-05-05
See https://github.com/Anobium/Great-Cow-BASIC-Demonstration-Sources/tree/master/VFD_solutions for the code example, an Application Note I was provided by Harry Ueda /of Itron and the PDFs.
Enjoy
I noticed that in 4-bit mode you defined the RW pin and did not define NO_RW. Do you have the RW pin grounded or is the display using RW Mode? RW mode waits for the busy/ready flag and will prevent timing errors.
It could be that the OP was not using RW mode and the RW pin was grounded.
Suggest you configure for NO_RW, ground the RW Pin, and retest to see if you get the garbage display.
Bill
Last edit: William Roth 2020-05-05
RW is required. With NO_RW... no action.
Hi
Thanks for checking in 4bit mode. Not sure where the problem lies. If i cycle the power slowly
i still get garbage, but if i cycle the power quickly <2s the display then works.
Please cycle power.
What is your power supply?
GWinstek GPS-4303. Just tried another supply which can deliver 4A, still the same reset problem.
I will look to slowly power cycle.
This works. Power cyclescreen displays garbage then resets after a couple of seconds.
Confused. You said the 8bit worked. Are you confirming this?
Sorry wrong attachment.
I am not playing guess the answer.
I can see a reset routine. What is different about it?
Last edit: Anobium 2020-05-06
What section of code is this? Init? WriteByte? I will be hours guessing.
From lcd.h. I thought it might help. Sorry.
I am correct in assuming this is from INITLCD() ? and the LCD_IO 4 section?
Yes. Have you seen the same problem?