- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I want to design a tool to update tle9853 use the chip's fastlin bsl boot
I use another tle9853 board send uart data via lin,the passphrase frame is
FF 4C 49 4E 50 41 53 C8
FF 50 48 52 41 53 56 D5
then I send get nac frame:
01 90 91
but I got no answer, the target chip is erased by jlink,
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @zhanghongjian,
Thanks for confirming the solution:
1) Resultant passphrase after adding a checksum should be:
Passphrase Frame #1:
FF 4C 49 4E 50 41 53 37
Passphrase Frame #2:
FF 50 48 52 41 53 45 3B
2) Checksum can be calculated by above piece of code or the LIN Checksum Calculation and Verification Tool.
Thank you
Best Regards
Raj Chaudhari
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @zhanghongjian,
For the TLE9853 the passphrase should be as follows:
Additionally, please ensure the following points:
- Host is running with the correct baudrate that is 115.2kBaud
- Signal integrity on the LIN line is good
Please refer to the TLE985x Firmware User Manual for additional information.
Thank you
Best Regards
Raj Chaudhari
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your reply
I have a byte mistake for the unlock sequence, But after I fixed it, there seems not work either:
Passphrase Frame #1:
FF 4C 49 4E 50 41 53 C8
Passphrase Frame #2:
FF 50 48 52 41 53 45 C4
Because my slave device is erased by jlink, so I sended the NAD 0xFF, that is the first byte of the frame #1 and frame #2
The last byte of the #1 and #2 frame is checksum, the checksum code I wrote is as follows:
uint8_t CalculateCheckSum(uint8_t * data, uint8_t len)
{
uint16_t checksum = 0;
uint8_t loop = 0u;
for(loop=0; loop<len; loop++)
{
checksum += data[loop];
if (checksum >= 0x100u)
{
checksum -= 0xffu;
}
}
return (uint8_t)checksum;
}
the boaudrat I had confired is 115200bps
The lin connection is the host lin port direct connected to slave port both on TLE9853, the line is very close, the signal should be OK
By the way, the slave chip is erased, I think the slave chip is always waited for unlock frame no matter the NAC, so I didn't reset the slave when I tried the unlock action.
because the unlock frame didn't response, so I tried the get nac frame to confirm that the chip is in BSL mode:
the frame is:
01 90 91
01 is the length , 90 is the getnac code
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
the problem is solved
I didn't fill right checksum in the last byte, because I didn't undstand the firmware handbook
The checksum should inverted at last.
uint8_t CalculateCheckSum(uint8_t * data, uint8_t len)
{
uint16_t checksum = 0;
uint8_t loop = 0u;
for(loop=0; loop<len; loop++)
{
checksum += data[loop];
if (checksum >= 0x100u)
{
checksum -= 0xffu;
}
}
return (~(uint8_t)checksum);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @zhanghongjian,
Thanks for confirming the solution:
1) Resultant passphrase after adding a checksum should be:
Passphrase Frame #1:
FF 4C 49 4E 50 41 53 37
Passphrase Frame #2:
FF 50 48 52 41 53 45 3B
2) Checksum can be calculated by above piece of code or the LIN Checksum Calculation and Verification Tool.
Thank you
Best Regards
Raj Chaudhari