Go Down

Topic: TLC5940 and Ethernet Shield using SPI (Read 2 times) previous topic - next topic

phinsil6

so is it out of the question to choose a different pin than D10 for the ethernet slave select?

SurferTim

Not out of the question. I don't do it, but I have seen posts on the forum where it has been done.

If there is no mention of the BLANK pin, you might try disconnecting that connection from the Arduino. Don't connect the TLC5940 to D10.

Do you know which pin is the SPI slave select for the TLC5940? You will need to know that to initialize the SPI devices.


phinsil6

never mind on changing the ethernet slave select as this seems to be somewhat hardwired through the shield and anything different would have to be connected through wires aka not connecting the shield directly to the top of the arduino.

so i guess i will have to figure out how to change the BLANK pin for use by the TLC5940.  According to the playground reference on arduino.cc:
Quote
BLANK: this marks the end of a PWM cycle in addition to blanking the output. We will reprogram TIMER1 to generate this signal. That will cost us the native PWMs on digital 9 and digital 10. (Tie a real, physical pull-up resistor on this line to keep things blanked while your Arduino boots. Depending on your hardware, it is possible that the TLC5940 would come up in a configuration that would dissipate too much power.)

So theoretically it should be as simple as finding another timer to use on the arduino

pylon

Quote
So theoretically it should be as simple as finding another timer to use on the arduino


And this is not possible as the TLC5940 library needs Timer1 and Timer2 to drive the different pins as well as the millis() function which depends on Timer0 being used for it's functionality. But you can use the TLC5940 and the Ethernet shield together if you use another SS pin for the Ethernet shield (you have to modify the shield for that). The only requirement of the shield is that pin 10 is configured as an output and this is the case with the TLC5940 library.
If you want to have it easier, go with an Arduino Mega2560, you have more timer available and more PWM pins, so pin 10 is free for the Ethernet shield.

phinsil6

Im actually going to be using the mega1280 which as i understand, has timers on 5,6,9,11,46.(and timer0 but im not using that)
But i am already using 46 to drive an infrared led as a universal remote (IRremote Library)
TLC and ethernet share pins, 13,11 and 10.  13 and 11 are ok but 10 needs to be changed for the ethernet, and this should be relatively easily done in the library?  And tlc absolutely needs 9 and 3 as timer outputs.

This summarizes what we have been discussing right?  Is everything correct I hope. I really should stop working on this and study for my microwave active circuits class, haha oh well

Go Up