Difference between revisions of "Tiny Assembly"

From PaparazziUAV
Jump to navigation Jump to search
(fixed typo, flash bootloader with make upload_bl not bl_upload)
 
(7 intermediate revisions by 4 users not shown)
Line 12: Line 12:
== Tiny13 1.1 Specifics ==
== Tiny13 1.1 Specifics ==


* Place the vertically shorter tantalum chip capacitors near the supply first as you will be able to place the vertically taller with tweezers.
* Place the vertically shorter tantalum chip capacitors (C18 & C21) near the 3V3 LDO first as you will be able to place the vertically taller with tweezers.
* Place the diode next to the large "pulse" inductor before any other backside components'
* Place the diode (U$2) next to the large "pulse" inductor before any other backside components
* Do not expect either of the two LEDs to illuminate.  They are configured via airborne flight code, you may never see or need them.
* Do not expect either of the two LEDs to illuminate.  They are configured via airborne flight code, you may never see or need them.


Line 44: Line 44:
Here are some general current guidelines to aid in initial assembly checks.
Here are some general current guidelines to aid in initial assembly checks.


  Tiny13 w/ fresh, unprogrammed LPC & NO LEA-4P GPS: ~15mAh @ 12.3V (185mWh)
  Tiny13 w/ fresh, unprogrammed LPC & NO LEA-4P GPS: ~15mA @ 12.3V (185mW)
  Tiny13 running target code (not airborne code) & NO LEA-4P GPS: ~25mAh @ 12.3V (310mWh)
  Tiny13 running target code (not airborne code) & NO LEA-4P GPS: ~25mA @ 12.3V (310mW)
  Tiny13 running target code (not airborne code) w/ GPS: ~45mAh @ 12.3V (550mWh)
  Tiny13 running target code (not airborne code) w/ GPS: ~45mA @ 12.3V (550mW)


''The Tiny13 uses a switching supply, realize that you will see varying currents with varied input voltages hence the inclusion of mWh units''
''The Tiny13 uses a switching supply, realize that you will see varying currents with varied input voltages hence the inclusion of mW units''


== Some thoughts about starting up a Tiny ==
== Some thoughts about starting up a Tiny ==
Line 56: Line 56:
* use a microscope or a magnifying glass to check for short circuits
* use a microscope or a magnifying glass to check for short circuits
* use a power supply for first tests, not a battery, limit the current to about 100mA, use a voltage of about 7V
* use a power supply for first tests, not a battery, limit the current to about 100mA, use a voltage of about 7V
* With everything on the board, minus the LPC2148 you should see ~ 580 ohms of resistance on 3V3 rail
* use the on-board supply, do not try to feed voltage from the outside
* use the on-board supply, do not try to feed voltage from the outside
* the 7V should not drop due to current limiting, measure the 5V and the 3.3V supply on the board
* the 7V should not drop due to current limiting, measure the 5V and the 3.3V supply on the board
Line 64: Line 63:
-> check if reset signal can be measured at the LPC reset pin 57
-> check if reset signal can be measured at the LPC reset pin 57
* check the 12MHz at LPC pin 61, XTAL2 (XTAL_out)
* check the 12MHz at LPC pin 61, XTAL2 (XTAL_out)
* connect LPC_TXD_0 and LPC_RXD_0 of Serial1 to the serial port of your PC through a 3.3V-USB-RS232 converter (LPC_TXD_0 - PC_RX, LPC_RX_0 - PC_TX), attach LPC_P0.14 to a buffered PC_RTS or connect to a button
* connect LPC_TXD_0 and LPC_RXD_0 of Serial1 to the serial port of your PC through a 3.3V-USB-RS232 converter (LPC_TXD_0 - PC_RX, LPC_RX_0 - PC_TX), attach LPC_P0.14 (also GPS_RESET if using Tiny V2.x) to a buffered PC_RTS or connect to a button
* run the serial ROM loader lpc21isp to flash USB bootloader with
* run the serial ROM loader lpc21isp to flash USB bootloader with
  make bl_upload
  make upload_bl
