I have been trying to make RA8875 with SPI to work with emWin, but not much success. This far all but Edit, MultiEdit, Checkbox and text work fine, although the colors must be right. You can see the problems in the attached file.
The basic text example works only if I select the colors right, otherwise the text is as in Edit box, blurry. Only GUI_TM_TRANS | GUI_TM_REV seems to show the text always ok.
Checkbox does not work. I can check and uncheck a checkbox and read the state, but it is always uncheck on the display.
ColorBars are fine.
I have STemWin, so I cannot debug the code, but in logic analyzer all seem to be ok.
I am inclined to think, that the error is in the RA8875 driver Segger has provided. Below are my interface function definitions for RA8875 and ILI9341. ILI9341 definitions are, as I understand, according to the emWin manual, but RA8875 works better, if I send data using A0 functions instead of A1. ILI9341 works fine.
RA8875:
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);
PortAPI.pfWrite8_A0 = LcdWriteData;
PortAPI.pfRead8_A0 = LcdReadData;
PortAPI.pfWriteM8_A0= LcdWriteDataMultiple;
PortAPI.pfReadM8_A0= LcdReadDataMultiple;
PortAPI.pfWrite8_A1 = LcdWriteCommand;
PortAPI.pfRead8_A1 = LcdReadStatus;
PortAPI.pfReadM8_A1 = LcdReadCommandMultiple;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66721, GUIDRV_FLEXCOLOR_M16C0B8); // 16bpp, no cache, 8 bit bus
ILI9341 works fine, below the definitions
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);
PortAPI.pfWrite8_A1 = LcdWriteData; //byte to the controller with C/D line high = DATA
PortAPI.pfWriteM8_A1 = LcdWriteDataMultiple;
PortAPI.pfRead8_A1 = ILI9341_ReadData;
PortAPI.pfReadM8_A1 = LcdReadDataMultiple;
PortAPI.pfWrite8_A0 = LcdWriteCommand;
I have already earlier posted about this problem, but I have not found any solution.
Has anybody been able to use RA8875 SPI with emWin?
As far as I know RA8875 is the only controller, that can handle 800x480 and has SPI interface.
The basic text example works only if I select the colors right, otherwise the text is as in Edit box, blurry. Only GUI_TM_TRANS | GUI_TM_REV seems to show the text always ok.
Checkbox does not work. I can check and uncheck a checkbox and read the state, but it is always uncheck on the display.
ColorBars are fine.
I have STemWin, so I cannot debug the code, but in logic analyzer all seem to be ok.
I am inclined to think, that the error is in the RA8875 driver Segger has provided. Below are my interface function definitions for RA8875 and ILI9341. ILI9341 definitions are, as I understand, according to the emWin manual, but RA8875 works better, if I send data using A0 functions instead of A1. ILI9341 works fine.
RA8875:
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);
PortAPI.pfWrite8_A0 = LcdWriteData;
PortAPI.pfRead8_A0 = LcdReadData;
PortAPI.pfWriteM8_A0= LcdWriteDataMultiple;
PortAPI.pfReadM8_A0= LcdReadDataMultiple;
PortAPI.pfWrite8_A1 = LcdWriteCommand;
PortAPI.pfRead8_A1 = LcdReadStatus;
PortAPI.pfReadM8_A1 = LcdReadCommandMultiple;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66721, GUIDRV_FLEXCOLOR_M16C0B8); // 16bpp, no cache, 8 bit bus
ILI9341 works fine, below the definitions
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);
PortAPI.pfWrite8_A1 = LcdWriteData; //byte to the controller with C/D line high = DATA
PortAPI.pfWriteM8_A1 = LcdWriteDataMultiple;
PortAPI.pfRead8_A1 = ILI9341_ReadData;
PortAPI.pfReadM8_A1 = LcdReadDataMultiple;
PortAPI.pfWrite8_A0 = LcdWriteCommand;
I have already earlier posted about this problem, but I have not found any solution.
Has anybody been able to use RA8875 SPI with emWin?
As far as I know RA8875 is the only controller, that can handle 800x480 and has SPI interface.