Quantcast
Channel: Forums - Recent Threads
Viewing all 262198 articles
Browse latest View live

CC1352R: Simple way to get time in millis in Project Zero and TI-RTOS?

$
0
0

Part Number: CC1352R

Hi

Is there a simple way to get the current time in milliseconds in a uint32_t?

The TI-RTOS Clock module provides timers which could be used, but how could I measure the time between two events? 

The other post did refer a Timestamp module, but I don't see it in the Project Zero example. Do I need to modify TOOLS/ble_debug.cfg and how?

Thanks, Matthias


DS90UB948-Q1: What is the value of tDDLT

$
0
0

Part Number: DS90UB948-Q1

Dear team,

When 948's PDB becomes high, the screen doesn't light up immediately, but it takes a while to light up. At this time, 948's RIN always has input data. The customer wants to know the delay time. I don't know whether tDDLT is the delay time. Could you please tell me what is the delay time? If the tDDLT is the delay time, could you please tell me the value? Because the datasheet has no this parameter's value.

Thanks & Best Regards,

Sherry

BQ24616: PG pin disables as soon as it starts to switch

$
0
0

Part Number: BQ24616

The team has been having some problems trying to get the chip to start charging – essentially it gives a single pulse on the MOSFET drive lines before performing a reset (the power good signal goes off momentarily), and then repeating the cycle.  

Could you offer some suggestions as to things to investigate

CC3220SF-LAUNCHXL: CC3220SF-LAUNCHXL - Exit XDS110 USB Debug Probe mode

$
0
0

Part Number: CC3220SF-LAUNCHXL

Hi,

I was trying to connect two CC3220SF LAUNCHXL to the same PC to program device in parallel. Both of them where register with the same serial number: E0071009

So I follow the instructions to change the serial number of one of the devices:

http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#finding-and-updating-the-serial-number

1. Go to the directory where the utility is installed:

C:>cd C:\ti\ccsv8\ccs_base\common\uscif\xds110

2. Run the configuration just to make sure a XDS110-class debugger is connected (or to list how many are connected) and what is the firmware revision installed on it:

C:\ti\ccsv8\ccs_base\common\uscif\xds110>xdsdfu -e

3. Put the XDS110 in DFU mode: C:\ti\ccsv8\ccs_base\common\uscif\xds110>xdsdfu -m

4. Run the updater, passing the firmware file and resetting the debug probe afterwards: C:\ti\ccsv8\ccs_base\common\uscif\xds110>xdsdfu -f firmware.bin -r

Then

1. Unplug all other debug probes from the host

2. Follow steps 1 through 3 above

3. Set the serial number: C:\ti\ccsv8\ccs_base\common\uscif\xds110>xdsdfu -s 0123EL12 -r

 

The problem I am having is now the device is not longer recognized as CC3220SF LaunchPad in the Uniflash tool. It is display as Texas Instruments XDS110 USB Debug Probe.

I try Factory Defaults by pressing SW4 and toggling the RESET button in the board but still I am not able to recover it.

How could it be detected again as CC3220SF LaunchPad by Uniflash tool?

Best regards,

Andres

TMS320F28379D: HRPWM frequency and duty cycle issue

$
0
0

Part Number: TMS320F28379D

if want to generate HRPWM of 20khz or any frequency I want...with duty cycle for example 25% the what should I do in below code to do so?