* pull the LPC_P0.14 line low if not connected to RTS and then reset the board
* pull the LPC_P0.14 line low (also GPS_RESET with Tiny V2.x) if not connected to RTS and then reset the board
-> check the rx/tx pins for data if flashing does not succeed
-> check the rx/tx pins for data if flashing does not succeed
* deattach the LPC_P0.14, reset the board
* deattach the LPC_P0.14 (and GPS_RESET for Tiny V2.x), reset the board
* the USB bootloader outputs debug information with 115200 8N1 on the serial port
* the USB bootloader outputs debug information with 115200 8N1 on the serial port
-> try the uart_tunnel from arm7/test, logical high and low should be sent from LPC_RXD_0 to LPC_TXD_1 and LPC_RXD_1 to LPC_TXD_0 (at GPS pins)
-> try the uart_tunnel from arm7/test, logical high and low should be sent from LPC_RXD_0 to LPC_TXD_1 and LPC_RXD_1 to LPC_TXD_0 (at GPS pins)
Line 84: Line 83:
* check modem, connect tx, rx, gnd and supply
* check modem, connect tx, rx, gnd and supply
* try to aquire sats outside
* try to aquire sats outside
== Troubleshooting ==
Below are some oddball facts discovered in the process of debugging problems.  These bits of information may cut a few hours off of a bug chasing adventure.
* With everything on the board, minus the LPC2148 you should see ~ 580 ohms of resistance on 3V3 rail
[[Category:Hardware]]

Latest revision as of 00:43, 24 May 2011

General Tips

  • Use a quality pair of tweezers, 0402 components will seem like 1/4W resistors again
  • Liquid Flux and a small brush or even the lead of a 1/4W resistor will turn a small congealed soldering mess into perfection
  • Use optical magnification if you or your eyes need it (it is not necessary however)
  • Use a liquid flux cleaner either spray on or brush on and scrub the board clean. This will a) impress your friends b) reveal potential shorts or lack of solder and c) reduce high resistance electrical paths on the board particularly around the A/D section
  • Print out a customized and enlarged diagram of the PCB you are working on. Pencil in the component designators by hand while using the graphical desktop environment as an aid
  • Print out a Bill of Materials sheet
  • 0402 components, if fallen onto a dirty workbench will be hopelessly lost. Use a clean white blotter or even some sheets of paper.
  • Populate as little parts as necessary for a first power-up test. In most cases it is perfectly OK to place EVERY component minus the LEA-4P GPS module. Doing this allows you to divide and conquer should a problem arise during assembly.

Tiny13 1.1 Specifics

  • Place the vertically shorter tantalum chip capacitors (C18 & C21) near the 3V3 LDO first as you will be able to place the vertically taller with tweezers.
  • Place the diode (U$2) next to the large "pulse" inductor before any other backside components
  • Do not expect either of the two LEDs to illuminate. They are configured via airborne flight code, you may never see or need them.

LEA-4P Mounting

It is advised not to use hot air reflow rework station / solder paste for this assembly as it is quite easy to "blow" solder underneath the LEA-4P causing a short. Instead apply a small amount of solder flux paste and a small tip soldering iron w/ fine solder. This soldering tip should be as large as will allow you to apply solder to the pins. The LEA-4P and surrounding ground planes are excellent heat sinks so the larger tip you can use the easier it will be. Print out the schematic to see the required pin wiring. Solder only the necessary pins, you will realize why if you ever have to remove the LEA-4P module from the PCB. Realize that the footprint is not symmetrical and will only mount one way so you do not have to go crazy making sure you have the black dot facing the right direction.

Solder Paste Usage

Solder paste can easily become your secret weapon against the difficult placing of the fine-pitch components in use in this project. The most crucial parameter you can control is how much solder paste is used. If too much is used (even 1/10 of a gram too much), you will be left removing many solder bridges between pins and pads manually. Alternatively if too little is used you will be left individually soldering pins.

Below is an example of too much

SOLDERPASTE TOOMUCH.jpg

