Not applicable
Jun 13, 2016
05:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 13, 2016
05:32 AM
Hi,
I'm trying to control a 800x280 pixel TFT-display using an XMC1300 together with the S1D13781 controller from Epson.
As far is I saw in the graphics library available from epson it relies on the two apps "SPI_MASTER" and "DIGITAL_IO".
All available sample projects use the XMC4700, which is far to powerful for my application, therefore I decided to try it with the XMC1300.
I configured the necessary apps according to the "xmc4700_s1d13781_withapps"-project, except for the pin-mapping.
Unfortunately on initializing the Displaycontroller using the "void S1d13781::init()"-Method, the code loops forever at the point where it requests the PLL-lock. *
I always receive "0" for an answer, independent of the requested register, so it seems like SPI-Communication fails. Shouldn't this be possible using the XMC1300?
Thanks,
Domi
*while(!(regRead(REG10_PLL_0) & 0x8000)){
continue;
}
I'm trying to control a 800x280 pixel TFT-display using an XMC1300 together with the S1D13781 controller from Epson.
As far is I saw in the graphics library available from epson it relies on the two apps "SPI_MASTER" and "DIGITAL_IO".
All available sample projects use the XMC4700, which is far to powerful for my application, therefore I decided to try it with the XMC1300.
I configured the necessary apps according to the "xmc4700_s1d13781_withapps"-project, except for the pin-mapping.
Unfortunately on initializing the Displaycontroller using the "void S1d13781::init()"-Method, the code loops forever at the point where it requests the PLL-lock. *
I always receive "0" for an answer, independent of the requested register, so it seems like SPI-Communication fails. Shouldn't this be possible using the XMC1300?
Thanks,
Domi
*while(!(regRead(REG10_PLL_0) & 0x8000)){
continue;
}
2 Replies
Jun 20, 2016
10:28 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 20, 2016
10:28 AM
XMC1300 does not have a PLL. I think there is more code manipulation that is necessary to port from XMC4700 to XMC1300. I would start by creating a new XMC1300 project, and then manipulating apps to match XMC4700.
Not applicable
Jun 25, 2016
01:48 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 25, 2016
01:48 AM
Sorry I may have been unclear, the XMC1300 waits for the lock of the PLL of the Displaycontroller. This lock is indicated by a special value returned over SPI. The library itself only relies on the two apps SPI_MASTER and DIGITAL_IO, which are both available for the XMC1300, therefore no adaption is needed.
I think I found the problem, it lies in the communication itself. I tried to connect a XMC1300 and a XMC1100 (XMC2Go) via SPI and it took me over a week to get it to work. There seems to be a problem within the SPI_MASTER app. I used the following code-snippet on the XMC1300 as master:
uint8_t data[2] = {1,2};
uint8_t rxdata[2] = {0};
SPI_MASTER_Transfer(&SPI_MASTER_0, data, rxdata, 2);
On the XMC1100 I use the following code snippet to receive the data:
uint8_t ReadData[2] = {0};
SPI_SLAVE_Receive(&SPI_SLAVE_0,ReadData, 2);
Then I always receive the first sent byte for both received bytes.
e.g.:
sent 1, 2 -> received 1,1
sent 3,4 -> received 3,3
If I now alter the sending code to:
uint8_t data[2] = {1,2};
uint8_t rxdata[2] = {0};
for(int i = 0; i SPI_MASTER_Transfer(&SPI_MASTER_0, (data+i), (rxdata+i), 1);
}
and the same code for the XMC1100 as in the previous example i receive the correct values
e.g.:
sent 1,2 -> received 1,2
sent 3,4 -> received 3,4
have you experienced something like that before, using the XMC1300? Is this really a problem in the app itself or am I just using it wrong?
I think I found the problem, it lies in the communication itself. I tried to connect a XMC1300 and a XMC1100 (XMC2Go) via SPI and it took me over a week to get it to work. There seems to be a problem within the SPI_MASTER app. I used the following code-snippet on the XMC1300 as master:
uint8_t data[2] = {1,2};
uint8_t rxdata[2] = {0};
SPI_MASTER_Transfer(&SPI_MASTER_0, data, rxdata, 2);
On the XMC1100 I use the following code snippet to receive the data:
uint8_t ReadData[2] = {0};
SPI_SLAVE_Receive(&SPI_SLAVE_0,ReadData, 2);
Then I always receive the first sent byte for both received bytes.
e.g.:
sent 1, 2 -> received 1,1
sent 3,4 -> received 3,3
If I now alter the sending code to:
uint8_t data[2] = {1,2};
uint8_t rxdata[2] = {0};
for(int i = 0; i
}
and the same code for the XMC1100 as in the previous example i receive the correct values
e.g.:
sent 1,2 -> received 1,2
sent 3,4 -> received 3,4
have you experienced something like that before, using the XMC1300? Is this really a problem in the app itself or am I just using it wrong?