Difference between revisions of "Lisa"
Line 39: | Line 39: | ||
* <strike>Battery voltage measurement</strike> | * <strike>Battery voltage measurement</strike> | ||
* make sure overo console serial port is usable when FT2232 is not powered. protect overo console with a gate to allow to connect something to it when FTDI is not powered/used. | * make sure overo console serial port is usable when FT2232 is not powered. protect overo console with a gate to allow to connect something to it when FTDI is not powered/used. | ||
* add led to show FT2232 is powered, since power is from USB | * <strike>add led to show FT2232 is powered, since power is from USB</strike> | ||
* pressure sensor filter and hookup for both sensors | * pressure sensor filter and hookup for both sensors | ||
* Bring remaining GPIO of STM to a connector | * Bring remaining GPIO of STM to a connector |
Revision as of 14:31, 23 January 2010
Lisa ( the Lost Illusions Serendipitous Autopilot) is a STM32/Overo board designed to run Paparazzi
TODO
List of files currently being edited:
- Lisa Schematic (gany, Sat Jan 23 12:34pm PDT)
Antoine:
check JTAG on STM32work with Piotr on connecting the missing wires on the STM- I2C on STM32: (software )
- SPI on STM32: (software )
USB for gumstix : does 5V need to be switchable ? (to allow reset from the gumstix)Check's from sheet 5- Pressure sensor instruction to gany (redo airspeed computation), so he can finish the schematic for that (or finish it directly in the schematic) ( in progress )
- Check the
routing rulesbelow and add if planned on routing a certain part in a specific way - write layout ideas
Esden:
STM32 spelling and connection checkFix STM32 footprint pad sizesRouting rules that have to be followedAdd specification of external pressure sensor ADCReplace all 0603 parts with versions from pretty-eagle-libReplace all molex connectors with versions from pretty-eagle-libAdd a LED shift register(STP08CP05 should do the job)Order a STP08CP05 sample- Test the STP08CP05 on a breadboard
- howto for STM32 gcc gdb toolchain (blinking LED or similar) (started writing one on openhardwarewiki.org)
Gany:
Check FT2232 footprint hw/lbr/booz.lbr qfn-64 size & pinout-> Changed pad size from 0.6 x 0.4 to 0.75 x 0.25 and moved pin1 indicator outside the chip.
Make sure STM32 can interrupt overo-> connected omap pin 176 with stm pin 11 via level shifter
ADC ref and analog supply voltage on STMBattery voltage measurement- make sure overo console serial port is usable when FT2232 is not powered. protect overo console with a gate to allow to connect something to it when FTDI is not powered/used.
add led to show FT2232 is powered, since power is from USB- pressure sensor filter and hookup for both sensors
- Bring remaining GPIO of STM to a connector
- Place components
- Route board
- Send for production 4pcb/pcbcard(china)/sunstone
Hardware
The hardware is still in development. The current CAD files are maintained in savannah svn in the paparazzi4/trunk/hw/lisa directory. Software development is done on a Overo/Summit + Olimex STM32-H103 dev board
STM32
STM32-F103 ( esden can you write the name of the actual chip we're using ? 64 pins the most ram and flash ? )
pinout
SPI1 : IMU/baro high speed sensor communications, STM32 is master
pin 21 (SCK), 22(MISO), 23(MOSI) accel/gyro 16bitsADC 9(DRDY) 8(SS) mag 24(DRDY) 10(SS) 25(RESET) eeprom 53(SS) baro 40(DRDY) 39(SS)
SPI2 : overo, STM is slave
pin 33 (SS), 34(SCK), 35(MISO), 36(MOSI), 11(interrupt for OMAP)
I2C1 : motorcontroller
pin 58(SCL), 59(SDA)
I2C2 : extension
pin 29(SCL), 30(SDA)
UART1 : GPS or IMUxsense
pin 42(TX), 43(RX)
UART2 : Modem
pin 16(TX) ,17(RX)
UART3 : RC24
pin 51(TX), 52(RX)
CAN : motor controller
pin 42(TX), 43(RX)
SERVO_out: driving 3 servos
37(TIM3CH1), 38(TIM3CH2), 26(TIM3CH3)
RC_in: analog RC
27(TIM3H4)
JTAG : flash and debug
46(TMS), 49(TCK), 50(TDI), 55(TDO), 56(TRST), 7(RESET)
ADCs : 1 for battery 2/3 for extansion
LED :
3(LED_CLK), 4(LED_DATA)
POWER_SWITCHES: This is switched supply, used for example to switch on and off a video transmitter or some LEDS for night flight
Can be removed for lack of place
Pressure sensors
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed.
Absolute Pressure
The proposed absolute pressure sensor is the freescale MPXh6115 The following plot displays the output of the sensor versus altitude
Differential Pressure
The proposed differential sensor is the MPXV5004DP
Because of high resolution requirements in the pressure sensor circuit there is an external ADC needed with the following features:
- 16bit resolution minimum, 20bit would be awesome
- Two channels (multiplexed or not) each at least 100Hz sampling rate
- I2C or SPI interface (I2C preferred)
- We used the MAX11040 as ADC for a meteo payload, some (SPI) code is there. It samples 4 channels simultaneously in 24 bits (less "in real"). Slowest conversion speed is 250.1 samples/second.
FT2232
This chip is used for JTAG on STM32 and SERIAL/USB convertion on overo console
datasheet: URL
mini module used for dev : URL
schematics used is from the minimodule as ft2232 and minimodule schematics are not coherent ( regarding pullups of the eeprom)
Software
STM32 drivers for paparazzi
LED : done
SYS_TIME : done
UART : done without DMA, so got datalink, telemetry and RC24 working
I2C : not done, needed for motor controllers
SPI : not done, needed for IMU ( big works as we share with mag and baro) and for overo
CAN : not don, needed for motor controller and CSC
PPMin: not done, needed for analog radio control and windvane
PPMout: not done, needed for servos ( 3 servos ? )
STM32 toolchain
You can use the summon-arm-toolchain script to build the required toolchain. For the default values of the Paparazzi Makefile to work, you should set
PREFIX=/opt/stm32/toolchain/arm-elf
and
LIBSTM32_EN=1
Open Embedded
Open Embedded is the linux distribution used on the overo. You can follow the instructions on gumstix's website to build a complete cross development environment. Paparazzi's Makefile will default to look for it in /overo-oe
Status
Routing Notes
- Motor controller connectors in 4 corners of the board if possible
- If we are running out of space on the board we have several options:
- Only one connector for the motors
- Two connectors for the motors on each side of the board
- Two connectors for the motors on each side of the board where each connector can accomodate two motor controller wires (4 pins each connector)
- Servo connector: used to drive up to 3 small servos, for example on a small biplan, or a gimbal for a camera, can also have switched 5V to switch on and OFF the video transmitter
Routing Rules
- 6mil traces/spacings for signals
- 12mil traces/spacings for power traces (this is min value, otherwise as wide as possible or even planes if possible)
- 6mil layout grid
- Layer stacking:
- Top: Signal + Ground plane
- Route2: Ground plane(s) (Separate analogue and digital ground)
- Route15: Power plane(s)
- Bottom: Signal + Ground plane
- 0.4mm vias with 0.1mm restring