What does DTSE mean?

What does DTSE mean?

Hi Phil, thanks for your question! DTSE stands for “Dynamic Triggering and Sampling Engine”. The DTSE allows the single ADC to operate as if it was part of a multiple ADC system. In essence, it revolves around the powerful ADC Sequencer which automates conversions so that multiple inputs can be frozen in time and then sequentially converted. We call it Dynamically Triggered because you can schedule the Sequencer start point by using a timer channel. This allows for the ADC conversion to be carefully positioned in time to avoid noisy conditions like FET switching events.

For example, by properly configuring the ADC Sequencer table (with up to 24 different entries), you can instruct the system to freeze the three Differential Amplifier current senses at a moment in time far away from a switching edge, and then the Sequencer automatically starts to convert the different analog inputs. When the system completes all conversions, you can be notified via an interrupt so you can read all values and use the obtained information according to the algorithm requirements.

Hope the info helps!

Just sharing a few more tips on using the DTSE. When using the ADC with the DTSE (dynamic triggering and sampling engine), it is important that the AFE EMUX is enabled before enabling the ADC/DTSE (PAC55XX_ADC->ADCCTL.ENABLE = 1 or pac5xxx_adc_enable(1)) so the EMUX will work properly. Otherwise the ADC will get the wrong result.

Ensure that the following PAC55xx SDK functions are called in the order below. CAFE_ARCH1: pac5xxx_tile_register_write(ADDR_ADCSCAN, 0x00); // Disable AFE EMUX (ADC Scan), Disable ADC Buffer pac5xxx_adc_config_emux_io(); // Configure the EMUX signals PA0/PA1 using pac5xxx_tile_register_write(ADDR_ADCSCAN, (0x10 | 0x08)); // Enable EMUX (0x10), Enable ADC Buffer (0x08) pac5xxx_adc_enable(1); // Enable ADC (and DTSE): // When the ADC is in DTSE mode, // this will start the DTSE (also known as the sequencer) // This is equivalent to PAC55XX_ADC -->ADCCTL.ENABLE = 1. CAFE_ARCH2: pac5xxx_tile_register_write(ADDR_SHCFG1, 0x00); // Disable AFE EMUX (ADC Scan), Disable ADC Buffer pac5xxx_adc_config_emux_io(); // Configure the EMUX signals PA0/PA1 using pac5xxx_tile_register_write(ADDR_SHCFG1, (0x10 | 0x08)); // Enable EMUX (0x10 ), Enable ADC Buffer (0x08) pac5xxx_adc_enable(1); // Enable ADC (and DTSE): // When the ADC is in DTSE mode, // This will start the DTSE (also known as the sequencer) // This is equivalent to PAC55XX_ADC -->ADCCTL.ENABLE = 1. For the PAC FOC PAC55xx projects to conform to the order above, follow the steps below: • In pac_init.c, inside the function peripheral_init(), comment out or delete the call to pac5xxx_adc_enable(1). • In main.c, replace pac5xxx_adc_start() with pac5xxx_adc_enable(1);