The 5 VIAs just above the USB port

The M7 (and the H7 apparently) has 5 VIAs above the USB port labeled GND, 3.3v, RST, SWD, and SWC. How are they used? Presumably GND is just an obvious ground connection. Is the 3.3v via an output “rail” to power other devices, or is it a VIN of some sort (and if so, is it really 3.3, unlike the VIN pin which is documented as 3.6V-5V?)? How does the RST VIA (“reset” I presume) work? Is it just redundant with the highest numbered pin, connecting to ground to reset the board, and otherwise not useful? What are the SWD and SWC VIAs for? I’m not familiar with that terminology and Google didn’t reveal much at a quick glance (“serial wire debug”?).

Also, if this is all documented somewhere in a manual, I’m sorry I haven’t found it yet. I’ve perused the MicroPython docs and their short sections on individual hardware (PyBoard and M7 respectively) but I’m not aware of a thorough hardware guide for the M7. Have I completely overlooked an obvious resource I should be utilizing?

Thanks.

Hi, that’s the SWD programmer connection. Basically, all ARM boards can be JTAGed via the SWD (serial wire debugger). It allows for quick firmware reloading and programming along with lockstep debugging of code. So, if you want to edit the OpenMV Cam firmware in C and such that’s the way to do it. You can hook the camera up to eclipse with the proper tooling and step through lines of code and instantly reload the firmware. For the H7 we also added the SWO pin which allows printf() output too over that pin if USB is not stable.

The VIN input is just to take voltage in from another 5V-7V voltage source like a battery or something like that. On the H7 we use a switching regulator making the input range a lot wider. On the M7 we have a linear reg which means the rang eis limited by thermal dissipation from the regulator.

The 3.3V pin allows you to get access to the voltage rail of the OpenMV Cam to power an external device. The way we’ve set all this up is very similar to the Arduino. That device has a VIN pin and a regulator 3.3V output / input.

Sorry, I didn’t quite understand. You said the “VIN” input takes voltage from another source. Was that in reference to the 3.3v VIA I asked about or were you describing the VIN pin below P7? I was asking about the VIAs on the board. Or were you saying the VIN pin below P7 and the 3.3v VIA are directly connected and consequently electrically redundant?

The 3.3V pin on the programming connector and the I/O pins are the same 3.3V input or output. I.e. you can power the board via 3.3v from them if no external power is applied. If external power is applied they supply 3.3v. Never supply power to the 3.3v pins and power the OpenMV Cam at the same time.

The VIN pin is ORed with the 5v USB to supply power to the 3.3v regulator. As a long as you supply more than 3.3v to the VIN pin the camera will turn on.

Can you supply power to VIN and have the USB connected (and supplying power) at the same time ?

Thanks

Yes, we have diode or logic. The system will draw power from whatever has a higher voltage.

Great, Thanks.

@kwagyeman can we use SWD, SWC and SWO pins as GPIO?

Yes, if you really need to.

Thank you for your answer. I could not find any reference to it on the page (Quick reference for the openmvcam — MicroPython 1.15 documentation)? Could you please tell me how to do it in OpenMV IDE with microPython?

This is general STM question, please Google the issue, read the datasheet or ask on ST’s forums. We don’t have any support for re-configuring these pins, but it should be possible. Also please don’t post the same question from multiple accounts.