Orchard EVT1 to DVT1

From Studio Kousagi Wiki
Jump to: navigation, search

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.

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.

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.

added C28B 10uF, 10V X5R

ECO7: Fix DAC0 availability

For unspecified reasons, the documentation claims in 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.

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.

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 :-/


Pending ECOs

These have yet to be implemented on all the new versions of the system.

These ECOs are pending into the DVT1 generation (previous 9 made it into bootcamp EVT1b)

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.

added R18M 0 ohm

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.

ECO12: Identify as LS USB device

Identify the device as LS USB via resistor. This is necessary to make USB/CDP detection work.

Note: this change did not make it into EVT1b for bootcamp boards.

R30B 1.5k, 1% (DNP) P30B 1.5k, 1%

ECO13: Adjust CL to production crystal

Production crystal CL is 12pF, much larger than the EVT1 crystal. Adjust CL accordingly.

Note: this change did not make it into EVT1b for bootcamp boards.

C14M 7.2pF C14M 18pF, 50V NP0, 5%
C15M 7.2pF C15M 18pF, 50V NP0, 5%

ECO14: Adjust CL to production crystal (for BLE)

Same mistake here. Production crystal CL is 9pF.

C10R 7.2pF C10R 12pF, 50V NP0, 5%
C11R 7.2pF C11R 12pF, 50V NP0, 5%