Go Down

Topic: Fail: 2 RA8875 on an Arduino Yun - SPI problem (Read 2991 times) previous topic - next topic

local_dani_21

Hi

I'm trying to build an installation with seven 5"-TFT's by adafruit (https://www.adafruit.com/products/1680), connected to an Arduino Yun. The TFT's themselves are driven by RA8875 boards (https://www.adafruit.com/products/1590), that are able to talk over SPI to the Arduino.

As long as I only connect 1 RA8875 to the 32u4 of the Arduino Yun, all works well.
As soon as I connect a second RA8875, SPI gets hung up - the displays cannot initialize.

I discussed it quite a while with adafruit's support guy rick under https://forums.adafruit.com/viewtopic.php?f=47&t=60533&start=6.

There we found out, that it is actually possible to drive more than one RA8875 - but only from Arduino UNO (Aka Atmega 328P). With other microprocessors I tried (Arduino Yun (Atmel 32u4), Teensy++ 2.0 (Atmel AT90USB1286), Teensy 3.1 (MK20DX256)), only one RA8875 can be connected.

Now I suspect that the SPI library has something to do with this problem. Has anyone an idea in what way the SPI differs in between these processors?

Thank you very much, Dani

@admins: I opened this post under another board (Displays: http://forum.arduino.cc/index.php?topic=279469.msg1964395#msg1964395). Please erase it on the wrong board. Thank you.

Angelo9999

Hello,

try to add this line:

SPCR |= _BV(MSTR);

after line 77 in Adafruit_RA8875.cpp:

https://github.com/adafruit/Adafruit_RA8875/blob/master/Adafruit_RA8875.cpp#L77

and try again
https://github.com/sngl

local_dani_21

Hi Angelo9999

Thanks for the suggestion. I altered the file and restarted the IDE 1.5.8. But nothing really changed:
Serial Monitor says
Code: [Select]
RA8875 start
RA8875 Not Found!


Shall I remove the line again or keep it in the code since nothing really changed?

Angelo9999

You said that you altered the file and restarted the IDE, but did you upload again the sketch? Sorry for the stupid question but I need to be sure  :)
https://github.com/sngl

local_dani_21

#4
Nov 20, 2014, 11:00 am Last Edit: Nov 20, 2014, 11:14 am by local_dani_21
Yes, I uploaded it again.

Angelo9999

Maybe when you call the begin for the second time it touches the SPI configuration while it is running so it stops working.

I have no more ideas and unfortunately I have not these screen so I can't try anything.
https://github.com/sngl

sonnyyu

Seven 5"-TFT plus seven driver board plus seven power cords and seven spi cables is not easy job just wire up.

Plan B:

http://forum.arduino.cc/index.php?topic=278717.msg1961407#msg1961407

Wrote android app to communicate to Yun via UDP or Websocket. everything on WIFI, no wires.
The display could be at local or even at an other country.






local_dani_21

It's only 7 wires for each display. I think the setup is not that complicated. Funny thing is that the problem can also be found on many other microcontrollers than Arduino Yun like on Arduino Leonardo, Teensy 3.1, Teensy++ 2.0 - but not on Arduino UNO and Arduino MEGA. There is an active discussion about it in the adafruit-forum: https://forums.adafruit.com/viewtopic.php?f=47&t=60533&start=6.
Thank you for your ideas! Dani

sonnyyu


pjrc

Just a quick followup, for anyone who might find this thread by searching.

I've been looking into this problem, since it also happens when using a Teensy board.  The cause appears to be a lack of tri-state by the RA8875 chip on the MISO pin when CS is high.

Details are here:

http://forum.pjrc.com/threads/24668-Teensy-3-*-Text-rendering-issue-with-RA8875-TFT-display?p=58040&viewfull=1#post58040

and also here:

https://forums.adafruit.com/viewtopic.php?f=47&t=60533&p=322091#p322091

If anyone else hits this issue, using a RA8875 with pretty much any other SPI chip, hopefully this will help?

Go Up