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.

DS90UB954-Q1EVM: Sending Chunks of Data to the Sensor interfaced with DS90UB953-q1

Part Number: DS90UB954-Q1EVM
Other Parts Discussed in Thread: DS90UB953-Q1EVM, ALP

Is there an option in Analog Launch PAD to send 256 bytes chunk of data at a time from deserializer(DS90UB954) to serializer (DS90UB953-Q1EVM)? I am attempting to send a total of approximately 80,000 bytes of initialization data for sensor.

  • Hello,

    do you mean the data you want to write to a single register is 256 bytes or what? If this is the case, this is not supported. we can only do 32 bytes at time.

  • Hi Hamzeh,
          In the following example scenario, we need to write 2 bytes of data for 16-bit register address, and the total number of bytes we want to write is nearly 8,000 for 4,000 registers. Our plan is to send the data in chunks of 256 bytes. Is it possible?

  • Hello,

    As said, what we have tested before is 8-bit, 16-bit or 32-bit of address and data, as below example. But we never tested sending 256 bytes of data at once without address.

    We normally use this method for initializing image sensors where we often write more than 3000 registers.

    For 32bit address 0x31291304, writing a 16-bit value 0x8010, this can be written as

    >>> board.WriteI2C(0xC4, 0x31, [0x29, 0x13, 0x04, 0x80, 0x10])

    Please refer to the script "10640_1280x720_0x60" which can be found in the installation folder of ALP, under C:\Program Files (x86)\Texas Instruments\Analog LaunchPAD v1.57.0010\PreDefScripts

  • Hi Hamzeh,
        I believe there might be a misunderstanding. Allow me to provide an example code snippet for clarification. Currently, we are referencing Linux.

    In linux for sending chunk of data we will use below defined function.

    static int sensor_i2c_write_bust(struct i2c_client *client, u8 *buf, size_t len)
    {
    struct i2c_msg msg;
    int ret;

    if (len == 0) {
    return 0;
    }

    msg.addr = client->addr;
    msg.flags = client->flags;
    msg.buf = buf;
    msg.len = len;

    ret = i2c_transfer(client->adapter, &msg, 1);
    if (ret < 0)
    {
    dev_err(&client->dev, "i2c transfer error.\n");
    return -EIO;
    }

    return 0;
    }

    The 'buf' array contains 256 bytes of data, and the size of 'len' will be sizeof(buf). The provided code will be executed on a Linux platform. Are there any possibilities for us to send data like this in ALP?



  • Hello,

    thanks for the additional clarifications. Unfortunately, this type of sending data is not supported in ALP.