[time-nuts] Z3810AS PPS to a Raspberry Pi
attila at kinali.ch
Tue Mar 24 15:42:47 EDT 2015
On Mon, 23 Mar 2015 19:25:33 -0700
Chris Albertson <albertson.chris at gmail.com> wrote:
> I'm surprised to can't
> get the Pi to interrupt on the raising edge of the PPS and that you had to
> make the pulse longer.
That's because the rpi does not have GPIO's like other SoC or uC.
When i wrote that it's a graphics card with attached usb controller,
i wasn't joking. The processor on the rpi was originally designed
as a test system to verify the graphics core on real workload.
To interface it to the outside world, they decided to use USB.
For unknown reasons they decided to use an arm9 core with a bit
of glue logic as USB controller (the best guess i've heard sofar
is, that they would have had to pay for a real USB controller,
while an old arm core like that costs (almost) nothing if you
buy a big/new one anyways).
This is the reason why there are no I2C or SPI interfaces,
and everything needs to be bitbanged (aka, you write single
bits to outputs in software and poll whether anything changes
on the inputs). Or that the "USB controller" generates an
interrupt every 125us that _must_ be handled imediatly
(the arm core has to set up the next USB microframe otherwise
USB stops working).
That is also the reason why Eben Upton got it so cheaply. Apparently,
broadcom had produced quite a few of those (couple thousand, don't ask
me why). And there was no risk that anyone would buy those (for above
reasons, they were never intended to be sold). Also, the mask set
(the most expensive part of chip production) was already there and
amortized by other means, so producing more wouldn't cost much either.
< _av500_> phd is easy
< _av500_> getting dsl is hard
More information about the time-nuts