Sophie Dexter
/
Just4Trionic
Just4Trionic - CAN and BDM FLASH programmer for Saab cars
interfaces.cpp@5:1775b4b13232, 2015-04-25 (annotated)
- Committer:
- Just4pLeisure
- Date:
- Sat Apr 25 17:07:08 2015 +0000
- Revision:
- 5:1775b4b13232
- Parent:
- 2:bf3a2b29259a
Version 1.5 Is a significant milestone.; ; Supports BDM and CAN read and write of T5.x, T7 and T8 ECU's plus T8 recovery.; A Target Resident Driver for BDM gives a big speed boost.; Supports many alternative replacement FLASH chips for T5.x ECU's;
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 | 5:1775b4b13232 | 21 | // A timer for checking that timeout periods aren't exceeded |
Just4pLeisure | 5:1775b4b13232 | 22 | Timer timeout; |
Just4pLeisure | 1:d5452e398b76 | 23 | |
Just4pLeisure | 1:d5452e398b76 | 24 | // We use CAN on mbed pins 29(CAN_TXD) and 30(CAN_RXD). |
Just4pLeisure | 1:d5452e398b76 | 25 | CAN can(p30, p29); |
Just4pLeisure | 1:d5452e398b76 | 26 | // CAN_RS pin at Philips PCA82C250 can bus controller. |
Just4pLeisure | 1:d5452e398b76 | 27 | // activate transceiver by pulling this pin to GND. |
Just4pLeisure | 1:d5452e398b76 | 28 | // (Rise and fall slope controlled by resistor R_s) |
Just4pLeisure | 1:d5452e398b76 | 29 | // (+5V result in tranceiver standby mode) |
Just4pLeisure | 1:d5452e398b76 | 30 | // For further information see datasheet page 4 |
Just4pLeisure | 1:d5452e398b76 | 31 | DigitalOut can_rs_pin(p28); |
Just4pLeisure | 1:d5452e398b76 | 32 | |
Just4pLeisure | 1:d5452e398b76 | 33 | // Need to create this to be able to read and write files on the mbed 'disk' |
Just4pLeisure | 1:d5452e398b76 | 34 | LocalFileSystem local("local"); |
Just4pLeisure | 1:d5452e398b76 | 35 | |
Just4pLeisure | 1:d5452e398b76 | 36 | |
Just4pLeisure | 1:d5452e398b76 | 37 | DigitalIn PIN_PWR(p19); // power supply |
Just4pLeisure | 1:d5452e398b76 | 38 | DigitalIn PIN_NC(p20); // connection signal |
Just4pLeisure | 1:d5452e398b76 | 39 | DigitalInOut PIN_BERR(p21); // double bus fault input - will be an input when it is working properly |
Just4pLeisure | 1:d5452e398b76 | 40 | DigitalInOut PIN_BKPT(p22); // breakpoint/serial clock |
Just4pLeisure | 1:d5452e398b76 | 41 | DigitalInOut PIN_RESET(p23); // reset signal |
Just4pLeisure | 1:d5452e398b76 | 42 | DigitalInOut PIN_DSI(p24); // data input (to ECU) signal |
Just4pLeisure | 2:bf3a2b29259a | 43 | DigitalIn PIN_DSO(p25); // data output (from ECU) signal |
Just4pLeisure | 1:d5452e398b76 | 44 | DigitalIn PIN_FREEZE(p26); // freeze signal |
Just4pLeisure | 2:bf3a2b29259a | 45 | //DigitalIn PIN_DS(p27); // data strobe signal (not used) |
Just4pLeisure | 1:d5452e398b76 | 46 | |
Just4pLeisure | 1:d5452e398b76 | 47 | //LEDS |
Just4pLeisure | 1:d5452e398b76 | 48 | |
Just4pLeisure | 1:d5452e398b76 | 49 | // Use the LEDs to if anything is happening |
Just4pLeisure | 1:d5452e398b76 | 50 | |
Just4pLeisure | 1:d5452e398b76 | 51 | DigitalOut led1(LED1); // LED1 CAN send |
Just4pLeisure | 1:d5452e398b76 | 52 | DigitalOut led2(LED2); // LED2 CAN receive |
Just4pLeisure | 1:d5452e398b76 | 53 | DigitalOut led3(LED3); // BDM activity LED |
Just4pLeisure | 1:d5452e398b76 | 54 | DigitalOut led4(LED4); // Error LED |
Just4pLeisure | 1:d5452e398b76 | 55 | |
Just4pLeisure | 1:d5452e398b76 | 56 | Ticker ticker; |
Just4pLeisure | 1:d5452e398b76 | 57 | |
Just4pLeisure | 1:d5452e398b76 | 58 | void leds_off() { |
Just4pLeisure | 2:bf3a2b29259a | 59 | CANTXLEDOFF; |
Just4pLeisure | 2:bf3a2b29259a | 60 | CANRXLEDOFF; |
Just4pLeisure | 2:bf3a2b29259a | 61 | ACTIVITYLEDOFF; |
Just4pLeisure | 1:d5452e398b76 | 62 | } |