• 0
Sign in to follow this  
Diagonal

Analog Shield base layout file for DipTrace

Question

I am working slowly on my project.  I thought I might post what could be a useful DipTrace base layout for a shield to use with the Analog Shield on an Arduino Uno . It could even be useful to somebody making an unrelated shield for Uno by stripping out the P1, P2, and P3 headers on the left and adjusting the board outline. The component designations and pin numbers match those of the Analog Shield.

My board may end up bigger than the Analog shield, but I have put a board outline into the file that matches the 2.1 by 3.1 inch dimensions of the Analog Shield. 

I think it is correct, but I have not had a board built. I made a copy of  my in-progress layout, and stripped out the components. 

The Analog Shield uses Uno D2,D3, D5, D6 (P7-3,4,6,7) for its data to or from the Uno.

As an aside, on my specific project, I have a Sainsmart 2x16 LCD Keypad-Shield that will go atop my custom shield. As far as I can tell, that uses Arduino signals D4,D5,D6,D7,D8,D9 and AD0.  The Uno uses D13 for its LED, but could be shared in a pinch. That would seem to leave me with Uno D0, D1, D11, D12 to use for my own use by my shield. I expect to only need 1 or 2 Uno output port pins to my exclusive use. Any opinions as to which is/are most likely to be available, even if I upgrade to a different display shield in the future?

Attached PDF is expanded scale. Bluish-gray is bottom silk. Green is top silk. Blue lines are ratlines for some of the grounds, and may be ignored.

1. I hope the DipTrace layout is useful to somebody.

2. Suggestions are encouraged.

Analog_Shield_Base.dip

img_ Analog_Shield_Base.pdf

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

To follow up, I have tried each Uno port output pin D0...D13. Only D1 works to output my signal. Many make the display stop working or even hang the development environment.  I fee confident that D1 will not interfere with the Analog Shield, since the schematic shows P7-2 on the Analog shield is not connected.

I am going to try an Adafruit 1947 touchscreen display. That will free up pins. I hope it doesn't take a lot of memory for the library or accessing code.

Also, on the 2-row connectors that mate with  the Analog Shield, I have gone to a better pattern. If anybody is interested, I would be glad to post that.

Share this post


Link to post
Share on other sites
  • 0

Hi Diagonal,

I'm sorry for not responding to this earlier, so I'll see if I can help shed some light on things. Out of the available pins, it makes sense that the D1 pin on the Uno is the only pin that would work since it is the output pin for the UART communication port that the board uses to communicate with your computer via a USB cable. The D0 is the receiving half of that UART port so if you tried to make it an output, you would end up experiencing trouble over ever getting the program to load onto your board.

The Analog Shield actually does use SPI; the schematic from TI doesn't show that very clearly, but both the ADC and DAC on the shield use SPI to communicate their data with the Uno. Consequently, this means that D11 and D12 are both used by MOSI and MISO, and D13 used by the SPI clock. It then also uses the D2, D3, D5, and D6 as you noticed.

It does sound like the dot-matrix display with the touch screen buttons would use a lot of the memory, but I don't know how much it uses for certain.

I know Digilent's uC32 has both more memory and I/O than the Arduino Uno (and has the same pin layout so you shouldn't need to change around any of the libraries including the Analog Shield library), but the tricky bit would be getting access to those 'inside' I/O pins (26 - 41 on the silk screen) with shields. I suppose you could always solder in your extra connections with a protoshield, but personal experience tells me that this definitely easier said than done.

Let me know if you have any more questions!

Thanks,
JColvin

 

Share this post


Link to post
Share on other sites
  • 0
On 2/18/2016 at 2:20 PM, JColvin said:

The Analog Shield actually does use SPI; the schematic from TI doesn't show that very clearly, but both the ADC and DAC on the shield use SPI to communicate their data with the Uno. Consequently, this means that D11 and D12 are both used by MOSI and MISO, and D13 used by the SPI clock. It then also uses the D2, D3, D5, and D6 as you noticed.

I am trying that dot matrix display now/ Results seem promising. It uses SPI too. I do all of my access to the Analog Shield in a timer1-driven interrupt routine. I have been doing the display interface in the non-interrupt code. That display access is slow, but slow is acceptable....

 

 I found the interrupt and non-interrupt use of SPI could interfere with each other.  I used the Arduino SPI.usingInterrupt() function as described in    https://www.arduino.cc/en/Reference/SPIusingInterrupt  and even better in http://dorkbotpdx.org/blog/paul/spi_transactions_in_arduino 

I made further progress.   

#include <SPI.h>

....

SPI.usingInterrupt(255);

This cured the display anomalies. The 255 is special in that you don't have to figure out what they want as an interrupt number.

Edited by Diagonal

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this