#include "driverlib.h"
#include "device.h"
#include "sfo_v8.h"
//
// Defines
//
// # of PWM channels
#define PWM_CH            2
#define STATUS_SUCCESS    1
#define STATUS_FAIL       0
//
// Globals
//
uint16_t updateFine, periodFine, status;
//
// Global variable used by the SFO library
// Result can be used for all HRPWM channels
// This variable is also copied to HRMSTEP
// register by SFO(0) function.
//
int MEP_ScaleFactor = 0;
//
// Used by SFO library (ePWM[0] is a dummy value that isn't used)
//
volatile uint32_t ePWM[(PWM_CH + 1)] = {0, EPWM1_BASE, EPWM2_BASE};
//
// Function Prototypes
//
void error(void);
void initEPWM1GPIO(void);
void initEPWM2GPIO(void);
void initEPWMModule(uint32_t base, uint32_t period);
void initHRPWMModule(uint32_t base, uint32_t period);
//
// Main
//
void main(void)
{
    uint16_t i;
    uint32_t base;
    //
    // Initialize device clock and peripherals
    //
    Device_init();
    //
    // Disable pin locks and enable internal pull-ups.
    //
    Device_initGPIO();
    //
    // Initialize PIE and clear PIE registers.
    //
    Interrupt_initModule();
    //
    // Initialize the PIE vector table with pointers to the shell Interrupt
    // Service Routines (ISR).
    //
    Interrupt_initVectorTable();
    //
    // Configure ePWM1 and ePWM2 GPIOs
    //
    initEPWM1GPIO();
    initEPWM2GPIO();
    //
    // Setup example variables
    //
    updateFine = 1;
    periodFine = 0;
    status = SFO_INCOMPLETE;
    //
    // Calling SFO() updates the HRMSTEP register with calibrated
    // MEP_ScaleFactor. HRMSTEP must be populated with a scale factor
    // value prior to enabling high resolution period control.
    //
    while(status == SFO_INCOMPLETE)
    {
        status = SFO();
        if(status == SFO_ERROR)
        {
            //
            // SFO function returns 2 if an error occurs & # of MEP
            // steps/coarse step exceeds maximum of 255.
            //
            error();
        }
    }
    //
    // EPWM & HRPWM configurations
    //
    SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
    for(i = 0; i < PWM_CH; i++)
    {
        base = EPWM1_BASE + (i * 0x100U);
        initHRPWMModule(base, 20U);
    }
    //
    // Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
    //
    EINT;
    ERTM;
    for(;;)
    {
        //
        // Sweep periodFine as a Q16 number from 0.2 - 0.999
        //
        for(periodFine = 0x3333; periodFine < 0xFFBF; periodFine++)
        {
            if(updateFine)
            {
                //
                // Because auto-conversion is enabled, the desired
                // fractional period must be written directly to the
                // TBPRDHR (or TBPRDHRM) register in Q16 format
                // (lower 8-bits are ignored)
                //
                // EPwm1Regs.TBPRDHR = periodFine;
                //
                // The hardware will automatically scale
                // the fractional period by the MEP_ScaleFactor
                // in the HRMSTEP register (which is updated
                // by the SFO calibration software).
                //
                // Hardware conversion:
                // MEP delay movement = ((TBPRDHR(15:0) >> 8) *  HRMSTEP(7:0) +
                //                       0x80) >> 8
                //
                for(i = 0; i < PWM_CH; i++)
                {
                    base = EPWM1_BASE + (i * 0x100U);
                    //
                    // Write fractional period value in Q16 format
                    //
                    HWREGH(base + HRPWM_O_TBPRDHR) = periodFine;
                }
            }
            else
            {
                //
                // No high-resolution movement on TBPRDHR.
                //
                for(i = 0; i < PWM_CH; i++)
                {
                    HWREGH(base + HRPWM_O_TBPRDHR) = 0U;
                }
            }
            //
            // Call the scale factor optimizer lib function SFO(0)
            // periodically to track for any change due to temp/voltage.
            // This function generates MEP_ScaleFactor by running the
            // MEP calibration module in the HRPWM logic. This scale
            // factor can be used for all HRPWM channels. HRMSTEP
            // register is automatically updated by the SFO function.
            // In background, MEP calibration module continuously updates
            // MEP_ScaleFactor
            //
            status = SFO();
            if(status == SFO_ERROR)
            {
                //
                // SFO function returns 2 if an error occurs & # of
                // MEP steps/coarse step exceeds maximum of 255.
                //
                error();
            }
        }
    }
}
//
// initHRPWMModule - Configure HRPWM module
//
void initHRPWMModule(uint32_t base, uint32_t period)
{
    //
    // Initialize HRPWM extension
    //
    HWREGH(base + HRPWM_O_CMPA) = (1U << 8U);
    HRPWM_setCounterCompareShadowLoadEvent(base, HRPWM_CHANNEL_A,
                                           HRPWM_LOAD_ON_CNTR_ZERO_PERIOD);
    HWREG(base + HRPWM_O_CMPB) |= (1U << 8U);
    HRPWM_setCounterCompareShadowLoadEvent(base, HRPWM_CHANNEL_B,
                                           HRPWM_LOAD_ON_CNTR_ZERO_PERIOD);
    //
    // Configure MEP edge & control mode for channel A & B. MEP Edge control is
    // on falling edge. Control mode is duty control.
    //
    HRPWM_setMEPEdgeSelect(base, HRPWM_CHANNEL_A,
                           HRPWM_MEP_CTRL_RISING_AND_FALLING_EDGE);
    HRPWM_setMEPControlMode(base, HRPWM_CHANNEL_A, HRPWM_MEP_DUTY_PERIOD_CTRL);

    HRPWM_setMEPEdgeSelect(base, HRPWM_CHANNEL_B,
                           HRPWM_MEP_CTRL_RISING_AND_FALLING_EDGE);
    HRPWM_setMEPControlMode(base, HRPWM_CHANNEL_B, HRPWM_MEP_DUTY_PERIOD_CTRL);
    //
    // Enable auto-conversion logic.
    //
    HRPWM_enableAutoConversion(base);
    //
    // Enable HRPWM phase synchronization on software sync. Required for
    // up-down count HR control.
    //
    HRPWM_enablePhaseShiftLoad(base);
    //
    // Enable high-resolution period control.
    //
    HRPWM_enablePeriodControl(base);
    //
    // Enable TBCLK within EPWM.
    //
    SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
    //
    // Synchronize high resolution phase to start HR period
    //
    EPWM_forceSyncPulse(base);
}

