Difference between revisions of "Orchard EVT1 to DVT1"

From Studio Kousagi Wiki
Jump to: navigation, search
(ECO13: Adjust CL to production crystal)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
=ECO1: Fix Microphone mirroring=
+
=ECOs done up to EVT1b=
 +
==ECO1: Fix Microphone mirroring==
  
 
Microphone schematic symbol was mirrored. No BOM change, board layout change only.
 
Microphone schematic symbol was mirrored. No BOM change, board layout change only.
  
=ECO2: Make battery easier and safer to solder=
+
==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.
 
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=
+
==ECO3: Fix gas gauge topology==
  
 
Gas gauge goes between the charger and battery, not between the charger and the system. Oops!
 
Gas gauge goes between the charger and battery, not between the charger and the system. Oops!
  
=ECO4: Add isolation resistors on SPI to OLED=
+
==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.
 
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.
Line 26: Line 27:
 
|}
 
|}
  
=ECO5: Add USB adapter presence logic=
+
==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).
 
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).
  
Line 56: Line 57:
 
|}
 
|}
  
=ECO6: Improve boost ripple performance=
+
==ECO6: Improve boost ripple performance==
 
Add another 10uF cap on VUSB to improve ripple performance during boost mode.
 
Add another 10uF cap on VUSB to improve ripple performance during boost mode.
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
Line 67: Line 68:
 
|}
 
|}
  
=ECO7: Fix DAC0 availability=
+
==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.  
 
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.  
  
Line 83: Line 84:
 
|}
 
|}
  
=ECO8: Add low-speed USB option=
+
==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."
 
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."
  
Line 101: Line 102:
 
|}
 
|}
  
=ECO9: Swap GPIO_INT to an interrupt-capable bank=
+
==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.  
 
Oh hey! GPIOB isn't capable of servicing interrupts. The only one that can't do that.  
  
Line 110: Line 111:
 
<hr>
 
<hr>
 
=Pending ECOs=
 
=Pending ECOs=
 +
These have yet to be implemented on all the new versions of the system.
  
=ECO10: Allow fast TX filling of radio packets=
+
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.
 
Connect DIO1 to Touch3 via 0-ohm resistor to allow for interrupt-driven refilling of TX fifos on the radios.
  
Line 123: Line 127:
 
|}
 
|}
  
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.
 +
 
 +
==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.
 +
 
 +
{| class="wikitable sortable"
 +
|-
 +
! scope="col" | EVT
 +
! scope="col" | DVT
 +
! scope="col" | Notes
 +
|-
 +
| 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.
 +
 
 +
{| class="wikitable sortable"
 +
|-
 +
! scope="col" | EVT
 +
! scope="col" | DVT
 +
! scope="col" | Notes
 +
|-
 +
| 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.  
  
=ECO11: Increase ground plane clearance around captouch wires=
+
{| class="wikitable sortable"
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.
+
|-
 +
! scope="col" | EVT
 +
! scope="col" | DVT
 +
! scope="col" | Notes
 +
|-
 +
| C10R 7.2pF || C10R 12pF, 50V NP0, 5% ||
 +
|-
 +
| C11R 7.2pF || C11R 12pF, 50V NP0, 5% ||
 +
|}

Latest revision as of 07:52, 6 June 2015

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.

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.

EVT DVT Notes
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.

EVT DVT Notes
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.

EVT DVT Notes
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.

EVT DVT Notes
C10R 7.2pF C10R 12pF, 50V NP0, 5%
C11R 7.2pF C11R 12pF, 50V NP0, 5%