Sophie Dexter
/
Just4Trionic
Just4Trionic - CAN and BDM FLASH programmer for Saab cars
interfaces.cpp@1:d5452e398b76, 2010-09-14 (annotated)
- Committer:
- Just4pLeisure
- Date:
- Tue Sep 14 21:02:04 2010 +0000
- Revision:
- 1:d5452e398b76
- Child:
- 2:bf3a2b29259a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Just4pLeisure | 1:d5452e398b76 | 1 | /******************************************************************************* |
Just4pLeisure | 1:d5452e398b76 | 2 | |
Just4pLeisure | 1:d5452e398b76 | 3 | interfaces.cpp |
Just4pLeisure | 1:d5452e398b76 | 4 | (c) 2010 by Sophie Dexter |
Just4pLeisure | 1:d5452e398b76 | 5 | |
Just4pLeisure | 1:d5452e398b76 | 6 | ******************************************************************************** |
Just4pLeisure | 1:d5452e398b76 | 7 | |
Just4pLeisure | 1:d5452e398b76 | 8 | WARNING: Use at your own risk, sadly this software comes with no guarantees. |
Just4pLeisure | 1:d5452e398b76 | 9 | This software is provided 'free' and in good faith, but the author does not |
Just4pLeisure | 1:d5452e398b76 | 10 | accept liability for any damage arising from its use. |
Just4pLeisure | 1:d5452e398b76 | 11 | |
Just4pLeisure | 1:d5452e398b76 | 12 | *******************************************************************************/ |
Just4pLeisure | 1:d5452e398b76 | 13 | |
Just4pLeisure | 1:d5452e398b76 | 14 | #include "interfaces.h" |
Just4pLeisure | 1:d5452e398b76 | 15 | |
Just4pLeisure | 1:d5452e398b76 | 16 | //Serial pc(USBTX, USBRX); // tx, rx |
Just4pLeisure | 1:d5452e398b76 | 17 | Serial pc(USBTX, USBRX); |
Just4pLeisure | 1:d5452e398b76 | 18 | |
Just4pLeisure | 1:d5452e398b76 | 19 | // A timer for timing how long things take to happen |
Just4pLeisure | 1:d5452e398b76 | 20 | Timer timer; |
Just4pLeisure | 1:d5452e398b76 | 21 | |
Just4pLeisure | 1:d5452e398b76 | 22 | // We use CAN on mbed pins 29(CAN_TXD) and 30(CAN_RXD). |
Just4pLeisure | 1:d5452e398b76 | 23 | CAN can(p30, p29); |
Just4pLeisure | 1:d5452e398b76 | 24 | // CAN_RS pin at Philips PCA82C250 can bus controller. |
Just4pLeisure | 1:d5452e398b76 | 25 | // activate transceiver by pulling this pin to GND. |
Just4pLeisure | 1:d5452e398b76 | 26 | // (Rise and fall slope controlled by resistor R_s) |
Just4pLeisure | 1:d5452e398b76 | 27 | // (+5V result in tranceiver standby mode) |
Just4pLeisure | 1:d5452e398b76 | 28 | // For further information see datasheet page 4 |
Just4pLeisure | 1:d5452e398b76 | 29 | DigitalOut can_rs_pin(p28); |
Just4pLeisure | 1:d5452e398b76 | 30 | |
Just4pLeisure | 1:d5452e398b76 | 31 | // Need to create this to be able to read and write files on the mbed 'disk' |
Just4pLeisure | 1:d5452e398b76 | 32 | LocalFileSystem local("local"); |
Just4pLeisure | 1:d5452e398b76 | 33 | |
Just4pLeisure | 1:d5452e398b76 | 34 | |
Just4pLeisure | 1:d5452e398b76 | 35 | DigitalIn PIN_PWR(p19); // power supply |
Just4pLeisure | 1:d5452e398b76 | 36 | DigitalIn PIN_NC(p20); // connection signal |
Just4pLeisure | 1:d5452e398b76 | 37 | DigitalInOut PIN_BERR(p21); // double bus fault input - will be an input when it is working properly |
Just4pLeisure | 1:d5452e398b76 | 38 | DigitalInOut PIN_BKPT(p22); // breakpoint/serial clock |
Just4pLeisure | 1:d5452e398b76 | 39 | DigitalInOut PIN_RESET(p23); // reset signal |
Just4pLeisure | 1:d5452e398b76 | 40 | DigitalInOut PIN_DSI(p24); // data input (to ECU) signal |
Just4pLeisure | 1:d5452e398b76 | 41 | DigitalIn PIN_DS(p25); // data strobe signal (not used) |
Just4pLeisure | 1:d5452e398b76 | 42 | DigitalIn PIN_FREEZE(p26); // freeze signal |
Just4pLeisure | 1:d5452e398b76 | 43 | DigitalIn PIN_DSO(p27); // data output (from ECU) signal |
Just4pLeisure | 1:d5452e398b76 | 44 | |
Just4pLeisure | 1:d5452e398b76 | 45 | //LEDS |
Just4pLeisure | 1:d5452e398b76 | 46 | |
Just4pLeisure | 1:d5452e398b76 | 47 | // Use the LEDs to if anything is happening |
Just4pLeisure | 1:d5452e398b76 | 48 | |
Just4pLeisure | 1:d5452e398b76 | 49 | DigitalOut led1(LED1); // LED1 CAN send |
Just4pLeisure | 1:d5452e398b76 | 50 | DigitalOut led2(LED2); // LED2 CAN receive |
Just4pLeisure | 1:d5452e398b76 | 51 | DigitalOut led3(LED3); // BDM activity LED |
Just4pLeisure | 1:d5452e398b76 | 52 | DigitalOut led4(LED4); // Error LED |
Just4pLeisure | 1:d5452e398b76 | 53 | |
Just4pLeisure | 1:d5452e398b76 | 54 | Ticker ticker; |
Just4pLeisure | 1:d5452e398b76 | 55 | |
Just4pLeisure | 1:d5452e398b76 | 56 | void leds_off() { |
Just4pLeisure | 1:d5452e398b76 | 57 | led1 = 0; |
Just4pLeisure | 1:d5452e398b76 | 58 | led2 = 0; |
Just4pLeisure | 1:d5452e398b76 | 59 | led3 = 0; |
Just4pLeisure | 1:d5452e398b76 | 60 | } |