[Cryptech Tech] FMC Arbiter
Fredrik Thulin
fredrik at thulin.net
Thu Sep 10 12:28:30 UTC 2015
On Monday, September 07, 2015 05:20:30 PM Pavel Shatov wrote:
...
> > I have four dev boards here, and am troubleshooting some FMC issues. The
> > worst issue seems to be that my Novena seems to have a defective
> > (intermittently) pin somewhere.
>
> That's bad news :( As far as I understand, there are two possible places
> to look for this defect: expansion connector and FPGA. While pins of the
> expansion connector can be inspected with a magnifying glass, solder
> balls under FPGA can only be checked to some extent with an x-ray
> machine. Can we try it on another Novena?
I have good news, and bad news. The good news are that it is working now - the
bad news is I don't know what fixed it.
FMC_A17 goes to a via on the novena motherboard, just a couple of millimeters
from the connector. The via is through hole, so I was able to conveniently
measure it with my scope on the other side. Turned out, instead of 3V3 sgnal I
was seeing about 0.5V signal there.
The dev-bridges (this problem was present with more than one of the dev-bridge
boards) unconnected to the Novena did not have this issue. So it seems
something in the connector or on the Novena side of the connector was pulling
the signal down - most of the time.
For about the first minute after booting my Novena, the fmc-test program
worked fine a lot of times, and then stopped working.
Then, all of a sudden, the problem just stopped. I've been testing with all my
four boards all day and they work fine now. On one of the boards, the problem
might have been a sloppy drill hit in the via of FMC_A17 closest to the ARM. I
soldered a test pin into the via and that seems like that made that board work
(but I don't know).
I've added UART support to the fmc-test version at
git at git.cryptech.is.:user/ft/stm32-dev-bridge. Made it much easier to debug my
issues, and to see the effects of nudging the dev-bridge board around in real
time.
I also implemented a small program called short-test (available in the same
git repo) that was really helpful in finding solder bridges - which were
present in three out of four of the boards :(. I think my solder paste is well
beyond it's best-used-before date. What it does is it makes all FMC pins
except one at a time a pull-down input pin. It then drives the one output pin
high and checks all the input to make sure they are still low.
...
> > For failures on the data test, I seem to get test_fpga_data_bus diff()
> > values like 0x5997e383 (and not the same/bitwise similar value all the
> > time) which doesn't make any sense at all to me. I need to experiment
> > more there.
> Can you give more details? Does this test fail on all four boards? How
> often does it fail compared to address bus test? Did you notice any
> specific patterns?
I think the data problems were caused by incorrect address bits.
Regarding the HSE oscillator:
On Monday, September 07, 2015 03:25:18 PM Fredrik Thulin wrote:
> On Friday, September 04, 2015 09:14:49 PM you wrote:
...
> > offered in the same package. Your schematics shows, that you intended to
> > use quartz resonator, while the datasheet is about quartz oscillator.
>
> Thanks for the explanation. I had not encountered these quartz oscillators
> before. I'll let you decide whether the issue is with the PCB or with the
> type of oscillator mounted on your dev-bridge board ;)
You were absolutely right. My (text file) notes show that I intended to order
Farnell number 2467848 (a 3.2x2.5mm resonating oscillator), but I think what
happened was I realized the footprint on the PCB was for a 5x3.2mm oscillator
so I instead ordered Farnell 2101316 which, indeed, is a quartz resonator.
I'm ordering some Farnell 2467813 oscillators instead to fix the four dev-
bridges.
/Fredrik
More information about the Tech
mailing list