//
// initEPWM1GPIO - Configure ePWM GPIO
//
void initEPWM1GPIO(void)
{
    //
    // Disable pull up on GPIO 0 and GPIO 1 and configure them as PWM1A and
    // PWM1B output respectively.
    //
    GPIO_setPadConfig(0, GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_0_EPWM1A);
    GPIO_setPadConfig(1, GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_1_EPWM1B);
}
void error (void)
{
    //
    // Stop here and handle error
    //
    ESTOP0;
}
//
// End of file
//

ADCPRO: any known bug with dBFS scaling with ADS1282EVM?

$
0
0

Part Number: ADCPRO

Hello,

I've been gathering some data using ADCpro and a ADS1282EVM board.

I also process data with matLab to ease comparing spectra. I think I'm finding some lack of coherence. The two spectra below are supposed to be from the same data :

To scale according to dBFS I just divided all data by « Max Code » included in the data text file generated by ADCPro.

I’ve tried a few different PSD (power spectral density) calculation techniques in MatLab and the dBFS noise floor is always at the same place, like 30dB lower than what is indicated by ADCPro.

Reading older posts related to this kind of problems I found :

https://e2e.ti.com/support/data-converters/f/73/p/258714/904881?tisearch=e2e-sitesearch&keymatch=ads1282evm%25252520adcpro%25252520dbfs#904881

and

https://e2e.ti.com/support/data-converters/f/73/t/94449?tisearch=e2e-sitesearch&keymatch=%2520user%253A65187

The problem those users found could be the same I see.

In both cases there seems to be a possible bug in Y-scaling recognized from TI side, but in both cases the thread ends without a clear solution or work-around (as far as I can understand). Both are quite old.

Do you have updates on these topics ?

Would it be possible to have a detailed description on how dBFS values are calculated ?

IWR6843AOPEVM: Problem in running ROS point cloud visualizer or (driver demo) for IWR6843AOPEVM.

$
0
0

Part Number: IWR6843AOPEVM

Hi,

I have been trying to run the Lab entitled "ROS point cloud visualizer" from mmWave sensors Industrial Toolbox- 3.6.2 with the IWR6843AOPEVM and MMWAVEICEBOOST carrier board sensor platform. I am using mmwave_sdk_03_02_00_06_AOP for this.

I followed the whole TI_mmWave_ROS_Driver_Setup_Guide.pdf which was present with the toolbox. 

While connecting it to the Ubuntu system for visualization in Rviz, it is throwing the same error again and again.

Can anybody please help me out in solving the issue.

CCS/CC1352R: Find out connection state of BLE peripheral

$
0
0

Part Number: CC1352R

Tool/software: Code Composer Studio

Hy,

when porting an application from CC2640 (BLE SDK 2.01.00.44423) to CC1352 (SDK 3.10.0.53) I need to rewrite the following call:

if (getGapRole_state() != GAPROLE_CONNECTED)

How do I find out if I am connected?

Regards

Harald


CC1352P: Debugging issue - losing JTAG

$
0
0

Part Number: CC1352P

Hello,

