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.

TPS929240-Q1: I don't see any frame on the TX pin of the TPS929240

Part Number: TPS929240-Q1
Other Parts Discussed in Thread: TXS0102

Tool/software:

Hi,

I have a design with five TPS929240 ICs, where the TX and RX pins are directly connected to USART2_RX and USART2_TX on the MCU, respectively. I use an STM32 as microcontroller. After powering up the PCB, the RX pin of the TPS929240 is at 3.3V, but the TX pin is at 0.5VI know that TX should be 5 V when no frames are being sent, this is correct?

The LDO pin of each LED Driver outputs 5 V confirming that each IC is energized correctly.

What could be causing this issue? Could it be due to the lack of pull-up resistors on these pins, or is it related to my initialization code?

My initialization sequence is as follows:

  1. Power up the PCB.
  2. Enable PWMFREQ[3:0] = Ah (2000 Hz).
  3. Set ENOUTXn = 1 for all outputs.
  4. Send frames for PWMOUTXn and PWMLOWOUTXn registers (BRTLOCK is unlocked)

This is my CRC calculation, verifying the correct result in debugging and comparing it with the reference file from this link

uint8_t CRC_Calculation(uint8_t crc_initial, uint8_t input_data) {
    uint8_t temp_bit, input_bit;
    uint8_t bit[8];
    uint8_t i, crc = 0;
    
    for (i = 0; i < 8; i++) {
        bit[i] = (crc_initial >> i) & 0x01;
    }
    
    for (i = 0; i < 8; i++) {
        input_bit = (input_data >> i) & 0x01;
        temp_bit = input_bit ^ bit[7];
        bit[7] = bit[6];
        bit[6] = bit[5];
        bit[4] ^= temp_bit;
        bit[5] = bit[4];
        bit[3] ^= temp_bit;
        bit[4] = bit[3];
        bit[3] = bit[2];
        bit[2] = bit[1];
        bit[1] = bit[0];
        bit[0] = temp_bit;
    }
    
    for (i = 0; i < 8; i++) {
        crc |= (bit[i] << i);
    }
    
    return crc;
}

// To calculate CRC of a complete frame
uint8_t calculate_crc(uint8_t *data, uint8_t length) {
    uint8_t crc = INITIAL_CRC;
    for (uint8_t i = 1; i < length; i++) {
        crc = CRC_Calculation(crc, data[i]);
    }
    return crc;
}

This is the structure of my frame (0x55write/read-burst-address of the LED Driver | address of the register datacrc):

// To send an UART frame to LED driver
void send_uart_frame(uint8_t address_device, uint8_t address_register, uint8_t data) {
    uint8_t frame[5];
    frame[0] = 0x55; // Synchronization
    frame[1] = address_device;
    frame[2] = address_register;
    frame[3] = data;
    frame[4] = calculate_crc(frame, 4); // CRC calculation
    
    HAL_UART_Transmit(&huart2, frame, 5, 100); // Send frame by UART
}

And this is my inicialization code:

// send_uart_frame(write/read-burst-device_address, device_register, data)

// PWMFREQ[3:0] to 2000 Hz (Ah)
send_uart_frame(0x81, 0x7E, 0x0A);
HAL_Delay(10);
send_uart_frame(0x82, 0x7E, 0x0A);
send_uart_frame(0x83, 0x7E, 0x0A);
send_uart_frame(0x84, 0x7E, 0x0A);
send_uart_frame(0x85, 0x7E, 0x0A);

// Enable all the outputs of all LED Drivers
send_uart_frame(0x81, 0x40, 0x77);
send_uart_frame(0x81, 0x41, 0x77);
send_uart_frame(0x81, 0x42, 0x77);
send_uart_frame(0x81, 0x43, 0x77);
send_uart_frame(0x82, 0x40, 0x77);
send_uart_frame(0x82, 0x41, 0x77);
send_uart_frame(0x82, 0x42, 0x77);
send_uart_frame(0x82, 0x43, 0x77);
send_uart_frame(0x83, 0x40, 0x77);
send_uart_frame(0x83, 0x41, 0x77);
send_uart_frame(0x83, 0x42, 0x77);
send_uart_frame(0x83, 0x43, 0x77);
send_uart_frame(0x84, 0x40, 0x77);
send_uart_frame(0x84, 0x41, 0x77);
send_uart_frame(0x84, 0x42, 0x77);
send_uart_frame(0x84, 0x43, 0x77);
send_uart_frame(0x85, 0x40, 0x77);
send_uart_frame(0x85, 0x41, 0x77);
send_uart_frame(0x85, 0x42, 0x77);
send_uart_frame(0x85, 0x43, 0x77);

Also I tested with enable CLRPOR and enable REGDEFAULT:

// Enable CLRPOR to 1
send_uart_frame(0x81, 0x91, 0x01);
send_uart_frame(0x82, 0x91, 0x01);
send_uart_frame(0x83, 0x91, 0x01);
send_uart_frame(0x84, 0x91, 0x01);
send_uart_frame(0x85, 0x91, 0x01);
// Enable REGDEFAULT to 1
send_uart_frame(0x81, 0x94, 0x01);
send_uart_frame(0x82, 0x94, 0x01);
send_uart_frame(0x83, 0x94, 0x01);
send_uart_frame(0x84, 0x94, 0x01);
send_uart_frame(0x85, 0x94, 0x01);

My schematic design is the following file:

GM_BT1YL_SCH.PDF

These are my sent frames: 

