Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
297: Add support for some LCD controllers using the FMC/FSMC r=therealprof a=samcrow # Introduction This pull request adds code that uses the Flexible Memory Controller or Flexible Static Memory Controller to interface with some types of LCD controllers. We have [another FMC pull request](#194) for non-LCD applications that has been inactive for a while. I'm hoping that this pull request will be easier to review because it does not try to implement everything that the hardware supports. # Features * Controls up to 4 independent LCDs * Compatible with LCD controllers that use the Intel 8080 protocol with a 16-bit bidirectional data bus * Includes an example that works on the STM32F412G-DISCO board * Provides a low-level interface that can be used to write drivers for specific LCD controllers # Limitations * No support for bus widths other than 16 bits * I have only tested this code with Sitronix ST7789-series LCD controllers. Are there other LCD controllers that use an Intel 8080-like interface that this code cannot support? * The code uses some trait trickery to ensure that the client code can only access the display(s) that correspond to the chip select pin(s) in use. However, this may make the API too difficult for people to understand. # Future work * Support an 8-bit data bus (in addition to the currently supported 16-bit bus) * Potentially support an 18-bit data bus, on microcontroller models that have more than 16 data pins Co-authored-by: Sam Crow <scrow@eng.ucsd.edu>
- Loading branch information