this is the result after reflowing: 5 different solder bridges that must be removed. Sometimes it is as easy as applying a small amount of liquid flux to the area then dragging a hot micro tipped iron between the two pins, drawing the bridge towards the pad. You may also want to try copper braid for wicking the excess solder away. I often find this removes too much solder.

Solderpaste resulttoomuch.jpg

Below is an image where an adequate amount of solder paste was applied.

Solderpaste enough.jpg

The results of the above solder paste.

Solderpaste enough-results.jpg

Expected Current Consumptions

Here are some general current guidelines to aid in initial assembly checks.

Tiny13 w/ fresh, unprogrammed LPC & NO LEA-4P GPS: ~15mA @ 12.3V (185mW)
Tiny13 running target code (not airborne code) & NO LEA-4P GPS: ~25mA @ 12.3V (310mW)
Tiny13 running target code (not airborne code) w/ GPS: ~45mA @ 12.3V (550mW)

The Tiny13 uses a switching supply, realize that you will see varying currents with varied input voltages hence the inclusion of mW units

Some thoughts about starting up a Tiny

  • populate all parts except the LEA-4P for first tests to make them simpler
  • check the polarity of all parts, compare to a picture of a working reference board
  • use a microscope or a magnifying glass to check for short circuits
  • use a power supply for first tests, not a battery, limit the current to about 100mA, use a voltage of about 7V
  • use the on-board supply, do not try to feed voltage from the outside
  • the 7V should not drop due to current limiting, measure the 5V and the 3.3V supply on the board

-> wrong voltages: check the parts around the power supply

  • measure the current, it should be around 50mA at 7V with the LPC running and no code loaded (switching supply: reduces to around 25mA @12V)
  • attach reset, therefore connect LPC_RESET to GND (the board button is NOT reset), current should reduce to 15mA at 7V (10mA @12V)

-> check if reset signal can be measured at the LPC reset pin 57

  • check the 12MHz at LPC pin 61, XTAL2 (XTAL_out)
  • connect LPC_TXD_0 and LPC_RXD_0 of Serial1 to the serial port of your PC through a 3.3V-USB-RS232 converter (LPC_TXD_0 - PC_RX, LPC_RX_0 - PC_TX), attach LPC_P0.14 (also GPS_RESET if using Tiny V2.x) to a buffered PC_RTS or connect to a button
  • run the serial ROM loader lpc21isp to flash USB bootloader with
make upload_bl
  • pull the LPC_P0.14 line low (also GPS_RESET with Tiny V2.x) if not connected to RTS and then reset the board

-> check the rx/tx pins for data if flashing does not succeed

  • deattach the LPC_P0.14 (and GPS_RESET for Tiny V2.x), reset the board
  • the USB bootloader outputs debug information with 115200 8N1 on the serial port

-> try the uart_tunnel from arm7/test, logical high and low should be sent from LPC_RXD_0 to LPC_TXD_1 and LPC_RXD_1 to LPC_TXD_0 (at GPS pins)

  • LPC_P0.23 (USB Vbus) should be low, LPC_USB_CONNECT high

-> check parts around Q1

  • connect USB+ (D+), USB- (D-), LPC_P0.23 (USB Vbus) and GND of Serial2 with your PC, reset the board
  • LPC_P0.23 (USB Vbus) should go high from PC USB, LPC_USB_CONNECT should go low through LPC software
  • the PC will detect a new USB device, check with "dmesg" and "lsusb" - they should both show a USB device with VID/PID 7070:1234

-> if a new USB device is detected but does not accept new address, the USBconnect worked, but not the communication, check USB+ and USB-

  • flash the autopilot with
make [AIRCRAFT] ap.upload
  • check telemetry through serial port, messages should be displayed
  • test A/D converters for supply voltage and IR sensors
  • check modem, connect tx, rx, gnd and supply
  • try to aquire sats outside

Troubleshooting

Below are some oddball facts discovered in the process of debugging problems. These bits of information may cut a few hours off of a bug chasing adventure.

  • With everything on the board, minus the LPC2148 you should see ~ 580 ohms of resistance on 3V3 rail