I use XDS110 to debug my custom board based on CC1352P. I succesfully loaded the code on the target and I can begin step by step debugging. But when I reach the "PIN_init" function or "GPIO_init" function I lose the JTAG and I have the following message on code composer ("Cortex_M4_0: Error: (Error -1170 @ 0x0) Unable to access the DAP").

Do you know how to solve this issue.

Thank you for your help

TMDSHVMTRPFCKIT: Can we get parameters from TMDSHVMTRINSPIN?

$
0
0

Part Number: TMDSHVMTRPFCKIT

Dear TI Experts:

As we know, TMDSHVMTRPFCKIT and TMDSHVMTRINSPIN have the same hardware circuit, but with different controlcards.

The TMDSHVMTRINSPIN is so smart to spin a PMSM motor immediately via InstaSPIN-FOC GUI, where we can get the parameters Kp and KI for speed loop tuning, and the Kp and KI for current control (Iq PI control and Id PI conrtol).

For TMDSHVMTRPFCKIT, TI has provided different level experiments for the users. Now I am curious to know if we can directly apply these parameters obtained from the above InstaSPIN-FOC GUI to the TMDSHVMTRPFCKIT programming?  If YES, it may save us a lot of efforts. Does TI provide the related teaching material?

Look forward to hearing from you~

Wish you the best!

Tang Han

LM25066A: cancel TVS on LM25062/66

$
0
0

Part Number: LM25066A

Hi Team:

 it is known we will propose customer to use a clamped TVS to suppress the voltage energy when transient or hot wrap activity occurs, However, some Practical running results shows that once the TVS is failed to be short potentially, the end customer's system will shut down by the 12Vin BUS, which is a fatal system problem, end customer can let one rail of the 12V Efuse(LM25062/6) to be open when failure occurs but not affecting the 12Vin BUS's other server boards, so, end customers has great worry on the use of TVS at the front of Efuse (LM25062/6)side.

So, the problem we face is :

 if  TI customers want to discard using TVS at the front end of LM25062/6, do we have other solution to fix the original issue? or if we do not have the good solution and just delete TVS, Can we promise that LM25062/6 is safe during the worse case?

can you help to check if it is possible in the case that customer may switch to other competitors and there is no TVS.

Thanks very much!

 

CCS/TM4C123GH6PM: Trying to program MCU on a custom PCB using JTAG, expanded out from the EK-TM4C123GXL board's ICDI, but no longer able to connect

$
0
0

Part Number: TM4C123GH6PM

Tool/software: Code Composer Studio

I've created a custom PCB which I am programming by soldering wires onto the JTAG pins on the EK-TM4C123GXL evaluation board's ICDI and connecting them to a tag-connect wire which plugs onto my PCB.  While this was working perfectly fine only a few days ago when I last touched it, when I tried debugging it after adding a few extra lines this morning, the problems began.  The extra lines added were where I initialised UART1, and then wrote and read from that module as well as doing the same with UART0 which was already initialised.  For both UART modules I use UART_CLOCK_PIOSC as the clock source.

Whenever I connect my PCB and attempt to debug after powering up the board, I get "Error connecting to the target".  However, I've noticed that the pin's outputs clearly change from what they were upon power up -  certain pins which were previously high, now become low and some the other way but without any noticeable pattern on which pins are changed.  Therefore, it must mean that there is some sort of signal transferred over JTAG onto the device but CCS doesn't recognise it as being able to connect..

I have tried using LM Flash Programmer to unlock the debug port using the TM4C123 classes but that has failed to do anything and I still get the same error.  I am very concerned that I have bricked the MCU because this is the only copy of the PCB I have, which cost a fortune.  I will gratefully take any help I can get.  Thank you so much, I appreciate it.

Best wishes, Tai

BQ40Z80: Balance Time per mAh / Cell

$
0
0

Part Number: BQ40Z80

Hi,

I have many questions about to calculate the Balance Time per mAh cellx

What is the signification of "||" ?

RCVx, Rext and Rcb are in Ohms?

Vcell are in mV?

I've measured a 45% of duty cycle, should I use this value?

Best Regards,

Loïc

TCA9617A: VCCB leakage

$
0
0

Part Number: TCA9617A

Hi Team,

1. My customer sees 0.4 V leakage at VCCB when they switch VCCB off. It seems that the leakage comes from SDAA or SCLA from the highlighted description below, do you agree? And is there a way to solve this issue except switching to the B version? 