while (1)
{
    /* USER CODE END WHILE */
    
    /* USER CODE BEGIN 3 */
    
    // Get 12 bytes of RF Transceiver
    if (HAL_UART_Receive(&huart1, rx_buff, 12, 1000) == HAL_OK)
    {
        memcpy(last_packet, rx_buff, 12);
    }
    
    else
    {
        // Error handle
    }
    
    state = rx_buff[8];
    HAL_Delay(250);
    
    if (state != lastState) {
    
        // Turn on the LED indicating that the frame is sending
        HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
        
        // Verify the byte [8] to know which button is pressed
        if (state == 0x01 ) {
        
            // On state of the LEDs
            HAL_Delay(1395);
            send_uart_frame(0x81, 0x20, 0x02); // 4 LSB de LED 1
            send_uart_frame(0x81, 0x00, 0x1C); // 8 MSB de LED 1
            send_uart_frame(0x82, 0x28, 0x02); // 4 LSB de LED 51
            send_uart_frame(0x82, 0x08, 0x1C); // 8 MSB de LED 51
            HAL_Delay(30);
            send_uart_frame(0x81, 0x21, 0x02); // 4 LSB de LED 2
            send_uart_frame(0x81, 0x01, 0x1C); // 8 MSB de LED 2
            send_uart_frame(0x82, 0x29, 0x02); // 4 LSB de LED 52
            send_uart_frame(0x82, 0x09, 0x1C); // 8 MSB de LED 52
            HAL_Delay(30);
            send_uart_frame(0x81, 0x22, 0x02); // 4 LSB de LED 3
            send_uart_frame(0x81, 0x02, 0x1C); // 8 MSB de LED 3
            send_uart_frame(0x82, 0x2A, 0x02); // 4 LSB de LED 53
            send_uart_frame(0x82, 0x0A, 0x1C); // 8 MSB de LED 53
            HAL_Delay(30);
            send_uart_frame(0x81, 0x23, 0x02); // 4 LSB de LED 4
            send_uart_frame(0x81, 0x03, 0x1C); // 8 MSB de LED 4
            send_uart_frame(0x82, 0x2B, 0x02); // 4 LSB de LED 54
            send_uart_frame(0x82, 0x0B, 0x1C); // 8 MSB de LED 54
            HAL_Delay(30);
            send_uart_frame(0x81, 0x24, 0x02); // 4 LSB de LED 5
            send_uart_frame(0x81, 0x04, 0x1C); // 8 MSB de LED 5
            send_uart_frame(0x82, 0x2C, 0x02); // 4 LSB de LED 55
            send_uart_frame(0x82, 0x0C, 0x1C); // 8 MSB de LED 55
            HAL_Delay(30);
            send_uart_frame(0x81, 0x25, 0x02); // 4 LSB de LED 6
            send_uart_frame(0x81, 0x05, 0x1C); // 8 MSB de LED 6
            send_uart_frame(0x82, 0x2D, 0x02); // 4 LSB de LED 56
            send_uart_frame(0x82, 0x0D, 0x1C); // 8 MSB de LED 56
            HAL_Delay(30);
            send_uart_frame(0x81, 0x26, 0x02); // 4 LSB de LED 7
            send_uart_frame(0x81, 0x06, 0x1C); // 8 MSB de LED 7
            send_uart_frame(0x82, 0x2E, 0x02); // 4 LSB de LED 57
            send_uart_frame(0x82, 0x0E, 0x1C); // 8 MSB de LED 57
            HAL_Delay(30);
            send_uart_frame(0x81, 0x27, 0x02); // 4 LSB de LED 8
            send_uart_frame(0x81, 0x07, 0x1C); // 8 MSB de LED 8
            send_uart_frame(0x82, 0x2F, 0x02); // 4 LSB de LED 58
            send_uart_frame(0x82, 0x0F, 0x1C); // 8 MSB de LED 58
            HAL_Delay(30);
            send_uart_frame(0x81, 0x28, 0x02); // 4 LSB de LED 9
            send_uart_frame(0x81, 0x08, 0x1C); // 8 MSB de LED 9
            send_uart_frame(0x82, 0x30, 0x02); // 4 LSB de LED 59
            send_uart_frame(0x82, 0x10, 0x1C); // 8 MSB de LED 59
            HAL_Delay(30);
            send_uart_frame(0x81, 0x29, 0x02); // 4 LSB de LED 10
            send_uart_frame(0x81, 0x09, 0x1C); // 8 MSB de LED 10
            send_uart_frame(0x82, 0x31, 0x02); // 4 LSB de LED 60
            send_uart_frame(0x82, 0x11, 0x1C); // 8 MSB de LED 60
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2A, 0x02); // 4 LSB de LED 11
            send_uart_frame(0x81, 0x0A, 0x1C); // 8 MSB de LED 11
            send_uart_frame(0x82, 0x32, 0x02); // 4 LSB de LED 61
            send_uart_frame(0x82, 0x12, 0x1C); // 8 MSB de LED 61
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2B, 0x02); // 4 LSB de LED 12
            send_uart_frame(0x81, 0x0B, 0x1C); // 8 MSB de LED 12
            send_uart_frame(0x82, 0x33, 0x02); // 4 LSB de LED 62
            send_uart_frame(0x82, 0x13, 0x1C); // 8 MSB de LED 62
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2C, 0x02); // 4 LSB de LED 13
            send_uart_frame(0x81, 0x0C, 0x1C); // 8 MSB de LED 13
            send_uart_frame(0x82, 0x34, 0x02); // 4 LSB de LED 63
            send_uart_frame(0x82, 0x14, 0x1C); // 8 MSB de LED 63
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2D, 0x02); // 4 LSB de LED 14
            send_uart_frame(0x81, 0x0D, 0x1C); // 8 MSB de LED 14
            send_uart_frame(0x82, 0x35, 0x02); // 4 LSB de LED 64
            send_uart_frame(0x82, 0x15, 0x1C); // 8 MSB de LED 64
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2E, 0x02); // 4 LSB de LED 15
            send_uart_frame(0x81, 0x0E, 0x1C); // 8 MSB de LED 15
            send_uart_frame(0x82, 0x36, 0x02); // 4 LSB de LED 65
            send_uart_frame(0x82, 0x16, 0x1C); // 8 MSB de LED 65
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2F, 0x02); // 4 LSB de LED 16
            send_uart_frame(0x81, 0x0F, 0x1C); // 8 MSB de LED 16
            send_uart_frame(0x82, 0x37, 0x02); // 4 LSB de LED 66
            send_uart_frame(0x82, 0x17, 0x1C); // 8 MSB de LED 66
            HAL_Delay(30);
            send_uart_frame(0x81, 0x30, 0x02); // 4 LSB de LED 17
            send_uart_frame(0x81, 0x10, 0x1C); // 8 MSB de LED 17
            send_uart_frame(0x83, 0x20, 0x02); // 4 LSB de LED 67
            send_uart_frame(0x83, 0x00, 0x1C); // 8 MSB de LED 67
            HAL_Delay(30);
            send_uart_frame(0x81, 0x31, 0x02); // 4 LSB de LED 18
            send_uart_frame(0x81, 0x11, 0x1C); // 8 MSB de LED 18
            send_uart_frame(0x83, 0x21, 0x02); // 4 LSB de LED 68
            send_uart_frame(0x83, 0x01, 0x1C); // 8 MSB de LED 68
            HAL_Delay(30);
            send_uart_frame(0x81, 0x32, 0x02); // 4 LSB de LED 19
            send_uart_frame(0x81, 0x12, 0x1C); // 8 MSB de LED 19
            send_uart_frame(0x83, 0x22, 0x02); // 4 LSB de LED 69
            send_uart_frame(0x83, 0x02, 0x1C); // 8 MSB de LED 69
            HAL_Delay(30);
            send_uart_frame(0x81, 0x33, 0x02); // 4 LSB de LED 20
            send_uart_frame(0x81, 0x13, 0x1C); // 8 MSB de LED 20
            send_uart_frame(0x83, 0x23, 0x02); // 4 LSB de LED 70
            send_uart_frame(0x83, 0x03, 0x1C); // 8 MSB de LED 70
            HAL_Delay(30);
            send_uart_frame(0x81, 0x34, 0x02); // 4 LSB de LED 21
            send_uart_frame(0x81, 0x14, 0x1C); // 8 MSB de LED 21
            send_uart_frame(0x83, 0x24, 0x02); // 4 LSB de LED 71
            send_uart_frame(0x83, 0x04, 0x1C); // 8 MSB de LED 71
            HAL_Delay(30);
            send_uart_frame(0x81, 0x35, 0x02); // 4 LSB de LED 22
            send_uart_frame(0x81, 0x15, 0x1C); // 8 MSB de LED 22
            send_uart_frame(0x83, 0x25, 0x02); // 4 LSB de LED 72
            send_uart_frame(0x83, 0x05, 0x1C); // 8 MSB de LED 72
            HAL_Delay(30);
            send_uart_frame(0x81, 0x36, 0x02); // 4 LSB de LED 23
            send_uart_frame(0x81, 0x16, 0x1C); // 8 MSB de LED 23
            send_uart_frame(0x83, 0x26, 0x02); // 4 LSB de LED 73
            send_uart_frame(0x83, 0x06, 0x1C); // 8 MSB de LED 73
            HAL_Delay(30);
            send_uart_frame(0x81, 0x37, 0x02); // 4 LSB de LED 24
            send_uart_frame(0x81, 0x17, 0x1C); // 8 MSB de LED 24
            send_uart_frame(0x83, 0x27, 0x02); // 4 LSB de LED 74
            send_uart_frame(0x83, 0x07, 0x1C); // 8 MSB de LED 74
            HAL_Delay(30);
            send_uart_frame(0x82, 0x20, 0x02); // 4 LSB de LED 25
            send_uart_frame(0x82, 0x00, 0x1C); // 8 MSB de LED 25
            send_uart_frame(0x83, 0x28, 0x02); // 4 LSB de LED 75
            send_uart_frame(0x83, 0x08, 0x1C); // 8 MSB de LED 75
            HAL_Delay(30);
            send_uart_frame(0x82, 0x21, 0x02); // 4 LSB de LED 26
            send_uart_frame(0x82, 0x01, 0x1C); // 8 MSB de LED 26
            send_uart_frame(0x83, 0x29, 0x02); // 4 LSB de LED 76
            send_uart_frame(0x83, 0x09, 0x1C); // 8 MSB de LED 76
            HAL_Delay(30);
            send_uart_frame(0x82, 0x22, 0x02); // 4 LSB de LED 27
            send_uart_frame(0x82, 0x02, 0x1C); // 8 MSB de LED 27
            send_uart_frame(0x83, 0x2A, 0x02); // 4 LSB de LED 77
            send_uart_frame(0x83, 0x0A, 0x1C); // 8 MSB de LED 77
            HAL_Delay(30);
            send_uart_frame(0x82, 0x23, 0x02); // 4 LSB de LED 28
            send_uart_frame(0x82, 0x03, 0x1C); // 8 MSB de LED 28
            send_uart_frame(0x83, 0x2B, 0x02); // 4 LSB de LED 78
            send_uart_frame(0x83, 0x0B, 0x1C); // 8 MSB de LED 78
            HAL_Delay(30);
            send_uart_frame(0x82, 0x24, 0x02); // 4 LSB de LED 29
            send_uart_frame(0x82, 0x04, 0x1C); // 8 MSB de LED 29
            send_uart_frame(0x83, 0x2C, 0x02); // 4 LSB de LED 79
            send_uart_frame(0x83, 0x0C, 0x1C); // 8 MSB de LED 79
            HAL_Delay(30);
            send_uart_frame(0x82, 0x25, 0x02); // 4 LSB de LED 30
            send_uart_frame(0x82, 0x05, 0x1C); // 8 MSB de LED 30
            send_uart_frame(0x83, 0x2D, 0x02); // 4 LSB de LED 80
            send_uart_frame(0x83, 0x0D, 0x1C); // 8 MSB de LED 80
            HAL_Delay(30);
            send_uart_frame(0x82, 0x26, 0x02); // 4 LSB de LED 31
            send_uart_frame(0x82, 0x06, 0x1C); // 8 MSB de LED 31
            send_uart_frame(0x83, 0x2E, 0x02); // 4 LSB de LED 81
            send_uart_frame(0x83, 0x0E, 0x1C); // 8 MSB de LED 81
            HAL_Delay(30);
            send_uart_frame(0x82, 0x27, 0x02); // 4 LSB de LED 32
            send_uart_frame(0x82, 0x07, 0x1C); // 8 MSB de LED 32
            send_uart_frame(0x83, 0x2F, 0x02); // 4 LSB de LED 82
            send_uart_frame(0x83, 0x0F, 0x1C); // 8 MSB de LED 82
            HAL_Delay(30);
            send_uart_frame(0x84, 0x20, 0x0F); // 4 LSB de LED 33
            send_uart_frame(0x84, 0x00, 0xFF); // 8 MSB de LED 33
            send_uart_frame(0x84, 0x21, 0x0F); // 4 LSB de LED 34
            send_uart_frame(0x84, 0x01, 0xFF); // 8 MSB de LED 34
            send_uart_frame(0x84, 0x22, 0x0F); // 4 LSB de LED 35
            send_uart_frame(0x84, 0x02, 0xFF); // 8 MSB de LED 35
            send_uart_frame(0x84, 0x32, 0x0F); // 4 LSB de LED 83
            send_uart_frame(0x84, 0x12, 0xFF); // 8 MSB de LED 83
            send_uart_frame(0x84, 0x33, 0x0F); // 4 LSB de LED 84
            send_uart_frame(0x84, 0x13, 0xFF); // 8 MSB de LED 84
            send_uart_frame(0x84, 0x34, 0x0F); // 4 LSB de LED 85
            send_uart_frame(0x84, 0x14, 0xFF); // 8 MSB de LED 85
            HAL_Delay(120);
            send_uart_frame(0x84, 0x23, 0x0F); // 4 LSB de LED 36
            send_uart_frame(0x84, 0x03, 0xFF); // 8 MSB de LED 36
            send_uart_frame(0x84, 0x24, 0x0F); // 4 LSB de LED 37
            send_uart_frame(0x84, 0x04, 0xFF); // 8 MSB de LED 37
            send_uart_frame(0x84, 0x25, 0x0F); // 4 LSB de LED 38
            send_uart_frame(0x84, 0x05, 0xFF); // 8 MSB de LED 38
            send_uart_frame(0x84, 0x35, 0x0F); // 4 LSB de LED 86
            send_uart_frame(0x84, 0x15, 0xFF); // 8 MSB de LED 86
            send_uart_frame(0x84, 0x36, 0x0F); // 4 LSB de LED 87
            send_uart_frame(0x84, 0x16, 0xFF); // 8 MSB de LED 87
            send_uart_frame(0x84, 0x37, 0x0F); // 4 LSB de LED 88
            send_uart_frame(0x84, 0x17, 0xFF); // 8 MSB de LED 88
            HAL_Delay(120);
            send_uart_frame(0x84, 0x26, 0x0F); // 4 LSB de LED 39
            send_uart_frame(0x84, 0x06, 0xFF); // 8 MSB de LED 39
            send_uart_frame(0x84, 0x27, 0x0F); // 4 LSB de LED 40
            send_uart_frame(0x84, 0x07, 0xFF); // 8 MSB de LED 40
            send_uart_frame(0x84, 0x28, 0x0F); // 4 LSB de LED 41
            send_uart_frame(0x84, 0x08, 0xFF); // 8 MSB de LED 41
            send_uart_frame(0x85, 0x20, 0x0F); // 4 LSB de LED 89
            send_uart_frame(0x85, 0x00, 0xFF); // 8 MSB de LED 89
            send_uart_frame(0x85, 0x21, 0x0F); // 4 LSB de LED 90
            send_uart_frame(0x85, 0x01, 0xFF); // 8 MSB de LED 90
            send_uart_frame(0x85, 0x22, 0x0F); // 4 LSB de LED 91
            send_uart_frame(0x85, 0x02, 0xFF); // 8 MSB de LED 91
            HAL_Delay(120);
            send_uart_frame(0x84, 0x29, 0x0F); // 4 LSB de LED 42
            send_uart_frame(0x84, 0x09, 0xFF); // 8 MSB de LED 42
            send_uart_frame(0x84, 0x2A, 0x0F); // 4 LSB de LED 43
            send_uart_frame(0x84, 0x0A, 0xFF); // 8 MSB de LED 43
            send_uart_frame(0x84, 0x2B, 0x0F); // 4 LSB de LED 44
            send_uart_frame(0x84, 0x0B, 0xFF); // 8 MSB de LED 44
            send_uart_frame(0x85, 0x23, 0x0F); // 4 LSB de LED 92
            send_uart_frame(0x85, 0x03, 0xFF); // 8 MSB de LED 92
            send_uart_frame(0x85, 0x24, 0x0F); // 4 LSB de LED 93
            send_uart_frame(0x85, 0x04, 0xFF); // 8 MSB de LED 93
            send_uart_frame(0x85, 0x25, 0x0F); // 4 LSB de LED 94
            send_uart_frame(0x85, 0x05, 0xFF); // 8 MSB de LED 94
            HAL_Delay(120);
            send_uart_frame(0x84, 0x2C, 0x0F); // 4 LSB de LED 45
            send_uart_frame(0x84, 0x0C, 0xFF); // 8 MSB de LED 45
            send_uart_frame(0x84, 0x2D, 0x0F); // 4 LSB de LED 46
            send_uart_frame(0x84, 0x0D, 0xFF); // 8 MSB de LED 46
            send_uart_frame(0x84, 0x2E, 0x0F); // 4 LSB de LED 47
            send_uart_frame(0x84, 0x0E, 0xFF); // 8 MSB de LED 47
            send_uart_frame(0x85, 0x26, 0x0F); // 4 LSB de LED 95
            send_uart_frame(0x85, 0x06, 0xFF); // 8 MSB de LED 95
            send_uart_frame(0x85, 0x27, 0x0F); // 4 LSB de LED 96
            send_uart_frame(0x85, 0x07, 0xFF); // 8 MSB de LED 96
            send_uart_frame(0x85, 0x28, 0x0F); // 4 LSB de LED 97
            send_uart_frame(0x85, 0x08, 0xFF); // 8 MSB de LED 97
            HAL_Delay(120);
            send_uart_frame(0x84, 0x2F, 0x0F); // 4 LSB de LED 48
            send_uart_frame(0x84, 0x0F, 0xFF); // 8 MSB de LED 48
            send_uart_frame(0x84, 0x30, 0x0F); // 4 LSB de LED 49
            send_uart_frame(0x84, 0x10, 0xFF); // 8 MSB de LED 49
            send_uart_frame(0x84, 0x31, 0x0F); // 4 LSB de LED 50
            send_uart_frame(0x84, 0x11, 0xFF); // 8 MSB de LED 50
            send_uart_frame(0x85, 0x29, 0x0F); // 4 LSB de LED 98
            send_uart_frame(0x85, 0x09, 0xFF); // 8 MSB de LED 98
            send_uart_frame(0x85, 0x2A, 0x0F); // 4 LSB de LED 99
            send_uart_frame(0x85, 0x0A, 0xFF); // 8 MSB de LED 99
            send_uart_frame(0x85, 0x2B, 0x0F); // 4 LSB de LED 100
            send_uart_frame(0x85, 0x0B, 0xFF); // 8 MSB de LED 100
        }
        
        else if (state == 0x02) {
            // Off state of the LEDs
            HAL_Delay(375);
            send_uart_frame(0x84, 0x2F, 0x00); // 4 LSB de LED 48
            send_uart_frame(0x84, 0x0F, 0x00); // 8 MSB de LED 48
            send_uart_frame(0x84, 0x30, 0x00); // 4 LSB de LED 49
            send_uart_frame(0x84, 0x10, 0x00); // 8 MSB de LED 49
            send_uart_frame(0x84, 0x31, 0x00); // 4 LSB de LED 50
            send_uart_frame(0x84, 0x11, 0x00); // 8 MSB de LED 50
            send_uart_frame(0x85, 0x29, 0x00); // 4 LSB de LED 98
            send_uart_frame(0x85, 0x09, 0x00); // 8 MSB de LED 98
            send_uart_frame(0x85, 0x2A, 0x00); // 4 LSB de LED 99
            send_uart_frame(0x85, 0x0A, 0x00); // 8 MSB de LED 99
            send_uart_frame(0x85, 0x2B, 0x00); // 4 LSB de LED 100
            send_uart_frame(0x85, 0x0B, 0x00); // 8 MSB de LED 100
            HAL_Delay(120);
            send_uart_frame(0x84, 0x2C, 0x00); // 4 LSB de LED 45
            send_uart_frame(0x84, 0x0C, 0x00); // 8 MSB de LED 45
            send_uart_frame(0x84, 0x2D, 0x00); // 4 LSB de LED 46
            send_uart_frame(0x84, 0x0D, 0x00); // 8 MSB de LED 46
            send_uart_frame(0x84, 0x2E, 0x00); // 4 LSB de LED 47
            send_uart_frame(0x84, 0x0E, 0x00); // 8 MSB de LED 47
            send_uart_frame(0x85, 0x26, 0x00); // 4 LSB de LED 95
            send_uart_frame(0x85, 0x06, 0x00); // 8 MSB de LED 95
            send_uart_frame(0x85, 0x27, 0x00); // 4 LSB de LED 96
            send_uart_frame(0x85, 0x07, 0x00); // 8 MSB de LED 96
            send_uart_frame(0x85, 0x28, 0x00); // 4 LSB de LED 97
            send_uart_frame(0x85, 0x08, 0x00); // 8 MSB de LED 97
            HAL_Delay(120);
            send_uart_frame(0x84, 0x29, 0x00); // 4 LSB de LED 42
            send_uart_frame(0x84, 0x09, 0x00); // 8 MSB de LED 42
            send_uart_frame(0x84, 0x2A, 0x00); // 4 LSB de LED 43
            send_uart_frame(0x84, 0x0A, 0x00); // 8 MSB de LED 43
            send_uart_frame(0x84, 0x2B, 0x00); // 4 LSB de LED 44
            send_uart_frame(0x84, 0x0B, 0x00); // 8 MSB de LED 44
            send_uart_frame(0x85, 0x23, 0x00); // 4 LSB de LED 92
            send_uart_frame(0x85, 0x03, 0x00); // 8 MSB de LED 92
            send_uart_frame(0x85, 0x24, 0x00); // 4 LSB de LED 93
            send_uart_frame(0x85, 0x04, 0x00); // 8 MSB de LED 93
            send_uart_frame(0x85, 0x25, 0x00); // 4 LSB de LED 94
            send_uart_frame(0x85, 0x05, 0x00); // 8 MSB de LED 94
            HAL_Delay(120);
            send_uart_frame(0x84, 0x26, 0x00); // 4 LSB de LED 39
            send_uart_frame(0x84, 0x06, 0x00); // 8 MSB de LED 39
            send_uart_frame(0x84, 0x27, 0x00); // 4 LSB de LED 40
            send_uart_frame(0x84, 0x07, 0x00); // 8 MSB de LED 40
            send_uart_frame(0x84, 0x28, 0x00); // 4 LSB de LED 41
            send_uart_frame(0x84, 0x08, 0x00); // 8 MSB de LED 41
            send_uart_frame(0x85, 0x20, 0x00); // 4 LSB de LED 89
            send_uart_frame(0x85, 0x00, 0x00); // 8 MSB de LED 89
            send_uart_frame(0x85, 0x21, 0x00); // 4 LSB de LED 90
            send_uart_frame(0x85, 0x01, 0x00); // 8 MSB de LED 90
            send_uart_frame(0x85, 0x22, 0x00); // 4 LSB de LED 91
            send_uart_frame(0x85, 0x02, 0x00); // 8 MSB de LED 91
            HAL_Delay(120);
            send_uart_frame(0x84, 0x23, 0x00); // 4 LSB de LED 36
            send_uart_frame(0x84, 0x03, 0x00); // 8 MSB de LED 36
            send_uart_frame(0x84, 0x24, 0x00); // 4 LSB de LED 37
            send_uart_frame(0x84, 0x04, 0x00); // 8 MSB de LED 37
            send_uart_frame(0x84, 0x25, 0x00); // 4 LSB de LED 38
            send_uart_frame(0x84, 0x05, 0x00); // 8 MSB de LED 38
            send_uart_frame(0x84, 0x35, 0x00); // 4 LSB de LED 86
            send_uart_frame(0x84, 0x15, 0x00); // 8 MSB de LED 86
            send_uart_frame(0x84, 0x36, 0x00); // 4 LSB de LED 87
            send_uart_frame(0x84, 0x16, 0x00); // 8 MSB de LED 87
            send_uart_frame(0x84, 0x37, 0x00); // 4 LSB de LED 88
            send_uart_frame(0x84, 0x17, 0x00); // 8 MSB de LED 88
            HAL_Delay(120);
            send_uart_frame(0x84, 0x20, 0x00); // 4 LSB de LED 33
            send_uart_frame(0x84, 0x00, 0x00); // 8 MSB de LED 33
            send_uart_frame(0x84, 0x21, 0x00); // 4 LSB de LED 34
            send_uart_frame(0x84, 0x01, 0x00); // 8 MSB de LED 34
            send_uart_frame(0x84, 0x22, 0x00); // 4 LSB de LED 35
            send_uart_frame(0x84, 0x02, 0x00); // 8 MSB de LED 35
            send_uart_frame(0x84, 0x32, 0x00); // 4 LSB de LED 83
            send_uart_frame(0x84, 0x12, 0x00); // 8 MSB de LED 83
            send_uart_frame(0x84, 0x33, 0x00); // 4 LSB de LED 84
            send_uart_frame(0x84, 0x13, 0x00); // 8 MSB de LED 84
            send_uart_frame(0x84, 0x34, 0x00); // 4 LSB de LED 85
            send_uart_frame(0x84, 0x14, 0x00); // 8 MSB de LED 85
            HAL_Delay(30);
            send_uart_frame(0x82, 0x27, 0x00); // 4 LSB de LED 32
            send_uart_frame(0x82, 0x07, 0x00); // 8 MSB de LED 32
            send_uart_frame(0x83, 0x2F, 0x00); // 4 LSB de LED 82
            send_uart_frame(0x83, 0x0F, 0x00); // 8 MSB de LED 82
            HAL_Delay(30);
            send_uart_frame(0x82, 0x26, 0x00); // 4 LSB de LED 31
            send_uart_frame(0x82, 0x06, 0x00); // 8 MSB de LED 31
            send_uart_frame(0x83, 0x2E, 0x00); // 4 LSB de LED 81
            send_uart_frame(0x83, 0x0E, 0x00); // 8 MSB de LED 81
            HAL_Delay(30);
            send_uart_frame(0x82, 0x25, 0x00); // 4 LSB de LED 30
            send_uart_frame(0x82, 0x05, 0x00); // 8 MSB de LED 30
            send_uart_frame(0x83, 0x2D, 0x00); // 4 LSB de LED 80
            send_uart_frame(0x83, 0x0D, 0x00); // 8 MSB de LED 80
            HAL_Delay(30);
            send_uart_frame(0x82, 0x24, 0x00); // 4 LSB de LED 29
            send_uart_frame(0x82, 0x04, 0x00); // 8 MSB de LED 29
            send_uart_frame(0x83, 0x2C, 0x00); // 4 LSB de LED 79
            send_uart_frame(0x83, 0x0C, 0x00); // 8 MSB de LED 79
            HAL_Delay(30);
            send_uart_frame(0x82, 0x23, 0x00); // 4 LSB de LED 28
            send_uart_frame(0x82, 0x03, 0x00); // 8 MSB de LED 28
            send_uart_frame(0x83, 0x2B, 0x00); // 4 LSB de LED 78
            send_uart_frame(0x83, 0x0B, 0x00); // 8 MSB de LED 78
            HAL_Delay(30);
            send_uart_frame(0x82, 0x22, 0x00); // 4 LSB de LED 27
            send_uart_frame(0x82, 0x02, 0x00); // 8 MSB de LED 27
            send_uart_frame(0x83, 0x2A, 0x00); // 4 LSB de LED 77
            send_uart_frame(0x83, 0x0A, 0x00); // 8 MSB de LED 77
            HAL_Delay(30);
            send_uart_frame(0x82, 0x21, 0x00); // 4 LSB de LED 26
            send_uart_frame(0x82, 0x01, 0x00); // 8 MSB de LED 26
            send_uart_frame(0x83, 0x29, 0x00); // 4 LSB de LED 76
            send_uart_frame(0x83, 0x09, 0x00); // 8 MSB de LED 76
            HAL_Delay(30);
            send_uart_frame(0x82, 0x20, 0x00); // 4 LSB de LED 25
            send_uart_frame(0x82, 0x00, 0x00); // 8 MSB de LED 25
            send_uart_frame(0x83, 0x28, 0x00); // 4 LSB de LED 75
            send_uart_frame(0x83, 0x08, 0x00); // 8 MSB de LED 75
            HAL_Delay(30);
            send_uart_frame(0x81, 0x37, 0x00); // 4 LSB de LED 24
            send_uart_frame(0x81, 0x17, 0x00); // 8 MSB de LED 24
            send_uart_frame(0x83, 0x27, 0x00); // 4 LSB de LED 74
            send_uart_frame(0x83, 0x07, 0x00); // 8 MSB de LED 74
            HAL_Delay(30);
            send_uart_frame(0x81, 0x36, 0x00); // 4 LSB de LED 23
            send_uart_frame(0x81, 0x16, 0x00); // 8 MSB de LED 23
            send_uart_frame(0x83, 0x26, 0x00); // 4 LSB de LED 73
            send_uart_frame(0x83, 0x06, 0x00); // 8 MSB de LED 73
            HAL_Delay(30);
            send_uart_frame(0x81, 0x35, 0x00); // 4 LSB de LED 22
            send_uart_frame(0x81, 0x15, 0x00); // 8 MSB de LED 22
            send_uart_frame(0x83, 0x25, 0x00); // 4 LSB de LED 72
            send_uart_frame(0x83, 0x05, 0x00); // 8 MSB de LED 72
            HAL_Delay(30);
            send_uart_frame(0x81, 0x34, 0x00); // 4 LSB de LED 21
            send_uart_frame(0x81, 0x14, 0x00); // 8 MSB de LED 21
            send_uart_frame(0x83, 0x24, 0x00); // 4 LSB de LED 71
            send_uart_frame(0x83, 0x04, 0x00); // 8 MSB de LED 71
            HAL_Delay(30);
            send_uart_frame(0x81, 0x33, 0x00); // 4 LSB de LED 20
            send_uart_frame(0x81, 0x13, 0x00); // 8 MSB de LED 20
            send_uart_frame(0x83, 0x23, 0x00); // 4 LSB de LED 70
            send_uart_frame(0x83, 0x03, 0x00); // 8 MSB de LED 70
            HAL_Delay(30);
            send_uart_frame(0x81, 0x32, 0x00); // 4 LSB de LED 19
            send_uart_frame(0x81, 0x12, 0x00); // 8 MSB de LED 19
            send_uart_frame(0x83, 0x22, 0x00); // 4 LSB de LED 69
            send_uart_frame(0x83, 0x02, 0x00); // 8 MSB de LED 69
            HAL_Delay(30);
            send_uart_frame(0x81, 0x31, 0x00); // 4 LSB de LED 18
            send_uart_frame(0x81, 0x11, 0x00); // 8 MSB de LED 18
            send_uart_frame(0x83, 0x21, 0x00); // 4 LSB de LED 68
            send_uart_frame(0x83, 0x01, 0x00); // 8 MSB de LED 68
            HAL_Delay(30);
            send_uart_frame(0x81, 0x30, 0x00); // 4 LSB de LED 17
            send_uart_frame(0x81, 0x10, 0x00); // 8 MSB de LED 17
            send_uart_frame(0x83, 0x20, 0x00); // 4 LSB de LED 67
            send_uart_frame(0x83, 0x00, 0x00); // 8 MSB de LED 67
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2F, 0x00); // 4 LSB de LED 16
            send_uart_frame(0x81, 0x0F, 0x00); // 8 MSB de LED 16
            send_uart_frame(0x82, 0x37, 0x00); // 4 LSB de LED 66
            send_uart_frame(0x82, 0x17, 0x00); // 8 MSB de LED 66
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2E, 0x00); // 4 LSB de LED 15
            send_uart_frame(0x81, 0x0E, 0x00); // 8 MSB de LED 15
            send_uart_frame(0x82, 0x36, 0x00); // 4 LSB de LED 65
            send_uart_frame(0x82, 0x16, 0x00); // 8 MSB de LED 65
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2D, 0x00); // 4 LSB de LED 14
            send_uart_frame(0x81, 0x0D, 0x00); // 8 MSB de LED 14
            send_uart_frame(0x82, 0x35, 0x00); // 4 LSB de LED 64
            send_uart_frame(0x82, 0x15, 0x00); // 8 MSB de LED 64
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2C, 0x00); // 4 LSB de LED 13
            send_uart_frame(0x81, 0x0C, 0x00); // 8 MSB de LED 13
            send_uart_frame(0x82, 0x34, 0x00); // 4 LSB de LED 63
            send_uart_frame(0x82, 0x14, 0x00); // 8 MSB de LED 63
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2B, 0x00); // 4 LSB de LED 12
            send_uart_frame(0x81, 0x0B, 0x00); // 8 MSB de LED 12
            send_uart_frame(0x82, 0x33, 0x00); // 4 LSB de LED 62
            send_uart_frame(0x82, 0x13, 0x00); // 8 MSB de LED 62
            HAL_Delay(30);
            send_uart_frame(0x81, 0x2A, 0x00); // 4 LSB de LED 11
            send_uart_frame(0x81, 0x0A, 0x00); // 8 MSB de LED 11
            send_uart_frame(0x82, 0x32, 0x00); // 4 LSB de LED 61
            send_uart_frame(0x82, 0x12, 0x00); // 8 MSB de LED 61
            HAL_Delay(30);
            send_uart_frame(0x81, 0x29, 0x00); // 4 LSB de LED 10
            send_uart_frame(0x81, 0x09, 0x00); // 8 MSB de LED 10
            send_uart_frame(0x82, 0x31, 0x00); // 4 LSB de LED 60
            send_uart_frame(0x82, 0x11, 0x00); // 8 MSB de LED 60
            HAL_Delay(30);
            send_uart_frame(0x81, 0x28, 0x00); // 4 LSB de LED 9
            send_uart_frame(0x81, 0x08, 0x00); // 8 MSB de LED 9
            send_uart_frame(0x82, 0x30, 0x00); // 4 LSB de LED 59
            send_uart_frame(0x82, 0x10, 0x00); // 8 MSB de LED 59
            HAL_Delay(30);
            send_uart_frame(0x81, 0x27, 0x00); // 4 LSB de LED 8
            send_uart_frame(0x81, 0x07, 0x00); // 8 MSB de LED 8
            send_uart_frame(0x82, 0x2F, 0x00); // 4 LSB de LED 58
            send_uart_frame(0x82, 0x0F, 0x00); // 8 MSB de LED 58
            HAL_Delay(30);
            send_uart_frame(0x81, 0x26, 0x00); // 4 LSB de LED 7
            send_uart_frame(0x81, 0x06, 0x00); // 8 MSB de LED 7
            send_uart_frame(0x82, 0x2E, 0x00); // 4 LSB de LED 57
            send_uart_frame(0x82, 0x0E, 0x00); // 8 MSB de LED 57
            HAL_Delay(30);
            send_uart_frame(0x81, 0x25, 0x00); // 4 LSB de LED 6
            send_uart_frame(0x81, 0x05, 0x00); // 8 MSB de LED 6
            send_uart_frame(0x82, 0x2D, 0x00); // 4 LSB de LED 56
            send_uart_frame(0x82, 0x0D, 0x00); // 8 MSB de LED 56
            HAL_Delay(30);
            send_uart_frame(0x81, 0x24, 0x00); // 4 LSB de LED 5
            send_uart_frame(0x81, 0x04, 0x00); // 8 MSB de LED 5
            send_uart_frame(0x82, 0x2C, 0x00); // 4 LSB de LED 55
            send_uart_frame(0x82, 0x0C, 0x00); // 8 MSB de LED 55
            HAL_Delay(30);
            send_uart_frame(0x81, 0x23, 0x00); // 4 LSB de LED 4
            send_uart_frame(0x81, 0x03, 0x00); // 8 MSB de LED 4
            send_uart_frame(0x82, 0x2B, 0x00); // 4 LSB de LED 54
            send_uart_frame(0x82, 0x0B, 0x00); // 8 MSB de LED 54
            HAL_Delay(30);
            send_uart_frame(0x81, 0x22, 0x00); // 4 LSB de LED 3
            send_uart_frame(0x81, 0x02, 0x00); // 8 MSB de LED 3
            send_uart_frame(0x82, 0x2A, 0x00); // 4 LSB de LED 53
            send_uart_frame(0x82, 0x0A, 0x00); // 8 MSB de LED 53
            HAL_Delay(30);
            send_uart_frame(0x81, 0x21, 0x00); // 4 LSB de LED 2
            send_uart_frame(0x81, 0x01, 0x00); // 8 MSB de LED 2
            send_uart_frame(0x82, 0x29, 0x00); // 4 LSB de LED 52
            send_uart_frame(0x82, 0x09, 0x00); // 8 MSB de LED 52
            HAL_Delay(30);
            send_uart_frame(0x81, 0x20, 0x00); // 4 LSB de LED 1
            send_uart_frame(0x81, 0x00, 0x00); // 8 MSB de LED 1
            send_uart_frame(0x82, 0x28, 0x00); // 4 LSB de LED 51
            send_uart_frame(0x82, 0x08, 0x00); // 8 MSB de LED 51
        }
        else {
            // Delay
            HAL_Delay(100);
        }
    }
        // The LED is turned off indicating that the transfer is finished
        HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
        lastState = state;
    
    /* USER CODE END 3 */
}

