Orchard EVT1 to DVT1
Contents
- 1 ECOs done up to EVT1b
- 1.1 ECO1: Fix Microphone mirroring
- 1.2 ECO2: Make battery easier and safer to solder
- 1.3 ECO3: Fix gas gauge topology
- 1.4 ECO4: Add isolation resistors on SPI to OLED
- 1.5 ECO5: Add USB adapter presence logic
- 1.6 ECO6: Improve boost ripple performance
- 1.7 ECO7: Fix DAC0 availability
- 1.8 ECO8: Add low-speed USB option
- 1.9 ECO9: Swap GPIO_INT to an interrupt-capable bank
- 2 Pending ECOs
ECOs done up to EVT1b
ECO1: Fix Microphone mirroring
Microphone schematic symbol was mirrored. No BOM change, board layout change only.
ECO2: Make battery easier and safer to solder
Space battery terminals wider, increase pad size, and add solder mask openings around the battery tabs. This makes it less likely to short wires together during a botched soldering operation.
ECO3: Fix gas gauge topology
Gas gauge goes between the charger and battery, not between the charger and the system. Oops!
ECO4: Add isolation resistors on SPI to OLED
For independent I2C operation of the OLED and complete dedication of the SPI bus to BLE, isolation resistors are needed on SPI1_SCK and SPI1_MOSI to the OLED display.
EVT | DVT | Notes |
---|---|---|
added | R19D 0 ohm | |
added | R20D 0 ohm |
ECO5: Add USB adapter presence logic
There is no reliable way to detect the presence of a USB power source due to the VUSB boost mode supply of the BQ24260 (observing VUSB isn't helpful because BQ24260 supplies it when the USB power is disconnected).
Add provisions for a 10k ohm pull-up resistor to USB_P and a 100k pull-down resistor to USB_N. Wire USBD_P and USBD_N via 0-ohm jumpers to spare ADC inputs on the Kinetis-W.
Expected behavior when using pull-ups and pull-downs:
- When no USB host is attached, USB_P goes to 3.0V
- When a USB host is attached, USB_P is pulled down to somewhere around 2.2V
- When a USB dedicated charger is atached, USB_P is pulled down to around 2.8V
- The only failure case is if the charging source does nothing with the D+/D- lines, but that is out of spec.
A software loop will need to sample USB_P and USB_N pins and toggle between boost and charge mode.
Initially, however, the pull-ups and pull-downs are not installed. The preferred embodiment is to use the internal pullup/pulldown networks on the GPIOs on the Kinetis-W to apply test currents to the D+/D- pins when detection needs to be run. This allows the native D+/D- detection from the charger IC to run without interference of static pullup/downs. The hard-wired resistors are kept in place just in case the tolerance of the internal Kinetis-W resistors are too large and/or the algorithm to do port detection turns out to be too difficult to implement.
EVT | DVT | Notes |
---|---|---|
added | R29B 10k, 1% (DNP) | pull-up on USB_P |
added | R31B 100k, 1% (DNP) | pull-down on USB_N |
added | R17M 0 ohm | allow spare ADC input (ADC0_SE12) on Kinetis-W to sample USB_P |
added | R16M 0 ohm | allow spare ADC input (ADC0_SE9) on Kinetis-W to sample USB_N |
ECO6: Improve boost ripple performance
Add another 10uF cap on VUSB to improve ripple performance during boost mode.
EVT | DVT | Notes |
---|---|---|
added | C28B 10uF, 10V X5R |
ECO7: Fix DAC0 availability
For unspecified reasons, the documentation claims in 4.3.2.3 that PTE30 is the preferred pin for controlling RF reset. However, this is also the only pin to which DAC0 is available. Seems like a waste to not make DAC0 available.
We're assuming this is just a brainfart on the reference firmware developer, and if we make our own stack we should be able to pick any pin we want. So, move RF_RESET to a more generic pin, but allow DAC0 to be wired over via 0-ohm jumper option in case there is an actual reason this pin is needed to be RF_RESET.
EVT | DVT | Notes |
---|---|---|
added | R14M 0 ohm | |
added | R15M 0 ohm (DNP) | unpopulated option to bring PTE30 to RESET |
ECO8: Add low-speed USB option
Since we've wired USB D+/D- pins to the microcontroller, might as well add the pull-up resistor that allows detection of the microcontroller as a low speed device, in case someone wants to use the port to write a bit-bang USB implementation. "It's just one resistor, anyways."
...and while we're at it, adding a possible pull-down slot on D+. Mostly for symmetry purposes, but also I suppose it could allow the microcontroller to act as a host in a pinch.
Note: The Voh(min) spec for USB low speed is 2.8V with a 15k pull-down load. VDD for the MCU is 3.0V +/-2%, so we're pretty marginal on meeting that spec. It'll probably work, but this should be considered a hack and not something you want to use in mission-critical situations.
EVT | DVT | Notes |
---|---|---|
added | R30B 1.5k 1% (DNP) | |
added | R32B DNP | just in case |
ECO9: Swap GPIO_INT to an interrupt-capable bank
Oh hey! GPIOB isn't capable of servicing interrupts. The only one that can't do that.
Remap pins so we can actually trigger an interrupt from the GPIO expander :-/
Swap GPIO_INT and OLED_DC.
Pending ECOs
These have yet to be implemented on all the new versions of the system.
ECO10: Allow fast TX filling of radio packets
Connect DIO1 to Touch3 via 0-ohm resistor to allow for interrupt-driven refilling of TX fifos on the radios.
EVT | DVT | Notes |
---|---|---|
added | R18M 0 ohm |
Note: performed on DVT1 orchard, but not on DVT1 bootcamp.
ECO11: Increase ground plane clearance around captouch wires
On bootcmap EVT1b, the ground plane crowds the captouch wires going to the FPC connector. Strip the ground plane out from that region to prevent interference and improve sensitivity.