I am trying to use FSMC instead of I2C parallel interface to communicate with HD44780 LCD controller. FSMC is connected to SRAM and HD44780 at the same time and the clock frequency is MHz. The clock frequency of HD44780 is only kHz level.

Can the FSMC communicate with the HD44780 normally?

Will there be waiting time and slow down the access speed to the SRAM?

If so, what is the address when FSMC communicates with HD44780?

Any help would be greatly appreciated!

  • \$\begingroup\$ Which STM32 model and which SRAM model? \$\endgroup\$
    – Justme
    Commented Aug 21, 2021 at 5:27

1 Answer 1


I'm assuming you're referring to the FSMC on the STM32? You might want to be explicit regarding what microcontroller you're referring to.

You're correct in noting the speed difference with the HD44780 - it is dog slow by today's standards. Therefore it is probably not a good idea to do this. I'd suggest using standard GPIO and running the HD44780 in 4 bit write only mode. This requires only D4..7, E and RS. 6 GPIO. Even then, you need to ensure your code does not do things too fast.

I've not got experience with the FSMC, but it would need to be able to be setup to work at the 1MHz speed of the HD44780 and then changed back to get reasonable speed with the sram.

What would the address be? Depends on how you've wired it. If you're sharing with sram, you'll need some logic to select one or the other. This will determine the address.

Whilst it is educational for exploring the possibility, it is probably not a good idea. Use GPIO and move on.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.