EEVblog Electronics Community Forum

Electronics => Projects, Designs, and Technical Stuff => Topic started by: alank2 on August 29, 2014, 08:47:09 pm

Title: Noritake VFD read data/busy flag/address counter issue - does this make sense?
Post by: alank2 on August 29, 2014, 08:47:09 pm
Hi Everyone,

First, if I put a HD44780 LCD in, it seems to have no issue and works as expected, but when I use a Noritake VFD, it seems to swap the nibbles of the check busy flag or do something odd with them.

I am writing byte values 0, 1, 2, and so on to the display and it tries to read the busy status and address counter, but does so oddly.  Start with set ddram addr below and go down.

write 0x00, address should become 1, reading it shows 0x10 ???
write 0x01, reading becomes 0x02 (good)
the next few are good
write 0x08, first read is 0x90 (interepreted as busy though it should not have been), second read is 0x09 (what it should be)
beings working again until it writes 0x11 and it always returns it backwards, 0x21 for example.
0x12 --> 0x31 returned
0x13 --> 0x41 returned

Any ideas how/why this might be the case?

export from saleae logic16:

1.059743906250000,Write,Command,0x33,Function Set 8-bit; 1 Line; 5x8
1.059885843750000,Write,Command,0x20,Function Set 4-bit; 1 Line; 5x8
1.059926906250000,Write,Command,0x2A,Function Set 4-bit; 2 Lines; 5x8
1.059973125000000,Read,Command,0x00,Not Busy; Addr 0x00
1.059982593750000,Write,Command,0x08,Display Off; Cursor Off; Blink Off
1.059990468750000,Read,Command,0x00,Not Busy; Addr 0x00
1.059999906250000,Write,Command,0x01,Clear Display
1.060007656250000,Read,Command,0x00,Not Busy; Addr 0x00
1.060017125000000,Write,Command,0x06,Entry Mode Set Increment; No Shift
1.060024937500000,Read,Command,0x00,Not Busy; Addr 0x00
1.060034406250000,Write,Command,0x0C,Display On; Cursor Off; Blink Off
1.060042343750000,Read,Command,0x00,Not Busy; Addr 0x00
1.060051812500000,Write,Command,0x01,Clear Display
1.060059750000000,Read,Command,0x00,Not Busy; Addr 0x00
1.060069250000000,Write,Command,0x80,Set DDRAM Addr 0x00
1.060077187500000,Read,Command,0x00,Not Busy; Addr 0x00
1.060086781250000,Write,Data,0x00,Data 'NUL'
1.060099656250000,Read,Command,0x10,Not Busy; Addr 0x10
1.060109187500000,Write,Data,0x01,Data 'SOH'
1.060122125000000,Read,Command,0x02,Not Busy; Addr 0x02
1.060131656250000,Write,Data,0x02,Data 'STX'
1.060144593750000,Read,Command,0x03,Not Busy; Addr 0x03
1.060154125000000,Write,Data,0x03,Data 'ETX'
1.060167125000000,Read,Command,0x04,Not Busy; Addr 0x04
1.060176625000000,Write,Data,0x04,Data 'EOT'
1.060189593750000,Read,Command,0x05,Not Busy; Addr 0x05
1.060199093750000,Write,Data,0x05,Data 'ENQ'
1.060212093750000,Read,Command,0x06,Not Busy; Addr 0x06
1.060221562500000,Write,Data,0x06,Data 'ACK'
1.060234562500000,Read,Command,0x07,Not Busy; Addr 0x07
1.060244031250000,Write,Data,0x07,Data 'BEL'
1.060257093750000,Read,Command,0x08,Not Busy; Addr 0x08
1.060266625000000,Write,Data,0x08,Data 'BS'
1.060279562500000,Read,Command,0x90,Busy; Addr 0x10
1.060288968750000,Read,Command,0x09,Not Busy; Addr 0x09
1.060298468750000,Write,Data,0x09,Data 'TAB'
1.060311468750000,Read,Command,0x0A,Not Busy; Addr 0x0A
1.060320937500000,Write,Data,0x0A,Data 'LF'
1.060333937500000,Read,Command,0x0B,Not Busy; Addr 0x0B
1.060343406250000,Write,Data,0x0B,Data 'VT'
1.060356468750000,Read,Command,0x0C,Not Busy; Addr 0x0C
1.060365937500000,Write,Data,0x0C,Data 'FF'
1.060378937500000,Read,Command,0x0D,Not Busy; Addr 0x0D
1.060388406250000,Write,Data,0x0D,Data 'CR'
1.060401468750000,Read,Command,0x0E,Not Busy; Addr 0x0E
1.060410875000000,Write,Data,0x0E,Data 'SO'
1.060423937500000,Read,Command,0x0F,Not Busy; Addr 0x0F
1.060433312500000,Write,Data,0x0F,Data 'SI'
1.060446437500000,Read,Command,0x10,Not Busy; Addr 0x10
1.060456031250000,Write,Data,0x10,Data 'DLE'
1.060468906250000,Read,Command,0x11,Not Busy; Addr 0x11
1.060478500000000,Write,Data,0x11,Data 'DC1'
1.060491437500000,Read,Command,0x21,Not Busy; Addr 0x21
1.060501031250000,Write,Data,0x12,Data 'DC2'
1.060513968750000,Read,Command,0x31,Not Busy; Addr 0x31
1.060523500000000,Write,Data,0x13,Data 'DC3'
1.060536500000000,Read,Command,0x41,Not Busy; Addr 0x41
1.060546062500000,Write,Data,0x14,Data 'DC4'
1.060559000000000,Read,Command,0x51,Not Busy; Addr 0x51
1.060568531250000,Write,Data,0x15,Data 'NAK'
1.060581531250000,Read,Command,0x61,Not Busy; Addr 0x61
1.060591062500000,Write,Data,0x16,Data 'SYN'
1.060604062500000,Read,Command,0x71,Not Busy; Addr 0x71
1.060613531250000,Write,Data,0x17,Data 'ETB'
Title: Re: Noritake VFD read data/busy flag/address counter issue - does this make sense?
Post by: alank2 on August 30, 2014, 11:04:54 pm
Nevermind, bad breadboard issue.  I direct wired it to the microcontroller and the problem is solved.