Jeremy Morse
2015-09-05 21:47:16 UTC
Hi,
I've applied some maintenance to the power board firmware which I'm
going to document here. There've also been some modifications to the
bootloader too, which I'll put in a different thread.
Two significant fixes are worth being aware of:
* The crash-on-high-usb-load situation that started showing up for
teams has been fixed, by moving the USB handling to be interrupt
triggered. While I was confident I'd already tried this, there must
have been something wrong with my technique then. USB is given a
lower priority interrupt, so the clock / piezo / etc will still
interrupt on top of it (which is what we want).
* The 5V rail is turned on in the bootloader now. This fixes the design
oversight that if we perform a bad flash, the brain board will never
be turned on, so the flash will never be recovered. The LED is on for
a fraction of a second because the application boot code resets GPIO,
but if you force bootloader entry (trigger ext/int user switches) it
stays on. There's the slight risk that someone could drain a battery
this way, but the hw has UVLO anyway.
There are some additional tweaks:
* The startup delay is reduced from 3s to 1s. I don't know why I put it
as three, that was probably while I was working out why the undervolt
measurements kept tripping.
* The firmware revision is emitted on the piezo on startup, in base 4,
using different tones. This replicates a nice feature on the v3 power
boards that did this.
* I've enabled the watchdog for this year. It was disabled due to
bootloader fun, see the other thread.
I'd enjoy some QA, and knowing whether there are any other rough edges
that need smoothing. We currently don't have any robot-library support
for the piezo, incidentally.
--
Thanks,
Jeremy
I've applied some maintenance to the power board firmware which I'm
going to document here. There've also been some modifications to the
bootloader too, which I'll put in a different thread.
Two significant fixes are worth being aware of:
* The crash-on-high-usb-load situation that started showing up for
teams has been fixed, by moving the USB handling to be interrupt
triggered. While I was confident I'd already tried this, there must
have been something wrong with my technique then. USB is given a
lower priority interrupt, so the clock / piezo / etc will still
interrupt on top of it (which is what we want).
* The 5V rail is turned on in the bootloader now. This fixes the design
oversight that if we perform a bad flash, the brain board will never
be turned on, so the flash will never be recovered. The LED is on for
a fraction of a second because the application boot code resets GPIO,
but if you force bootloader entry (trigger ext/int user switches) it
stays on. There's the slight risk that someone could drain a battery
this way, but the hw has UVLO anyway.
There are some additional tweaks:
* The startup delay is reduced from 3s to 1s. I don't know why I put it
as three, that was probably while I was working out why the undervolt
measurements kept tripping.
* The firmware revision is emitted on the piezo on startup, in base 4,
using different tones. This replicates a nice feature on the v3 power
boards that did this.
* I've enabled the watchdog for this year. It was disabled due to
bootloader fun, see the other thread.
I'd enjoy some QA, and knowing whether there are any other rough edges
that need smoothing. We currently don't have any robot-library support
for the piezo, incidentally.
--
Thanks,
Jeremy
--
You received this message because you are subscribed to the Google Groups "Student Robotics Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to srobo-devel+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Student Robotics Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to srobo-devel+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.