Am I missing something or not doing something right?

  • Please add pullup resister. You need it to pull TX up to high voltage.  

  • Thanks. I'm going to rework the PCB. I have more doubts.

    1. Can I connect this pullup resistor to 3.3 V or does it have to be 5 V?

    2. Is it enough to just put pull-up resistor to TX, should I put a pullup resistor to RX as well?

    I already tried connecting the pullup resistor only to TX at 5 V but it still didn't show up the frames (stays at 5 V).

    I'm thinking it could also be the firmware, I shared what registers I'm activating and the way to do it with UART. I forgot to say that I am configuring the UART with the following parameters:

    * Baudrate: 115200 bps.

    * 8 data bits, 1 stop bit, no parity.

    * TX/RX mode without hardware flow control.

    * Oversampling at 16 and One-Bit Sampling disabled.

    3. Are these parameters correct?

    4. Do I need to activate certain registers especially for the LED Driver to send a response status?

    5. Should I modify some of these registers? (I just want to set PWM values to the LEDs in the PWMOUTXn and PWMLOWOUTXn registers, because BRTLOCK in unlocked, it should be done)

    The frames on the RX pin of each TPS929240 are as follows. 

    6. Is this format correct?

    I haven't connected LEDs to the TPS929240 yet because these LEDs go on another PCB that is just being manufactured, but I wanted to try this TPS929240 like this just waiting for some feedback from it but I didn't get any.

  • The schematic shows that you are using TPS929240A instead of TPS929240, so the DEVADDR[3] = 1.  Please try different address like 08h, 0ch instead of 00h and 04h. 

  • Thank you. I've already received an answer from the LED Driver, it already worked for me, what I have to improve in the schematic is the following:

    * Connect to GND the FS0 and FS1 pins if they are not occupied.

    * Put capacitors between 1 uF and 10 uF on the LDO pins of each LED Driver even if they are not used.

    * Put an indicator LED on each ERR pin of each LED Driver if the blinking corresponds to some indication according to the data sheet.

    * Add 47 kOhm pull-up resistors to VLDO on TX and RX buses.

    Are these reconnections correct?

    If the MCU operates on 3.3 V voltages and the LED Driver operates on 5 V voltages, would it be prudent to use a Level Shifter (like a TXS0102) between the two?