Missing port pins on the DUE pinout diagram?


I’d like to be able to write a 32bit variable directly to a port register on the DUE. I’m doing something similar on the UNO at the moment but with 8 bits. I’ve done some research and believe this is possible on the DUE (I don’t own one yet so I can’t try it out).

There’s a pinout diagram of the DUE board here: http://forum.arduino.cc/index.php?topic=132130.0

My question; why do there appear to be pins missing from the port assignments on the diagram?

For example; for Port C, C.0 is missing (but A.0 and D.0 exist).

I’ve downloaded the microcontroller datasheet and on p18 table 4.3 the SAM3X4/8E is listed as having a PA0.

Section 31 of the datasheet (Parallel Input/Output Controller (PIO)) has a table that lists the PIO Lines per PIO according to Version. The 144 pin SAM3X should have 32 PIOB lines but I only count 13 B.x port pins on the diagram.

I’m obviously missing something…


I believe not all pins in any one port are brought out to a Due connector to let you do that.


I was hoping to get 4 bytes out with one write statement. A shame. The omission seems to be random too. From PortA; A5, PortC; C0, C10, C11, C20, C27, C31. What was the thinking behind that?

Would it be a simple case of wiring up a pin on the CPU to get at the port output?

PortA seems only to be missing A5 as it's listed as having 30 lines out on the spec sheet.


The Taijuino board, a DUE compatible board, has much more broken out pins than the original DUE:


What sort of application are you trying to make by outputting a 32_bit variable on 32 pins ?

Thanks for the heads up on the Taijiuino Due. Interestingly they don't break out A5 either.

I'm driving LED matrix displays that use the HUB75 interface. The more data lines I can hook up, the more panels I can drive in parallel.


It seems that this project uses far less output pins :

Yes, I saw that. It does look cool. He's driving all his panels in series - as I am at the moment on my UNO.

I took a look at the code and there are some serious hacks going on to pull every last ounce of performance from the chip and hardware on it. Quite clever but it ties you to one platform.
Trying (as much as possible) to keep everytning platform indipendent. Admittedly I'm not succeeding. I'd be a lot closer to that goal if I could create a solution that uses parallel operation instead of serial. It was just an idea that got me thinking about 32bit GPIO. Many of the STM boards I've looked at have 16bit Port registers. Haven't seen one with 32bit yet. Perhaps there's an easy way of writing to two hardware ports. There could well be. I might pop the question on the STM forum.

I think you have everything you need with a DUE to realize a comparable project :slight_smile: .