This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMP144: First TMP144 in 12 daisy chain skipped in Address Assignment

Part Number: TMP144

Hi team,

Could you please help me to debug TMP144 x12 daisy chain?

I performed ”Global Initialization and Address Assignment Sequence” at power on.
(1)send : 0x55 , 0x8C recv : 0x55 , 0x8C // initialization 

(2)send : 0x55 , 0x90 recv : 0x9B // address assignment

The returned value was h'B and only 11 of them were assigned. The first TMP144 was somehow skipped.

Could you please help me address this issue?

I can share the source code with you offline if needed.

Best Regards,

Itoh

  • Hi Itoh-san,

    The first device is address 0. The address of the last device is 11 (0xB.) You have one more device than the address of the last device.

    thanks,

    ren

  • Hi team,

    In the 7.3.2 Global Initialization and Address Assignment Sequence description was written.

    "After all devices on the chain have received
    the respective addresses, the host receives the last programmed address on the chain + 1."
    I expect 0x9C to be returned, but why is it 0x9B?
    Please tell me the workaround.

    Best Regards,

    fukuno

  • Hi Fukuno-san,

    I think this text is misleading or incorrect. Can you confirm that you receive data from all 12 devices when you perform Global Read? Can you confirm you can read from all 12 devices in Individual Read mode by supplying device addresses 0 through 11?

    thanks,

    ren

  • Hi,

    I appreciate your cooperation.

    Q1:Can you confirm that you receive data from all 12 devices when you perform Global Read?

    A1:Only read 11 devices.

    Q2:Can you confirm you can read from all 12 devices in Individual Read mode by supplying device addresses 0 through 11?

    A2:ID 11 cannot be read.

    Please refer to the attached excel file.

    Are the steps wrong?

    Best Regards,

    fukuno

    tmp144-data.xlsx

  • Hi Fakuno-san,

    When performing Global Address Acquire, you should always supply an address of 0. This will be the address of the first device. The first two bytes will pass through the first device, and then the device will disconnect downstream devices while it reads the third byte. It will take this third as byte as its own address. It will then transmit a third byte which is its own Address+1. The next device downstream will assign itself the address it received, and proceed in the same manner. It can take a while for all the devices to get their address, and for the last device to transmit its own Address+1 back to the host. The screenshot below shows host Tx and Rx lines where the first two bytes are echoed immediately on the Rx line, and there is a delay for the last address to come back. this is only 4 devices on TMP144EVM. The delay will be longer for your 12 devices. You must wait for this address to come back before proceeding.  In your excel file, it seems you are initializing the first device with address 11 when you write 0x55, 0x8C, 0x9B. This will cause downstream devices to run out of address space, and potentially loop. This must be why your device chain is not working correctly. Please try transmitting 0x55, 0x08C, 0x90 for your address acquire.

    thanks,

    ren

  • Hi Ren-san,
    I tried transmitting 0x55,0x8c,0x90 and was able to read 12 devices.
    Thank you so much.
    fukuno