TEConnectivity/TSD305_Arduino_Library

Write device address into EEPROM

Closed this issue · 1 comments

Please could somebody explain how to change the address of a TSD305-1C55 from the default 0x00 to another value?

I understand the address resides in EEPROM address 0x02.

Page 7 of the datasheet below explains the process fairly vaguely. My take on reading this is that you write a new address by sending the command 0x42 (to select EEPROM address 0x02), then I assume send the new address, e.g. 0x01.

It then says the checksum needs to be recalculated by sending the command 0x90.

It isn't clear to me is whether I have to calculate a checksum in code and write this, or if just by sending 0x90 the sensor does this itself.

What I've been trying is the following, with no success. Any assistance would be appreciated:

Wire.beginTransmission((uint8_t)TSD305_ADDR); //TSD305_ADDR being the 0x00 default
Wire.write(0x42); //select EEPROM address 0x02 for writing
Wire.write(0x01); //write the new address
Wire.write(0x90); //send the command for memory checksum
Wire.endTransmission();
//Then power cycle to see if device has picked up the new address

https://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=TSD305&DocType=Data+Sheet&DocLang=English&DocFormat=pdf&PartCntxt=CAT-TSD0001