Noritake VFD read data/busy flag/address counter issue - does this make sense? - Page 1
Forum section: electronics / projects

author: alank2
author_rank: Super Contributor
timestamp: August 29, 2014, 08:47:09 pm
content: 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 0x10write 0x01, reading becomes 0x02 (good)the next few are goodwrite 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 returned0x13 --> 0x41 returnedAny ideas how/why this might be the case?export from saleae logic16:1.059743906250000,Write,Command,0x33,Function Set 8-bit; 1 Line; 5x81.059885843750000,Write,Command,0x20,Function Set 4-bit; 1 Line; 5x81.059926906250000,Write,Command,0x2A,Function Set 4-bit; 2 Lines; 5x81.059973125000000,Read,Command,0x00,Not Busy; Addr 0x001.059982593750000,Write,Command,0x08,Display Off; Cursor Off; Blink Off1.059990468750000,Read,Command,0x00,Not Busy; Addr 0x001.059999906250000,Write,Command,0x01,Clear Display1.060007656250000,Read,Command,0x00,Not Busy; Addr 0x001.060017125000000,Write,Command,0x06,Entry Mode Set Increment; No Shift1.060024937500000,Read,Command,0x00,Not Busy; Addr 0x001.060034406250000,Write,Command,0x0C,Display On; Cursor Off; Blink Off1.060042343750000,Read,Command,0x00,Not Busy; Addr 0x001.060051812500000,Write,Command,0x01,Clear Display1.060059750000000,Read,Command,0x00,Not Busy; Addr 0x001.060069250000000,Write,Command,0x80,Set DDRAM Addr 0x001.060077187500000,Read,Command,0x00,Not Busy; Addr 0x001.060086781250000,Write,Data,0x00,Data 'NUL'1.060099656250000,Read,Command,0x10,Not Busy; Addr 0x101.060109187500000,Write,Data,0x01,Data 'SOH'1.060122125000000,Read,Command,0x02,Not Busy; Addr 0x021.060131656250000,Write,Data,0x02,Data 'STX'1.060144593750000,Read,Command,0x03,Not Busy; Addr 0x031.060154125000000,Write,Data,0x03,Data 'ETX'1.060167125000000,Read,Command,0x04,Not Busy; Addr 0x041.060176625000000,Write,Data,0x04,Data 'EOT'1.060189593750000,Read,Command,0x05,Not Busy; Addr 0x051.060199093750000,Write,Data,0x05,Data 'ENQ'1.060212093750000,Read,Command,0x06,Not Busy; Addr 0x061.060221562500000,Write,Data,0x06,Data 'ACK'1.060234562500000,Read,Command,0x07,Not Busy; Addr 0x071.060244031250000,Write,Data,0x07,Data 'BEL'1.060257093750000,Read,Command,0x08,Not Busy; Addr 0x081.060266625000000,Write,Data,0x08,Data 'BS'1.060279562500000,Read,Command,0x90,Busy; Addr 0x101.060288968750000,Read,Command,0x09,Not Busy; Addr 0x091.060298468750000,Write,Data,0x09,Data 'TAB'1.060311468750000,Read,Command,0x0A,Not Busy; Addr 0x0A1.060320937500000,Write,Data,0x0A,Data 'LF'1.060333937500000,Read,Command,0x0B,Not Busy; Addr 0x0B1.060343406250000,Write,Data,0x0B,Data 'VT'1.060356468750000,Read,Command,0x0C,Not Busy; Addr 0x0C1.060365937500000,Write,Data,0x0C,Data 'FF'1.060378937500000,Read,Command,0x0D,Not Busy; Addr 0x0D1.060388406250000,Write,Data,0x0D,Data 'CR'1.060401468750000,Read,Command,0x0E,Not Busy; Addr 0x0E1.060410875000000,Write,Data,0x0E,Data 'SO'1.060423937500000,Read,Command,0x0F,Not Busy; Addr 0x0F1.060433312500000,Write,Data,0x0F,Data 'SI'1.060446437500000,Read,Command,0x10,Not Busy; Addr 0x101.060456031250000,Write,Data,0x10,Data 'DLE'1.060468906250000,Read,Command,0x11,Not Busy; Addr 0x111.060478500000000,Write,Data,0x11,Data 'DC1'1.060491437500000,Read,Command,0x21,Not Busy; Addr 0x211.060501031250000,Write,Data,0x12,Data 'DC2'1.060513968750000,Read,Command,0x31,Not Busy; Addr 0x311.060523500000000,Write,Data,0x13,Data 'DC3'1.060536500000000,Read,Command,0x41,Not Busy; Addr 0x411.060546062500000,Write,Data,0x14,Data 'DC4'1.060559000000000,Read,Command,0x51,Not Busy; Addr 0x511.060568531250000,Write,Data,0x15,Data 'NAK'1.060581531250000,Read,Command,0x61,Not Busy; Addr 0x611.060591062500000,Write,Data,0x16,Data 'SYN'1.060604062500000,Read,Command,0x71,Not Busy; Addr 0x711.060613531250000,Write,Data,0x17,Data 'ETB'

author: alank2
author_rank: Super Contributor
timestamp: August 30, 2014, 11:04:54 pm
content: Nevermind, bad breadboard issue. I direct wired it to the microcontroller and the problem is solved.