AnsweredAssumed Answered

STM32L432 NUCLEO: bricked GPIO?

Question asked by Utter.Richard.001 on Nov 4, 2016
Latest reply on Nov 26, 2016 by Utter.Richard.001
Here's a little background. I run Arch Linux, and have been using the arm-none-eabi suite and openocd since early 2013 to program STM32s, first L1s and F4s, and now L4s. Except for vector.o from the appropriate libopencm3 library, all the code was written by me. I'm simply trying to say that I'm not entirely new to STM32s.

Anyway, as of this morning, I'm the unfortunate possessor of, not just one, but two, STM32L432 NUCLEOs that appear to be defunct. Both have exactly the same problem. And they didn't have it yesterday.

Each GPIO port's registers contain the same number: the reset value of the GPIO's mode register. Indeed, all 256 words of the block allocated to each GPIO contains the reset value. For example, GPIOA's block contains 0xabffffff repeated 256 times.

And this appears to be a permanent condition. Nothing I tried affected the problem at all. I even installed the windows ST-LINK Utility in a Vista virtual machine, and had a go with it. The result? "Error occurred during memory writing!" every time I tried to alter one of the affected registers.

As far as I can tell (which isn't very far) the problem appears to affect only the GPIOs. The only other subsystem I use in my "blink the user LED" application is the RCC. It seems to work properly. At least I can flip bits in it. (I have code for other subsystems. But if I can't select alternate functions for GPIO pins, those subsystems won't work.)

Summing up: my code runs just as I would expect. But since the ports I use right now, GPIO and GPIOB, are inoperable, the code doesn't do a thing that's useful. Both of these devices have been flashed dozens of times while I piece together my code. I can hypothesize that some random glitch in my PC or USB hub might cause a device to fail in this bizarre fashion. But two of them? Within hours of each other? And with the same symptoms?

Just to see what might happen, I broke out a brand new L432 NUCLEO, hooked it up to the same USB cable connected to the same USB hub, then used the ST-LINK Utility to copy the code from it. No harm seemed to be done. The third device is still blinking merrily. But I'm not eager to flash it, unless someone can hint as to what bricked the GPIOs in the other two.

Any ideas? For extra credit: can they be unbricked?

Outcomes