bentprong / ocp_xavier

Xavier NIC3 Test & Monitoring Board firmware.
Apache License 2.0
0 stars 0 forks source link

Power up instability #10

Open bentprong opened 1 year ago

bentprong commented 1 year ago

Reported by Rick B.

  1. Software bootup stability issue. Intermittent bootup requires cycling ‘RESET’ button to get stable connection a. May power on with no MCU heartbeat LED b. May power on with MCU LED always on c. May power on with fast blink LED then turn off d. May power on with fast blink then turns to slow blink i. Xavier remains stable once connection is established ii. Power reset may not return to operation and requires further resets
bentprong commented 1 year ago

Item #1 has nothing to do with the firmware. It is either an issue with your board or Windows/USB. The correct LED behavior (your 1d) on a fresh start (power on, no connection in TeraTerm and TermTerm not running) is fast blink until a connection is established, then slow blink. I have noticed that TeraTerm seems to “hold on” to a connection after the board has dropped it, which may explain what you are seeing. Regardless, the typical user will plug the board in and power it up then start TeraTerm. That use case is stable.

bentprong commented 1 year ago

Tested with Windows laptop (normally use Mac). Observed same behavior as Rick B. Solution: start with USB cable to Xavier unplugged AND board powered off AND TeraTerm not running or visible. Plug cable in (should not hear the Windows connection sounds), power on Xavier and make sure that the LED is blinking fast, finally start TeraTerm and select COM4 (or last COM port). If the LED is not fast blinking then the board is not ready for a connection.

bentprong commented 1 year ago

The problem is also happening on TTF. It appears that Windows is "setting up" the USB device and that the OCP firmware is stuck in the CDC driver. The OCP firmware thinks there is a connection but there isn't yet. Good catch, @rickbrandwein

bentprong commented 1 year ago

Modified USBCore.cpp library file and added logic to OCP firmware to close then reopen serial connection. Currently testing on Windows and Mac. Will update the README with instructions when testing is complete. NOTE: "CDC" and "USBCore" are pretty much one in the same.

bentprong commented 1 year ago

Resolved in v1.0.7.

bentprong commented 1 year ago

Re-tested after fixing this in TTF and it is still inconsistent in Xavier. Updated README accordingly.