Not really sure where to post this.
The serial commands are straightforward, and I'm not having an issue with configuration or writing the routine.
I've connected to a multi mode VFD display (graphics, 5x7, and 10 x 14 text modes. (Futaba TGP1118BAA).
Aside from power, there's a single Rx pin which I'm feeding from the UNO's Tx pin (pin 1).
I last used this display with a terminal program on the serial port of a desktop. Worked swimmingly.
The serial input to the display terminates to an input of a 74HC04, the chip's Vcc is 5V .. so it's clearly TTL level.
The display wants to see "op codes" .. 0x00 to reset and clear the display, 0x09 to select mode input, and then 0x01 to enable the 10x14 character set.
This should do that, and display HELLO.
Note, the first delay of 5s was for debugging - a visual indicator (via the Tx LED) that the bootloader had completed, a wait, and then the serial code sent. The others (b) were me just trying to make it work - there is no maximum timing between bytes, so I tried adjusting it.
int b = 5;
void setup() {
Serial.begin(9600); delay(5000);
Serial.write(0x00); delay(b);
Serial.write(0x09); delay(b);
Serial.write(0x01); delay(b);
Serial.write(0x48); delay(b);
Serial.write(0x45); delay(b);
Serial.write(0x4C); delay(b);
Serial.write(0x4C); delay(b);
Serial.write(0x4F); delay(b);
}
void loop() {
}
Now the bootloader (somewhat predictably) sends the display into fits. random modes, text, inversion, graphics, etc. As does just floating the serial input. There is little question that the display is listening.
But nothing I've been able to send on purpose does anything! Not a pip. At the first serial write, the display goes blank and remains so (unless I lift the line and let it accept capacitive coupled garbage).
I can only conclude that the UNO isn't actually sending properly formatted serial data (Should be 9600, 1 start bit, 8 data, no parity, 1 stop) to the Tx pin .. or improper levels. But then why would the display react to the bootloader on the same line? I'm considering lifting one leg of the Tx LED, but I'd rather not - yet.
Anyone have an idea what's going on?
Additional information: The UNO itself is powered USB only, and the display has a separate regulated supply with the ground (0V) tied to UNO GND pin. For chin scratches and shrugs, I've tried both 10K pull up and pull down on the display Rx pin with no change in results.
As well, another reason for the 5s delay was to only connect the display serial after the bootloader had completed - so as just to receive the bytes intended. In this case the display appears to be totally dead.
I also wrote a small routine to send 0-255 to the port just to see if I could get anything.
void setup()
{
Serial.begin(9600);
}
void loop()
{
for (int x = 0; x <= 255; x++)
{
Serial.write(x); delay (4);
}
}
Same results.
Jim.