[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