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.

TUSS4470: TUSS4470 OUT3 issue

Part Number: TUSS4470

Dear Sirs,

I have procured  two development kits TUSS4470   based (MIKROE-5087 - 5 clicks Ultrasounds). Following some hints from the Community and the TI datasheet of the IC I could get the first  board  operating rather soon. I even could observe initially the OUT3 square wave generation at 40 kHz  frequency,  expected for ultrasonic part UTR-1440K-TT-R annexed  in the kit.

However, I have soon after realized to have achieved  the OUT3 performing just  by case. Indeed once I've better stabilized the code to properly support odd parity in the commands and improved the initialization of the IC, I could not see any more any  output activity on the OUT3 line. I even replaced  the kit with a new one to be sure that the problem was not caused by a possible pin out damaging of the OUT3 line.

I really need this OUT3 output operating, because my intent is to perform some Doppler measurements and without it I can not do anything with this TUSS4470. I tried all the possible configurations   of the ZC_CONFIG Register, but OUT3 persisted to remain permanently low. Filters setting and signals are good enough, I believe, being  VOUT  of the order of more than 2V and Flt out exceed 1 Volt. But as you know they are enveloped  signals conditioned by low pass filtering and they can not be used for my scope.

I may understand, the success in having the OUT3 line  working may depend on the actual echo. You mentioned that the related comparator performs the switching according to input compared to the level of VCM or in alternative of the INN line, but  VCM is not mentioned at all in the datasheet, I may argue that is half of the DC powering, conversely INN may be managed outside the IC.

Could you please provide me a simple list of commands ideal from your point of you to get this OUT3 really generated,  when the TUSS4470 is operated with a part like the UTR-1440K-TT-R?

Thank in advance, for any support that about, I wish not to change IC unless I am forced because I can not fix of the above issue.

Sincerely, Andrea

  • Sorry the correct PCB par Number from Mikroe is  PID: MIKROE-5804

  • Hello Andrea,

    Thanks for posting to the sensors forum! Can you provide your device register configurations to review? and have you tried reading back the configuration to ensure that the right settings are programmed to the device?

    Best,

    Isaac

  • Thanks Isaac, for commenting my post. The configuration is the essentially the default one with the only major modification concerning the REG_ZC_CONFIG set to 0x94.

    Of course I've implemented my routines checking every transfer. It is a good exercise to start to write some register and read it back to see

    what effectively has been programmed. For reading I would suggest to start from REG_DEVICE_ID (0x1D) to check if its expected value it is the good one.

    For sake of clarity I put the running config here below, but many other are applicable. Last but not least I had to fix a PCB issue, being rather expert in manufacturing, I could notice something wrong. That was the true cause of the failure.  I am quite disappointed for that because I wasted 2 days of work for something it was already achieved the first testing day. But being it now  over it is ok like that too.

    void tuss4470_init() {
      spiCommand(vspi, REG_BPF_CONFIG_1,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: BPF_CONFIG_1");
      spiCommand(vspi, REG_BPF_CONFIG_2,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: BPF_CONFIG_2");
      spiCommand(vspi, REG_DEV_CTRL_1,0x00); //C9
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: DEV_CTRL_1");
      spiCommand(vspi, REG_DEV_CTRL_2,0xc6);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: DEV_CTRL_2");
      spiCommand(vspi, REG_DEV_CTRL_3,0x1d);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: DEV_CTRL_3");
      spiCommand(vspi, 0x15,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: 0x15");
      spiCommand(vspi, REG_VDRV_CTRL,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01 ) == 0x04) printf ("\nCHKS Error at REG: VDRV_CTRL");
      spiCommand(vspi, REG_ECHO_INT_CONFIG,0x17);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: 0x17");
      spiCommand(vspi, REG_ZC_CONFIG,0x94);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: ZC_CONFIG");
      spiCommand(vspi, 0x19,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: 0x19");
      spiCommand(vspi, REG_BURST_PULSE,0x08);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: BURST_PULSE");
      spiCommand(vspi, REG_TOF_CONFIG,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: TOF_CONFIG");
      spiCommand(vspi, 0x1F,0x00);
      if ((get_status(vspi, REG_DEV_STAT) && 0x01) == 0x04) printf ("\nCHKS Error at REG: 0x1F");
    }

  • Hello Andrea,

    Thanks for the info! So it sounds like the main source of the issue was due to the PCB problem you were observing. 

    Thank you for posting the additional code let me know if there is any other help that you may need!

    Best,

    Isaac