lin to uja1023

Committer:
metronix
Date:
Wed Apr 27 07:15:24 2022 +0000
Revision:
0:0af5ede0c252
LINSMSG;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
metronix 0:0af5ede0c252 1
metronix 0:0af5ede0c252 2 #include "mbed.h"
metronix 0:0af5ede0c252 3
metronix 0:0af5ede0c252 4 Serial LIN(PB_7, PB_6);//lin tx and rx
metronix 0:0af5ede0c252 5
metronix 0:0af5ede0c252 6 uint8_t assignID[]={0x55,0x3C, 0x60, 0x06, 0xB1, 0x11, 0x00, 0x00, 0x00, 0x04, 0xD2};// Assign frameID, default NAD used and // ID(PxReq) = 04,ID(PxResp) = 05
metronix 0:0af5ede0c252 7 uint8_t postiveResp[]={ 0x55,0x7D, 0x60, 0x01, 0xF1, 0xFF, 0xF, 0xFF, 0xFF, 0xFF, 0xAC};// Positive response
metronix 0:0af5ede0c252 8 uint8_t Datadump1[]={ 0x55, 0x3C, 0x60, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC};//Datadump1, 8 × LSE
metronix 0:0af5ede0c252 9 uint8_t readdump1[]={0x55, 0x7D, 0x60, 0x06, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xA4};
metronix 0:0af5ede0c252 10 uint8_t Datadump2[]={ 0x55, 0x3C, 0x60, 0x06, 0xB4, 0x40, 0x00, 0x00, 0x00, 0x00, 0xA4};//Datadump1, 8 × LSE
metronix 0:0af5ede0c252 11 uint8_t readdump2[]={0x55,0x7D, 0x60,0x06, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x64};
metronix 0:0af5ede0c252 12 uint8_t Datadump3[]={0x55, 0x3C, 0x60, 0x04, 0xB4, 0x80, 0x55, 0x10, 0xFF, 0xFF, 0x01};//Datadump1, 8 × LSE
metronix 0:0af5ede0c252 13 uint8_t readConfSended[]={0x55,0x7D, 0x60,0x04 , 0xF4, 0x80, 0x55, 0x10, 0xFF, 0xFF, 0xC0};
metronix 0:0af5ede0c252 14 uint8_t readByID[]={ 0x55, 0x3C, 0x60, 0x06, 0xB2, 0x00, 0x11, 0x00, 0x00, 0x00, 0xD5};
metronix 0:0af5ede0c252 15 uint8_t postiveResp2[]={ 0x55,0x7D, 0x60, 0x06, 0xF2, 0x11, 0x00, 0x00, 0x00, 0x02, 0x93};
metronix 0:0af5ede0c252 16 uint8_t enbConf[]={0x55,0xC4, 0x01, 0x80, 0x7E};
metronix 0:0af5ede0c252 17 uint8_t enbP1[] = {0x55,0xC4,0x02 ,0x80, 0x7D};
metronix 0:0af5ede0c252 18
metronix 0:0af5ede0c252 19 void sendDataToSlave();
metronix 0:0af5ede0c252 20 void writeData(uint8_t data[],int length);
metronix 0:0af5ede0c252 21
metronix 0:0af5ede0c252 22 int main()
metronix 0:0af5ede0c252 23 {
metronix 0:0af5ede0c252 24 DigitalOut NSLP(PB_5); //activate lin transiver
metronix 0:0af5ede0c252 25 DigitalIn BP(PB_4,PullUp);
metronix 0:0af5ede0c252 26 DigitalOut led(PC_13); //fadding led
metronix 0:0af5ede0c252 27 int count =0;
metronix 0:0af5ede0c252 28 LIN.baud(19200);
metronix 0:0af5ede0c252 29 LIN.format (8,SerialBase::None,1);
metronix 0:0af5ede0c252 30 led=1;
metronix 0:0af5ede0c252 31 wait(10);
metronix 0:0af5ede0c252 32 while (true) {
metronix 0:0af5ede0c252 33
metronix 0:0af5ede0c252 34 if(count == 0){
metronix 0:0af5ede0c252 35 led=1;
metronix 0:0af5ede0c252 36 NSLP=1;
metronix 0:0af5ede0c252 37 sendDataToSlave();
metronix 0:0af5ede0c252 38 NSLP=0;
metronix 0:0af5ede0c252 39 count=1;
metronix 0:0af5ede0c252 40 }
metronix 0:0af5ede0c252 41
metronix 0:0af5ede0c252 42 }
metronix 0:0af5ede0c252 43 }
metronix 0:0af5ede0c252 44 void sendDataToSlave(){
metronix 0:0af5ede0c252 45 writeData(assignID,sizeof(assignID));
metronix 0:0af5ede0c252 46 writeData(postiveResp,sizeof(postiveResp));
metronix 0:0af5ede0c252 47 writeData(Datadump1,sizeof(Datadump1));
metronix 0:0af5ede0c252 48 writeData(readdump1,sizeof(readdump1));
metronix 0:0af5ede0c252 49 writeData(Datadump2,sizeof(Datadump2));
metronix 0:0af5ede0c252 50 writeData(readdump2,sizeof(readdump2));
metronix 0:0af5ede0c252 51 writeData(Datadump3,sizeof(Datadump3));
metronix 0:0af5ede0c252 52 writeData(readConfSended,sizeof(readConfSended));
metronix 0:0af5ede0c252 53 writeData(readByID,sizeof(readConfSended));
metronix 0:0af5ede0c252 54 writeData(postiveResp2,sizeof(postiveResp2));
metronix 0:0af5ede0c252 55 writeData(enbConf,sizeof(enbConf));
metronix 0:0af5ede0c252 56 writeData(enbP1,sizeof(enbP1));
metronix 0:0af5ede0c252 57 }
metronix 0:0af5ede0c252 58
metronix 0:0af5ede0c252 59 void writeData(uint8_t data[],int length){
metronix 0:0af5ede0c252 60 wait_ms(150);//sync break
metronix 0:0af5ede0c252 61 LIN.putc(0x80);// sync delimeter
metronix 0:0af5ede0c252 62 for(int i =0;i<length;i++){
metronix 0:0af5ede0c252 63 LIN.putc(data[i]);
metronix 0:0af5ede0c252 64 }
metronix 0:0af5ede0c252 65 wait_ms(150);//sync break
metronix 0:0af5ede0c252 66 }