The product comparison chart indicates that the UART is not available on the Uno Ethernet board. Inspection of the schematic reveals that it is used only for the programmer interface. I do not see this as a big obstacle - I could certainly remove my serial interface shield whenever I want to use the programmer. Is there anything else that I am missing that would prevent me from using USART 0 in my application?
Hi, welcome to the forum.
I think these are the same:
The pins 0 (RX) and 1 (TX) are to upload a sketch and for the serial monitor. The bootloader checks it to see if a sketch needs to be uploaded. After that you can use it for the serial monitor or anything else.
What do you mean by serial interface shield ? perhaps a RS-232 converter ?
Thank you for your response.
The serial interface in question is RS485.
You can connect the uploader/programmer or the RS485.
It is possible to automatically switch between the two, but that needs extra hardware. When the Arduino is started, every pin is high-impedance input. A pin could be used to turn on the RX/TX path to RS485 in the sketch.
It is also possible to keep pin 1 (TX) connected to both, only the input has to switch between the two.
Or use SoftwareSerial, but that has big consequences for the rest of the sketch. With a combination of hardware and software serial ports, you can exchange any TX and any RX. There is no need to pair the RX and TX to the same port.
Now all you have to do is making a working solution somehow
Peter, I am aware of the possibility of adding hardware to make the two interfaces co-exist. I was just not interested in going there at this point. If down the road I find myself updating the firmware a lot I may change my mind. The whole point of this post was to make sure I was not missing something when I discovered that there was little reason for the comparison chart to write off the serial port entirely as not available. Which only confirms the feeling that I have had from the beginning that the documentation for this product line leaves a lot to be desired.
BTW, I am not big on SoftwareAnything that can be done easily OTS with silicon. I have not seen any specification on the limitations of SoftwareSerial (by its very nature it surely has them) but I doubt seriously that it would work very well at the 750 kbps rate I need it to operate. But I have since realized that I cannot use the UART anyhow - so the original question and answer is irrelevant now.
Moving on... Maxim makes a very nice IC that does everything I want (UART + converter) but has a SPI interface - but, wait, the ethernet controller and SD card have that all tied up. Busted again. So I will have to settle for a less than optimal solution that has an I2C interface, the only thing left for use on the Ethernet card.
Thanks for the support.
Well, you didn't miss something about that serial port. It's there.
The SPI is available.
The ATmega328P has a SPI bus, and pin 4 is the chipselect for the SD card, and pin 10 is the chipselect for the W5100. There are also some level shifters On the Uno Ethernet board to adapt the signals.
If both chipselects are not active, the SPI bus can be used for other SPI chips (with an an other chipselect of course).
I prefer to make the SPI bus idle, before using it. Like this: http://forum.arduino.cc/index.php?topic=281741.msg1980190#msg1980190
Peter, I realize that the SPI bus is shared. But to add another device I assumed that I would have to dig in to the SPI and Ethernet libraries and make modifications to make the new device "play nice" with the existing standard ones (which will be used in my application). I prefer not to get into that since this project is time critical - I am looking to get up and running ASAP - so the least amount of work needed is very important.
The SPI bus a available for other chips. Trust me, it is.
Every library with SPI, every function that uses SPI, every piece of code with SPI should disable the chipselect when the function returns.
Only when you forget to do that for your SPI device, then the SD and the W5100 don't work anymore.