Skip to main content
GKish.1
Associate
January 19, 2022
Question

I am using STPM32 with UART communication. I am able to read all Default values as per datasheet. How to make the IC to start acquiring voltage current and update the respective registers.

  • January 19, 2022
  • 5 replies
  • 1968 views

..

    This topic has been closed for replies.

    5 replies

    waclawek.jan
    Super User
    January 19, 2022

    Show us what you already have done.

    JW

    GKish.1
    GKish.1Author
    Associate
    January 20, 2022

    Thank you for your response

    Below is the Arduino Mega code

    int receivedByte = 0;

    void setup()

    {

     Serial.begin(9600); //MEGA TO PC

     Serial1.begin(9600); //MEGA TO STPM32

     delay(10);

    }

    void loop()

    {

     Serial1.write(0x48); // register for voltage and current read address

     Serial1.write(0xFF); // no write ADDRESS so (0xFF)

     Serial1.write(0xFF); // WRITE DATA

     Serial1.write(0xFF); // WRITE DATA

     Serial1.write(0x22); //crc value after calcultion

     Serial.println("data sent: (48 FF FF FF 22) "); //Print in PC

     Serial.println();

     Serial.print("I received: ");

     while (Serial1.available() > 0)

     {

      receivedByte = Serial1.read();

      Serial.print(receivedByte, HEX); //here I'm receiving default value of all register

     }

     Serial.println();

     Serial.println();

     delay(1000);

    }

    Data recived for 48FFFFFF is 000000

    Register for voltage and current

    Data recieved for 0FFFFFF is A000475

    //Register address 0x00 as per data sheet default value is 040000A0 (just the reverse of what i recived)

    0693W00000JMdlkQAD.jpg48FFFFFF22 Transmit Data

    0693W00000JMdm9QAD.jpgRevieve Data for 48FFFFFF22

    0693W00000JMdmdQAD.jpg00FFFFFFF0 Transmit Data

    0693W00000JMdmiQAD.jpgRecieve data for 00FFFFFFF0

    GKish.1
    GKish.1Author
    Associate
    January 21, 2022

    Do we need to send any initialization command ?

    Didier HERROUIN
    Technical Moderator
    February 21, 2022

    Hello,

    No, you do not need to send any init command to get the chipset ready.

    Nevertheless, you need to enable the "Data latch" to get the values latched in the data register (see register dsp_cr3):

    • either by enabling the automatic SW latch (bit 23): the data will be latched every 128µs
    • or by enabling the "manual" SW latches (bit 20 & 21) each time you want to read some data: the data will be latched until the moment you will read the register

    Another option is to use the "manual" HW latch (pulse on signal SYN, see DS).

    The content of the register 0 you received is correct (0xA0 00 00 04, as frame format is LSBfirst).

    I put in attached an Application Note which should be very helpful for understand the UART communication for STPM3x and the init phase.

    Best regards,

    Didier Herrouin

    In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
    Didier HERROUIN
    Technical Moderator
    February 21, 2022

    ..

    In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.