SparkFun Forums 

Where electronics enthusiasts find answers.

Everything ARM and LPC
By emb_sys_dev
Hello ,
I have an 16x2 character LCD hooked up to a LPC2148.This is in 8bit , with BUSY read. It works without any problems if I use legacy GPIO,but does not work with fast GPIO.

I have set SCS to enable fast IO, and just converted all IOPIN,IOSET... etc. to FIOPIN,FIOSET...My code does not have any soft delays after toggling any control pin,and it works fine with legacy GPIO.

Though I have not used it , can anyone show FIOMASK would be useful ? The UM says that if a bit in FIOMASK is set , writes/reads to a pin register does not change/read the physical status of the pin.I do not know how this would be useful.
By hsutherl
SCS is what usually trips people up and you mentioned that. Your ...etc included the direction registers?
By emb_sys_dev
Hi hsutherl ,
Thanks for replying.
Yes it does include the FIODIR pins as well.I did not get the opportunity again to work on this after posting.
I had cross posted this problem in yahoo lpc200 group as well. So I got a reply for this :
"Though I have not used it , can anyone show FIOMASK would be useful ? " Basically, it is an alternative for read-modify-write sequence which would otherwise be used with FIOPIN.
By emb_sys_dev
I fixed the problem by putting some delays in the order of 10uS after toggling any of the control pins.Not very elegant but there it is.I am still not very clear why IO does not need this, but FIO does.
Maybe something to do with ringing perhaps.Also I am using a 5V LCD on a 3.3V IO from the ARM directly.Maybe a HCT buffer in between might also give more reliable results.