Difference between revisions of "Tiny v1.1"

From PaparazziUAV
Jump to navigation Jump to search
Line 25: Line 25:
The schematics are available from the [http://cvs.savannah.nongnu.org/viewcvs/paparazzi3/hw/controller/?root=paparazzi CVS repository].
The schematics are available from the [http://cvs.savannah.nongnu.org/viewcvs/paparazzi3/hw/controller/?root=paparazzi CVS repository].
<br>
<br>
[[Image:TINY_1.3_MCU_300PX.jpg]]
[[Image:TINY_1.3_MCU_300PX.jpg]]
[[Image:TINY_1.3_MCU_BOTTOM_300PX.jpg]]
[[Image:TINY_1.3_MCU_BOTTOM_300PX.jpg]]

Revision as of 16:59, 5 January 2007

The Tiny autopilot was designed with an end user application in mind.

Features

  • Single LPC2148 MCU
  • 8 Analog input channels 0V - 3.3V
  • 1 3.3V TTL UART (5V tolerant)
  • 7 PWM outputs
  • 1 R/C receiver PWM frame input
  • 1 SPI bus
  • 1 I2C bus
  • 1 USB (client)
  • Integrated GPS receiver and patch antenna (4Hz update)
  • 5V/2A switching power supply & 3.3V linear regulator
  • 2 LEDs (status display)
  • 1 button (initiate launch)
  • 25 grams
  • 63 x 35mm (smaller then a business card)

The Tiny autopilot uses a single Philips LPC2148 ARM7 based microcontroller. The ARM7 is a low-power 32-bit RISC processor core and the Philips LPC2148 has 512KB on-chip Flash ROM, 40KB RAM and can be clocked at 60MHz.

Although critical control code such as the R/C interface and servo output are well segregated in Paparazzi software and well protected from interference from flaws in the stability/navigation/comm/payload code, great care must be taken when experimenting with new software as some errors can cause a the processor to halt or stall for extended periods causing total loss of control. The dual processor Classix addresses this risk by runnning critical code on a separate independent processor.

The schematics are available from the CVS repository.

TINY 1.3 MCU 300PX.jpg TINY 1.3 MCU BOTTOM 300PX.jpg

Architecture

Tiny v099 Architecture.gif

Pinout

(Tiny13 v1.1)

Tiny13 v1 1 pinout.gif

Wire colors:

  • USB- : white
  • USB+ : green
  • LPC_SSEL : orange

SERIAL 1

1 GND self explanatory
2 3.3V self explanatory
3 SDA0 OD OUTPUT, INPUT - I2C0 data input/output
4 SCL0 OD OUTPUT, INPUT - I2C0 clock input/output
5 P0.14 INPUT - In-Circuit Serial Programming (ISP) enable - LOW on this pin during boot up to enable
6 RESET INPUT - External Reset input - A LOW on this pin performs a hardware reset
7 RXD_0 INPUT - UART0 Serial Input (used by ISP Serial Bootloader) (5V TOLERANT)
8 TXD_0 OUTPUT - UART0 Serial Output (used by ISP Serial Bootloader) (5V TOLERANT)

SERIAL 2

1 GND self explanatory
2 3.3V self explanatory
3 SCK INPUT, OUTPUT - Serial clock for SPI0. SPI clock output from master or input to slave
4 MISO INPUT, OUTPUT - Master In Slave OUT for SPI0. Data input to SPI master or data output from SPI slave
5 MOSI INPUT, OUTPUT - Master Out Slave In for SPI0. Data output from SPI master or data input to SPI slave
6 SSEL INPUT - Slave Select for SSP. Selects the SSP interface as a slave (SSEL1)
7 INT INPUT - External interrupt 2 input (EINT2)
8 USB+ INPUT, OUTPUT - USB bidirectional D+ line
9 USB- INPUT, OUTPUT - USB bidirectional D- line
10 P0.23 INPUT - Indicates the presence of USB bus power (VBUS) (5V TOLERANT)

RC

1 GND common ground
2 5V POWER_OUTPUT - 5V Rail from Tiny
3 PPM_IN INPUT - PPM Stream from RC Receiver (5V TOLERANT)
4 NC no connection
5 NC no connection

ANALOG

1 GND
2 3.3V
3 ADC_0
4 ADC_1
5 ADC_2
6 ADC_3
7 ADC_4
8 ADC_5
9 ADC_6
10 ADC_7

P0.14 - Holding this pin low for at least 3mS after a RESET (or power up) instructs the controller to enter programming mode.

For reference, Matthew Currie is assembling his Tiny(s) with WS Deans Micro 2R connectors for power as they are a commonly available R/C connector and are of high quality and durability. They do not have a positive lock mechanism but insert under a lot of pressure. They do not require any special crimping tools and withstand up to 10A.

Wsdm3007.png

Bill of Materials (BOM)

Please note that there are differences between 0.9, 0.99, and 1.1. Choose the version that matches your hardware.

Tiny 1.1 BOM

1.1_bom.zip

Tiny 0.99 BOM

Qty Value Device Parts Manufacturer PN distr PN
7 - 53047-03 CAMERA, RC_RX, S0, S1, S3, S4, S5 Molex 53047-0310 DK WM1732-ND
1 - 53047-04 VIDEO_TX Molex 53047-0410 DK WM1733-ND
1 - 53047-08 SERIAL_1 Molex 53047-0810 DK WM1737-ND
2 - 53047-10 ANALOG, SERIAL_2 Molex 53047-1010 DK WM1739-ND
1 FUTABA_BEND FUTABA_BEND CON_ESC - - -
2 LEDCHIP LED0805 LED1, LED2 Kingbright APT2012EC MO 604-APT2012EC
1 B3S B3S SW1 OMRON ELECTRONICS B3S-1002 RS 183-717
1 0.47uH L-EUL2012C L2 WURTH ELEKTRONIK 74479032 RS 308-8564
1 15uH WE_PD L1 Pulse P1168.153T MO 673-P1168.153T
2 33R R-EU_R1005 R9, R10 Yageo RC0402JR-0733L DK 311-33JRCT-ND
1 150R R-EU_R1005 R12 Yageo RC0402JR-07150L DK 311-150JRCT-ND
3 1K R-EU_R1005 R2, R3, R8 Yageo RC0402JR-071KL DK 311-1.0KJRCT-ND
1 1.5K R-EU_R1005 R11 Yageo RC0402JR-071K5L DK 311-1.5KJRCT-ND
2 3.3K R-EU_R1005 R6, R15 Yageo RC0402JR-073K3L DK 311-3.3KJRCT-ND
1 4.7K R-EU_R1005 R1 Yageo RC0402JR-074K7L DK 311-4.7KJRCT-ND
7 10K R-EU_R1005 R4, R5, R13, R14, R16, R17, R18 Yageo RC0402JR-0710KL DK 311-10KJRCT-ND
2 12K R-EU_R1005 R103, R105 Yageo RC0402JR-0712KL DK 311-12KJRCT-ND
1 15K R-EU_R1005 R7 Yageo RC0402JR-0715KL DK 311-15KJRCT-ND
2 56K R-EU_R1005 R102, R104 Yageo RC0402JR-0756KL DK 311-56KJRCT-ND
1 100K R-EU_R1005 R101 Yageo RC0402JR-07100KL DK 311-100KJRCT-ND
3 18pF C-EUC0402K C3, C7, C10 TDK C1005C0G1H180J DK 445-1238-1-ND
2 22pF C-EUC0402K C8_1, C9_1 Yageo CC0402JRNPO9BN220 DK 311-1018-1-ND
1 100pF C-EUC0402K C103 Kemet C0402C101J3GACTU DK 399-1022-1-ND
1 220pF C-EUC0402K C102 Kemet C0402C221K5RACTU DK 399-1030-1-ND
1 220pF/50V C-EUC1206K C4 Yageo CC1206KRX7R9BB221 DK 311-1164-1-ND
1 1nF C-EUC0402K C104 Kemet C0402C102K3RACTU DK 399-1031-1-ND
1 3.3nF C-EUC0402K C101 Kemet C0402C332K5RACTU DK 399-3070-1-ND
1 22nF/50V C-EUC1206K C6 Yageo CC1206KRX7R9BB222 DK 311-1176-1-ND
8 100nF C-EUC0402K C1_1, C2, C3_1, C4_1, C5_1, C6_1, C7_1, C106 Kemet C0402C104K8PACTU DK 99-3027-1-ND
3 100nF C-EUC0603 C8, C9, C21 Kemet C0603C104J4RACTU DK 399-1097-1-ND
1 10uF CPOL-EUA/3216-18R C18, C105 Kemet T491A106M010AS DK 399-1564-1-ND MO-80-T491A106K010
1 22uF CPOL-EUB/3528-21R C20 Kemet B45196H1226M209 DK 495-2185-1-ND
1 47uF/16V CPOL-EUD/7343-31R C5 Kemet B45197A3476K409 DK 495-1544-1-ND
1 330uF/10V CPOL-EUD/7343-31R C1 Kemet B45197A2337K509 DK 495-1536-1-ND
1 0.2F J1ROUND C77 Panasonic - ECG EEC-EN0F204J1 DK P11070CT-ND
1 AD8552RU AD8552RU IC2 Analog Devices Inc AD8552ARU DK AD8552ARU-ND
1 BAS70 BAS70 D1 Micro Commercial Co. BAS40-TP DK BAS40TPMSCT-ND
1 STPS2L STPS2L D2 STMicroelectronics STPS2L30A DK 497-3759-1-ND
1 CD4015B CD4015B IC1 Texas Instruments CD4015BPWR DK 296-14090-1-ND
1 12MHz CRYSTAL_CTS Q1 CTS-Frequency Controls 405C35B12M00000 DK CTX639CT-ND
1 DDTA143 MUN2111T1 T1 Diodes Inc DDTA143ZCA-7 DK DDTA143ZCADICT-ND
1 L5973D L5973D REG1 STMicroelectronics L5973D013TR DK 497-3638-1-ND
1 REG1117 REG1117 REG2 National Semiconductor LM1117MP-3.3 DK LM1117MP-3.3CT-ND
1 LEA-4P LEA-4P GPS Microblox LEA-4P-0-000-0 -
1 GPS_ANT_13 GPS_ANT_13 ANTENNA Sangshin KSA-ST1580MS13 -
1 LPC2148 LPC2148 MCU Philips LPC2148FBD64-S DK 568-1765-ND

DK = digikey

MO = mouser

RS = radiospares

Programming

The Philips LPC21xx series ARM7 microcontrollers include hardware ISP (InCircuit Serial Programming) and can initially programmed through its serial interface UART0. For convenience sake, we load a USB Bootloader onto the Tiny via the built in serial bootloader. This allows us to upload new code / flight plans quickly and conveniently while freeing up the Serial UART0 for a radio modem.

Installing the USB Bootloader

If you were supplied with a Tiny Autopilot it may have already had the second bootloader installed, please check with your supplier. If so skip this section.

You will need to convert the PC's RS232 Serial with voltage levels of +/-13V to 3.3V (or 5V) TTL in order to communicate directly with the device. This can be accomplished in multiple ways. The easiest and most convenient method is to purchase or build a USB -> Serial 3.3V adapter similar to this one TTL-232R-3V3 Here's a few other examples: [1] [2] [3] [4]

Make up a wiring harness similar to the following. You may vary the details however this is a working solution:

TINY RXD0 <-- PC SERIAL TX (5V or 3.3V)
TINY TXD0 --> PC SERIAL RX (5V or 3.3V)
TINY RESET --> optional wired to ground through a pushbutton so you can reset
TINY P0.14 (SERIAL1-5) --> attach to ground, or wire through a pushbutton to ground
TINY GND --> PC SERIAL ADAPTER GND

Once this wiring is ready you will be ready to send the USB Bootloader to the Tiny from the PC.

To prepare the Tiny to accept programming over its serial port you must have pin P0.14 LOW for at least 3mS while it is powering up or resetting. While it is still powered up it is ready to accept code over serial. Proceed now to instructions to load it via software.

In Linux

From your paparazzi3 folder in linux, type:

make upload_bl PROC=GENERIC

This will begin compiling your USB Bootloader and then attempt to transfer it to the Autopilot. This will also assume you are using a USB -> Serial adapter for the connection. It uses /dev/ttyUSB0 by default. If your adapter is mapped to a different tty, you will need to modify the Makefile accordingly.

In Windows

If for some reason you need to program your Tiny's USB Bootloader in windows start grabbing the following utility from Philips Philips Flash Utility. You will then prepare the Tiny and boot it into the ISP bootloader as mentioned above but program it with this utility. You will need to copy your compiled bl.hex file from Linux of course.