cancel
Showing results for 
Search instead for 
Did you mean: 

Bidirectional pins/databus?

LMI2
Lead
Posted on January 11, 2016 at 17:39

My display has bidirectional or databus pins. It has also LCD_WR and LCD_RS pins to tell how it should work.

Is there an IO port or pins which could directly drive those. I know it is possible to change direction of IO port but it requires writing to the control register, is there anything more automatic?

3 REPLIES 3
Posted on January 11, 2016 at 18:12

That would be the FSMC

The register select usually being an Address bit on the bus, so it would be high/low depending on what range of memory that is being addressed, read, written, etc.

If the FSMC isn't suitable your only real alternative is to bit bang the bus via ODR, BSRR, etc. and turn the drivers in/out bound.

Complex patterns can be driven at speed out of GPIO pins using DMA+TIM to BSRR

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
LMI2
Lead
Posted on January 11, 2016 at 19:21

I looked at the FSMC option at the CUBE tools once and it did not look very user friendly (or even functional).

I'll probably back in few days asking silly questions about the DMA. It seems to be quite flexible.

Is it really possible to copy bytes/words to IO port and then pulse some other pin for write signal? Edit: With DMA ofcourse.

Posted on January 11, 2016 at 21:40

Writing patterns to BSRR you can generate data and pulse on the same GPIO bank. But you have to create the more complicated set/clear sequences, so writing a byte would involve at least 3 steps, of writing the data, and then pulsing a signal low and high.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..