Missing RAM Pins

I think the bigger problem is A5. With A6, its a pain, but you could always solder a thin wire to the chip and run that wire out to a pin header glued to the side of the communication header. It's not an ideal solution, but I have done this before only with the Mega1280 to get access to one of the Timer inputs.
With A5, there is no way around it. It is shorted out to the NRD pin which means, unless there is a way to disable the NRD pin, you can't actually use the SMC controller as two of its output signals would short out.

A6 is nc on PC27, so yes you could run a wire.

NRD is available on PA29 which they seem to be using for a CS for an SD card.

A5 is on PC26, which is a PWM or another SPI slave select, but as you say it's shorted to PA29(NRD). What possible reason could there be for that?

But these two pins aren't used for any other SMC function so as long as you disable both PC26 and PA29 from being used by other things it should be OK wouldn't it?

Either way it's obvious that external memory was not a priority in the design.


Rob

I thought the SMC uses both at once to access an SRAM chip. The NRD pin is connected to the SRAMs read enable pin, and A5 is an address pin. What if you need to read from address 16 for example. Read enable would be low (n meaning it is reversed logic), and A5 would be high. This would mean the SMC controller has essentially just shorted the chip out.
It isn't a simple case of always having A5 low either. What happens when you try and write to the SRAM. Read enable goes high, and again you will have just shorted the chip out.

Unless of course it is possible to set PC26 as an input when you are using the SMC. If that is the case then it won't be a problem. I haven't studied the datasheet in detail yet - I am waiting until I have a Due (which the arduino store hasn't shipped yet! :().

You're right, when using the SMC you need both PC26 and PA29 as they both have functions with the SMC.

As they are shorted together you are screwed.

set PC26 as an input when you are using the SMC.

Doesn't help I think, you'll lose A5 if you do that.

No I think the Due cannot use external memory, if so that's a major shortcoming IMO.

The connection of those two pins make no sense as far as I can see, it's just possible that the PCB doesn't actually do that and the schematic is wrong. I think Massimo said the other day that the MACB connector is not on the PCB, not just DNP but not even allowed for, and yet it's on the schematic. So one has to wonder about the accuracy of the schematic.

It's 2AM here but tomorrow I may grab the Eagle files and have a look at PC26 and PA29.


Rob

Unfortunately they are connected in the eagle file.

It would be possible to disconnect them as the trace joining the two is accessible on the bottom of the board, however you would still be left having to run a wire to bring the NRD pin out.

So really, unless you can set the A5 pin to be an input, and then use the external memory with structs which contain a maximum of 32bytes, and store those structs in the memory aligned at 128byte boundaries, then sadly the external memory capability is not possible.
That right there severely cripples the Due's capability and the number of possible uses for it.

Graynomad:
I would also vote for a format that doesn't use 100% of the edge real estate for the backplane, there's hardly anywhere to put your own connectors.

@Graynomad:
What do you mean by "100% of the edge for the backplane" -- the double-row header socket at the right edge? But if so, isn't that part of the standard Mega format -- and thus all corresponding shields, for those who want to use them?

What I'm saying is that there's no room left for connectors on my shield should I want to make one. For example maybe I want to make a shield with 4 or 8 serial ports all using DB(DE)-9 sockets. Where do I put them?

Granted that's hypothetical and nobody else is complaining :slight_smile:


Rob

With the Due you can put them at the USB connector end now that they have switched to uUSB :stuck_out_tongue:

now that they have switched to uUSB

At last. Yes you now have about 15% of the edge to use.


Rob

Use SMD pin headers on the side of the shield facing the Arduino board and use SMD DB9 sockets on the other side. E.g. Harting makes SMD DB9 headers.

True, if you use SMD connectors you have all the edge to work with as long as you're happy to have the board at the top of a stack.


Rob

I hate to bump a thread, but does the team have any comments on this? I do understand that mega compatibility > RAM/ethernet support, but for Arduino users who need the extra memory, is the only solution for the foreseeable future (6+ months) to either a) roll your own board or b) use the Atmel evaluation kit?

is the only solution

I think so. Officially, none of the Arduino platforms has ever supported add-on RAM (the add-on boards for the MEGA are all from third parties...)

Officially, none of the Arduino platforms has ever supported add-on RAM (the add-on boards for the MEGA are all from third parties...)

At least it was possible with the Mega, the Due doesn't bring out one of the address lines (A6?) so you're screwed.


Rob

So I've been looking into the SMC as well for an LCD and for what I can gather, since I don't use the ADDRESS pins for address, it seems I could still use the SMC to write to my LCD. It's using 8-bits. I do need ONE address line to tell it which memory internally to work with. Although I am not 100% sure. Still porting code from a Mega2560 project.

I think you'll be right there, the SMC has almost all the pins brought out for 8-bit access it's just that one address line so should be right.

If you do this let us know how it goes.

Of course one might wonder why you need to use the SMC for an LCD, LCDs are normally as slow as a wet week so memory-mapping one wouldn't help I think.


Rob

Looks like a good opportunity for a third party vendor to create a board using the Due's chip, but wired up for the hardcore extreme user. Rather than cloning the Due, it'd be an innovative evolution.

Looks like a good opportunity for a third party vendor to create a board using the Due's chip, but wired up for the hardcore extreme user. Rather than cloning the Due, it'd be an innovative evolution.

I actually did just that when they first announced the Due, had the PCB laid out and everything. But I used the 3U because that's what they said they were using. Then they changed to a 3X and I didn't have the energy to re do it :slight_smile:

I brought out ALL the signals (IIRC) with a form factor that allowed a lot of the board edge for user connectors and various modes that allowed addressing on the backplane etc. It also used the great power control ability the SAM has to shut down the board and save power. Plus it could control about 6A of external power.

Here's a render of the finished PCB

So yes, I think there is an opportunity for a bright young lad to make a "pro" version.


Rob

Rob, that is not only beautiful but impressive as it gets.

Thanks, it was pretty packed, 2.2" sq, 4 layers with almost as many components on the other side IIRC.

Shame to wast all that time, maybe I should re-jig it to use the 3X...I feel exhausted just thinking about it :slight_smile:


Rob