(In my customer's system, VCCA is a power rail which is always on while VCCB is the standby power which can be on and off from time-to-time)

I will send you the schematic via emai

2. Would you recommend to connect the I2C host at the B side since VCCB needs to be powered up before VCCA? Since the device side might not be used all the time?

Thanks!

Roy Hsu

MSP430FR6989: Get clock signal internally

$
0
0

Part Number: MSP430FR6989

Hello,

is it possible to get the current state (HIGH or LOW) of the clock signal without rounting the signal to a pin of the MSP430?

Regards

Tobi


LAUNCHXL-CC1352P: How to set TX power on CC1352P to less than +14dBm?

$
0
0

Part Number: LAUNCHXL-CC1352P

Team,

SRF7 Studio shows only +14 to +20 dBm selection options for CC1352P in the 50kbps, 2GFSK, 25 kHz DEV standard setting (779-930 MHz band).

What is the way to set or modify only the TX power to +10 dBm or +1 dBm for example?

All other settings shall stay unchanged (DataRate, DEV, ...)

Thanks and regards,

Milen

TMDSSOLARPEXPKIT: C2000™ microcontrollers forum

$
0
0

Part Number: TMDSSOLARPEXPKIT

I am using a little modified inverter from TMDSSOLARPEXPKIT. I supply diretly inverter standalone without MPPT algorithm and boost converter. I have trouble with synchronizing to the grid. 
After turning on inverter I lost SPLL.
My software regarding to PLL:

//Create and add module structure
SPLL_1ph_IQ spll1;
SPLL_1ph_IQ_NOTCH_COEFF spll_notch_coef1;

// Initialize module
// GRID_FREQ = 50, ISR_FREQ = 40000
SPLL_1ph_IQ_init(GRID_FREQ,_IQ21((float)(1.0/ISR_FREQ)),&spll1);
SPLL_1ph_IQ_notch_coeff_update(((float)(1.0/ISR_FREQ)),(float)(2*PI*50*2),(float)0.00001,(float)0.1,&spll1);

// Using the module
interrupt void Inv_ISR()
{

(...)

    Vac_in=(long)((long)Vac_FB<<przes_fdbvac)-Offset_Volt; // shift to convert to Q21
    spll1.AC_input=Vac_in>>1; 
    SPLL_1ph_IQ_MACRO(spll1);

    if (ResetPLL==1)
    {
	
        SPLL_1ph_IQ_init(GRID_FREQ,_IQ21((float)(1.0/ISR_FREQ)),&spll1);
        SPLL_1ph_IQ_notch_coeff_update(((float)(1.0/ISR_FREQ)),(float)(2*PI*50*2),(float)0.00001,(float)0.1,&spll1);
	ResetPLL=0;
    }

Also to voltage loop I am using still pidgrando module:

// Voltage loop
pidGRANDO_Vinv.term.Fbk = VdcRef; // 30V/ 39.97
pidGRANDO_Vinv.term.Ref = (Gui_VdcBus << 15); 

where Gui_VdcBus is supply of inverter voltage.

Do yopu have any ideas why I can ot synchronizing?

I try with different parameters in pidgrando module, but it can't help. I also recalculate notch filter coefficients with excel which is included in controlsuite. 

B0222,4121156
B1-221,9084911

LP5907: The PSRR

$
0
0

Part Number: LP5907

Hi Team,

The PSRR of LP5907 is 82 dB at 1 kHz.

1. What kind of application needs LDO has good PSRR at 1kHz?

2. For 1kHz PSRR, what kind of noise will be blocked?

Best regards,

C.T.

Inquire TI device to replace TNY277GN

$
0
0

Hi Sir,

Does TI have suitable solution can replace TNY277GN?

Thank you for your kindly help.

Edward Chen

The PSRR of LDO

$
0
0

Hi team,

Here are some question about PSRR of LDO:

1. PSRR is a capability that how much noise LDO can block, so the frequency of PSRR should meet the operation frequency of buck or boost converter, am I right?

2. The operation frequency of PWM converter is at 300KHz~2MHz, so why some of LDOs needs PSRR good at 1KHz?

3. What application needs high PSRR at 1KHz?

4. What application needs high PSRR at 100KHz?

5. How can I choose the right PSRR of LDO? based on the frequency PWM converter? Or any way I should follow?

Please help on this case, thank you very mcuh!

C.T.

Viewing all 262198 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>