Not so much serially, but yes, serially.
You'll have to set each pin individually, for each operation, every time, because you are accessing each pin, one at a time, thru the I/O expander.
For instance, to send any character (assuming the LCD is initialized), you'll have to set each data bit, one at a time, set the R/W line (which can most likely be set once to WRITE when the prorgam starts, then leave it alone), then strobe the E line high then back low.
Initialization is another thing... It's a long-ish sequence of setting various bits and/or bytes in the LCD itself, specifying modes, cursors, and so on. Nice thing is, once it's done, you don't have to do it again.
Call me crazy, but it's not really that hard once you get a set of 'core' subroutines built-up. Not to mention, you'll really get a feel for how PBP works once you're done writing the mess...
I suppose the other option is to disconnect that LCD and wire it up as shown in the PBP manual or something close to it...which isn't an unreasonable option. Might require a bit of trace cutting and/or rewiring. Not sure, haven't look at the datasheet for that board too closely.
(just looked at the datasheet for the board)
For that matter, you could probably disconnect the LCD from the mount it sits in right now, plug it into that expansion slot off to the side and set up each pin to do what you need.
If you can blink an LED, you can build up to running an LCD.
Last edited by skimask; - 8th August 2008 at 17:49.
Maybe, but I doubt it. Like skimask said. Can not use it with standard PBP commands.
Get a cheap LCD and hook it up like the example in the manual if you need to play with an LCD now.
Or wait and do some research like skimask said. Or maybe Darrel will have a trick up his sleeve.
Dave
Always wear safety glasses while programming.
Probably a bit over his head at the moment, but....
http://www.picbasic.co.uk/forum/showthread.php?t=7038
I thought about that, but after looking at the data sheet for the MCP23S17 I am not so sure he wants to go there yet either. The MCP23S17 appears to be programmable or at least configurable. Looks like a fun chip.
From the data sheet:
The MCP23017/MCP23S17 (MCP23X17) device
family provides 16-bit, general purpose parallel I/O
expansion for I2C bus or SPI applications. The two
devices differ only in the serial interface.
• MCP23017 – I2C interface
• MCP23S17 – SPI interface
The MCP23X17 consists of multiple 8-bit configuration
registers for input, output and polarity selection. The
system master can enable the I/Os as either inputs or
outputs by writing the I/O configuration bits (IODIRA/B).
The data for each input or output is kept in the corre-
sponding input or output register. The polarity of the
Input Port register can be inverted with the Polarity
Inversion register. All registers can be read by the
system master.
The 16-bit I/O port functionally consists of two 8-bit
ports (PORTA and PORTB). The MCP23X17 can be
configured to operate in the 8-bit or 16-bit modes via
IOCON.BANK.
There are two interrupt pins, INTA and INTB, that can
be associated with their respective ports, or can be
logically OR’ed together so that both pins will activate if
either port causes an interrupt.
Dave
Always wear safety glasses while programming.
I would rather not hack the board up at this point....
If I could get this all striaght in my haed I know I can get the LDC display working...
Lookint at the expander datasheet and the demo board schematic it looks like LCD Data Lines (DB0B7) are connected to the GPIO lines (GPB0:GPB7). LCD RD is on GPA7 and LCD E is on GPA6.
The Pic is connected to the expander like this:
PIC Expander
RC3 --> SCK
RC5 --> SI
RF6 --> Reset
Knowing that How do I cammand the expander to do what I want it to do?
Thanks for all you help so far... it has been GREAT!!
Last edited by Frozen001; - 8th August 2008 at 19:43.
Re-check post #8 and you might get a couple of good ideas there. It might be possible to do what is suggested there. Again, not 100% sure. Maybe when I get home, I'll pour over the schematics, see if the LCD connections and that port can be made to provide all the power/ground/control/data lines to run an LCD.
Does that LCD on the Microchip board unplug or is it hard soldered?
I wouldn't hack it up, I would set it aside until you catch up to it, You will have a much easier time learning if you use an PIC with a simpler architecture like 16F648A. I like that one because it is simple but not useless, nothing tough to get going and has 4k space. You can get an LCD for about $10 from this vendor. http://cgi.ebay.com/20x4-LCD-Module-...QQcmdZViewItem
I buy from him pretty regularly.
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Bookmarks