simple demo hardware code for implement access to ST7789 LCD display from FPGA
LCD display based upon ST7789 IC Resolution : 240x240 pixels
CHIP SELECT in zero constantly, control display only for control CLK signal
Interface over Display and FPGA - SPI without ChipSelect
Two Components realize access to display :
- st7789_driver - implement serial access with SPI to display for control them
- st7789_mgr - command processor for initialize data transmission and command transmission for driver on byte level
Components works on AXI-Stream support
mgr perform initialize display by sending required commands. For this version user can perform only one command - fill display RGB colors and internal fsm changes this colors for next time
Initialize includes next steps :
- Send command RESET_SW(0x01)
- Pause
- Send command SLEEP_OUT(0x11)
- Send command INV_ON(0x21)
- Send command DISP_ON(0x29)
- Send command RASET(0x2B)
- Send command CASET(0x2A)
Data transmission is possible up to 75 Mhz (SCL clock period). When exceeded this frequency, transmitted data was corrupted, and display filled with impure color
Дисплей используется на основе контроллера ST7789. Разрешение экрана - 240х240 точек.
У дисплея есть особенность - CHIP_SELECT установлен в постоянный ноль, а это значит что управление дисплеем возможно только используя управление CLK.
Интерфейс к дисплею - SPI без CS.
Пара компонентов реализующая доступ к дисплею:
- st7789_driver - компонент для реализации последовательной передачи к дисплею данных и управляющих сигналов
- st7789_mgr - обработчик команд. Инициирует корректную передачу данных на последующую реализацию, сопровождая необходимыми сигналами
Компоненты работают по AXI-Stream.
mgr сейчас выполняет инициализацию дисплея отправляя необходимые команды. Пользователь может в данном случае выполнять только одну команду - заполнение дисплея цветами RGB константными значениями. Дисплей в таком случае заполнится целиком одним цветом, который будет меняться по мере работы
Инициализация происходит по следующей последовательности :
- Отправка команды RESET_SW(0x01)
- Пауза
- Отправка команды SLEEP_OUT(0x11)
- Отправка команды INV_ON(0x21)
- Отправка команды DISP_ON(0x29)
- Отправка команды RASET(0x2B)
- Отправка команды CASET(0x2A)
Отправка данных возможна до 75 МГц(частота тактирования SCL). При превышении частоты возникают эффекты, связанные с тем, что данные начинают ехать, тем самым, дисплей заполняется цветом, только цвет неоднородный.
Таким образом гарантируется обмен между дисплеем и FPGA со скоростью 75 МБит/с.
1.0 Initial version