cancel
Showing results for 
Search instead for 
Did you mean: 

Can electrical issues with ST-Link\PCB force VREFBUF ENVR and HIZ value to change?

KHarb.1
Senior
I have a variety behavior that didn't occur on the last version of my board. I'm trying to figure out if the board has an intrinsic electrical fault, or if incompatible programming is making the pins fight with themselves to generate what I'm seeing.  The board gets up and goes and I can read registers, so I'm hoping there are diagnostic steps I can take to figure out how to correct what I'm seeing below
 
1. When I program the board with ST-Link, VREFBUF HIZ=1, which is incorrect and makes VREF+ pin not work.  I’ve been pushing ahead by setting HIZ=0 via ST-Link after programming to get the right behavior.  I didn't have to do this on previous boards...so I'm wondering if I introduced an electrical failure that makes the pin go Hi-Z in a fault mode or some such...?
 
2. After programming, I can pull power to the board (ST_Link still engaged) and wait 5 secs for the caps to power out, and reconnect, VREFBUF shows HIZ=0 and VREF+ pin works.  Why the change in behavior?
 
3. Attempting to adjust the HIZ value at the end of the init code does not appear to do anything. It seems like it has to be getting overridden?
 
4. Connecting ST-Link to the board in working mode halts the CPU. Executing a core reset or CPU resume in this mode restarts the unit with ENVR=0 and HIZ=1...but in this state I can't change the ENVR and HIZ value to make things work, so I can't debug on a board unless I just programmed it. Why would it enter this state?
 
 
 
 
 
1 ACCEPTED SOLUTION

Accepted Solutions
KHarb.1
Senior

This ended up being an observation of a floating Boot0 pin doing strange things.  The observed values weren't being changed as code ran, they were never initialized by code in the first place.

View solution in original post

1 REPLY 1
KHarb.1
Senior

This ended up being an observation of a floating Boot0 pin doing strange things.  The observed values weren't being changed as code ran, they were never initialized by code in the first place.