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

TAS5782M: TAS5782 in TDM mode and support multi channel

$
0
0

Part Number:TAS5782M

i had several projects, which will support 5.1.2ch & 7.1.4ch,

and i use 6 pcs TAS5782M to design,

now, i have no sound output.

as below is my condition:

MCLK 24.576MHz
SCLK 12.288MHz = 256* 48
LRCLK 48K

Register 0x28 is 0x13, 32bit & data format is DSP.

0x29 is i2s shift.

May i miss the config or i need how to check the issue, thanks!

what the MCLK, SCLK is correct for me, thanks!


MSP430G2553: Issue With MSP430G2553 USCI module interrupts after BSL programming

$
0
0

Part Number:MSP430G2553

Hello,

I am trying BSL programming for MSP430G2553 using the app note slaa535a.pdf and LPAD_BSL_INTERFACE firmware downloaded from Texas website. I’m able to successfully program led blinky example code to 2553 chip and it works. My issue is when I program the UART loopback example code using bsl programming, it programs successfully but code is not working as expected. Below is the UART example code (I am using launch pad for testing).

//******************************************************************************

//   MSP430G2xx3 Demo - USCI_A0, 115200 UART Echo ISR, DCO SMCLK

//

//   Description: Echo a received character, RX ISR used. Normal mode is LPM0.

//   USCI_A0 RX interrupt triggers TX Echo.

//   Baud rate divider with 1MHz = 1MHz/115200 = ~8.7

//   ACLK = n/a, MCLK = SMCLK = CALxxx_1MHZ = 1MHz

//

//               MSP430G2xx3

//             -----------------

//         /|\|             XIN|-

//         | |                 |

//         --|RST         XOUT|-

//           |                 |

//          |     P1.2/UCA0TXD|------------>

//           |                 | 115200 - 8N1

//           |     P1.1/UCA0RXD|<------------

//

//   D. Dang

//   Texas Instruments Inc.

//   February 2011

//   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10

//******************************************************************************

#include "msp430g2553.h"

 

void main(void)

{

WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

BCSCTL1 = CALBC1_1MHZ;                   // Set DCO

DCOCTL = CALDCO_1MHZ;

P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD

P1SEL2 = BIT1 + BIT2;                    

UCA0CTL1 |= UCSSEL_2;                     // SMCLK

UCA0BR0 = 8;                             // 1MHz 115200

UCA0BR1 = 0;                             // 1MHz 115200

UCA0MCTL = UCBRS2 + UCBRS0;               // Modulation UCBRSx = 5

UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**

IE2 |= UCA0RXIE;                         // Enable USCI_A0 RX interrupt

 

__bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled

}

 

// Echo back RXed character, confirm TX buffer is ready first

#pragma vector=USCIAB0RX_VECTOR

__interrupt void USCI0RX_ISR(void)

{

while (!(IFG2&UCA0TXIFG));               // USCI_A0 TX buffer ready?

UCA0TXBUF = UCA0RXBUF;                   // TX -> RXed character

}

 

Before BSL programming this code is tested and it works when I program using ccs ide (I am getting UART TX and RX interrupts in debug mode). Same code when I program using BSL it is not working as I don’t receive any character in HyperTerminal.

To debug this I approached two methods.

  1. In the same chip, reprogram led blinky code using BSL approach, code is working.
  2. Now when I reprogram the same chip again with UART loop back example code using CCS ide in debug mode, I am not getting UART TX and RX interrupts at all (looks like somehow UART interrupts are permanently disabled when we do BSL programming)

Can somebody please help me to debug this issue.

Thank you,

Best regards,

ANKITH BR

 

TM4C1236H6PM: BULK USB communication with .Net Application

$
0
0

Part Number:TM4C1236H6PM

Hello All,

Iam want to establish USB Communication with PC Host Application to be built in VB.net

The TM4C123 MCU will act as device and data will be communicated through Bulk Transfer type.

I need to transfer approx 19000 Bytes / Second from device to host. I've been following the USB_DEV_BULK EXAMPLE in Tivaware . The USB_BULK_EXAMPLE application is written in Windows C and the header files (lmusbdll.h)have been developed from the lmusbdll.dll according to the application.

However I want to use the DLL in  VB.NET application . Iam taking reference of USB_BULK_EXAMPLE  but functions of lmusbdll.h cannot be used in VB.net. Is there any way to access the functions inside the DLL file or any example made in VB.net or C# ? I need suggestions how to go about forward with my project.

CC2650STK: How to know when an advertising signal reached the destination ?

$
0
0

Part Number:CC2650STK

Hi,

Is there a way to know in the CC2650STK's application if the advertising signal reached the destination or not ?

I'm using a CC2650STK as a sender and a CC2640R2 as a receiver.

Thank you .

DAC7822: Device availability

$
0
0

Part Number:DAC7822

Wondering if  I can have some help to check information regarding any production issues & lead times with part number DAC7822IRTARG4. THREAD ID: 1-24RDBNC opened with sales support in mid January with no updates so far.

TCA9539-Q1: Cross current through SDA / SCL ports via pullups

$
0
0

Part Number:TCA9539-Q1

Hello,

is there a riskt of cross current when power supply of the TCA9538 and the pull up resistors of the I2C interface aren´t on the same power domain?

Intention is to use several I2C slaves on the same bus like the TCA9538. Due to functional reasons the slaves and the MCU are on a continous power domain and has to be functional any time, but the port expander is supplied with a power domain, which can be switched of. So is there arisk to cross current into the switched power domain, via the pull up resistors?

Best regards

Raphael

TPS65987D: waking up MCU when USB cable is plugged in

$
0
0

Part Number:TPS65987D

Team, my customer has a question:

We need a signal from the TPS65987D that will wake up a microcontroller when a USB cable is plugged in.  It's not clear to me which signal can be used for this?

Secondly, if this signal is required to be configured at initialization, is this something we can set in our configuration NOR flash?

Thanks

Viktorija

Linux/TMDSLCDK138: Porting GTK+3

$
0
0

Part Number:TMDSLCDK138

Tool/software: Linux

Hi,

I am using TMSLCDK138 development board and latest SDK.

How can i port GTK+3 for this board.

Regards,

Allwyn


SN74AXCH8T245: Power up

Compiler/TMS320F28377S: cla_signed_compare_workaround

$
0
0

Part Number:TMS320F28377S

Tool/software: TI C/C++ Compiler

With compiler change from 18.0.x LTS --> 18.12.x LTS I receive the following warning.

"warning #30013-D:
   Comparison operation uses integer comparison instruction, which does not
   operate properly for values that would overflow subtraction.  Use
   --cla_signed_compare_workaround=on to have the compiler work around this
   issue."

Can anyboady provide further information ? Is this bug introduced with 18.12 or was it just detected with 18.12 ? Was it present with 18.0 ? What is the exact behaviour ? Is there documentation anywhere ?

Thanks!

BQ25601: BQ25601 VQON

$
0
0

Part Number:BQ25601

Dear,

We want to check the pull-up voltage of QON pin about BQ25601. Could you help to check it?Thanks!

TMS320F28377S: F28xxx and functional Safety?

$
0
0

Part Number:TMS320F28377S

Team,

-We have today the below C2000 Tools to help with IEC60730 compliance:
    http://www.ti.com/tool/C2000-SAFETI-DIAGNOSTICS-LIB
    http://www.ti.com/tool/iec60730swpackages

Provided that an application should be able to achieve SIL2 requirements of the Cenelec EN50129/EN50128 railway regulation:
-Can this be achieved by the C2000 Software with the C2000 TI SW package TI provides?

-Or some HW changes are required? is an additional MCU required (like TMS570)?

-Do we have a concept of Safety application using both TMS570 and C2000 that could be potentially used for railway traction?

Thanks in advance,

A.

CCS/LAUNCHXL-CC1312R1: 6lowpan TI code examle - forever loop from probably wrong verasion of ROM image

$
0
0

Part Number:LAUNCHXL-CC1312R1

Tool/software: Code Composer Studio

hi all,

i'm trying to lunch 6LOWPAN TI code example on CC1312R1 EVB.

when i run the example with debug mode on the board it doesn't stop at the main, but in this loop:

Void ti_sysbios_rom_cortexm_cc26xx_agama_CC26xx_badRomRevision__E()

{
/* Loop here forever if application is built with wrong version of ROM image */
while(1)

{
;
}

}

do you have any IDEA what is the problem, or what can solve it?

thanks,

V

Linux/AM3352: About the leakage issue

$
0
0

Part Number:AM3352

Tool/software: Linux

Hi SIr 

We used AM3352 with TPS65910 for design. and We found the residual voltage coming from CPU before booting

After investigating, we found we offered 5VSTB voltage to PHY first before PMIC power-on. And we measured the VMMC pin of PMIC was about 1.4V.

if we remove 5VSTB or L102 as below , the VMMC pin is 0v before PMIC power-on.

Q1: Could TIer advise for susceptibility of AM335x for residual voltage as observed 

Q2: Does CPU have any risk for this or other suggestion.

BR

Yimin

TPS40170: HDRV and LDRV of TPS40170 are no working

$
0
0

Part Number:TPS40170

Hi,

I am designing a 5V and 4V output with 3A power suplly with the TPS40170. I have a protoytpe now where the VBP and VDD can be measured but i can´t switch the MOSFET, because not switching signal on LDRV and HDRV, what could be the problem? I measurde all the voltage and they are in the range.

Thanks


CCS/TMS320F28069M: Lab 13f - Dual Motor Sensored Position problem

$
0
0

Part Number:TMS320F28069M

Tool/software: Code Composer Studio

Hello

I am having problem running the motors when running my modified lab 13f on my TMS320F28069M with two DRV8305EVM. The modification is to have HALL sensors instead of encoders.

This modification part I feel work fine because the st_obj[0].pos.conv.Pos_mrev is increased 1 with each manual turning of motor. The problem is that the motor does not run when I set gMotorVars[0].PosStepInt_MRev = 1 and then gMotorVars[0].RunPositionProfile = 1 (actually have to do it three times, motor locked first two times).

What is happening third time is that gMotorVars[0].SpinTAC.PosMoveStatus = ST_MOVE_IDLE->ST_MOVE_BUSY->ST_MOVE_IDLE very fast. I can manualy rotate the motor easy one revolution and then the motor locks the position. I also see gMotorVars[0].SpinTAC.PosCtlErrorID = 2002 during easy rotation. At the samt time gMotorVars[0].SpinTAC.PosCtlStatus = ST_CTL_IDLE during easy rotation and when locked it is changed to ST_CTL_BUSY.

Same behaviour for both motors.

I have tried so many things but I just cant get the motor to move. It feels like it knows where to go but refuse to move.

Should mention that I run several previous labs including 12a where motor runs smothly also with modified to HALL sensor. Same user_j1.h file used for user_mtr_on_j1.h and user_mtr_on_j5.h in the two labs.

Please help me.

Thanks

Johan

CCS/MSP430G2553: Emon code for MSP430 (energy monitor code) not working

$
0
0

Part Number:MSP430G2553

Tool/software: Code Composer Studio

Hello everyone, I'm trying to translate the Arduino Emon code library into the MSP430. Basically the code calculates the RMS voltage, RMS current, active power, reactive power and the power factor.

To simulate a signal from the ZMPT101b voltage sensor, I am using a signal generator with a 60 Hz sinusoid, as shown in the figure below:

This is my code:

#include <msp430g2553.h>
#include <stdlib.h> //Use for rand() function
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>

#define ADC_BITS  10
#define ADC_COUNTS  (1<<ADC_BITS)
const int TIPO_TC = 0;  //0-> 0-5 A; 1-> 0-10 A;2-> 0-20A

void ADC_Config_Sequence_Channel_Mode(void);
void Clock_Config(void);
void GPIO_Config(void);
void UART_Config(void);

float offsetV = ADC_COUNTS >> 1;
float filteredV = 0;
float sqV = 0;
float sumV = 0;
float Vrms = 0;

float offsetI = ADC_COUNTS >> 1;
float filteredI = 0;
float sqI = 0;
float sumI = 0;
float Irms = 0;

float phaseShiftedV = 0;
float phaseShiftedI = 0;
float instP = 0;
float sumP = 0;
float realPower = 0;
float apparentPower = 0;
float powerFactor = 0;

//----------------------CALIBRATION-------------------
float VCAL = 681.5;//681.5; //631
float ICAL = 7.6;//7.6; //2.925
float PHASECAL = 0.783;//0.783; //1.9
//----------------------------------------------------

int lastVCross;
int checkVCross;

int SupplyVoltage = 3300;
float ruido = 0;//0.15;// 0.05;

unsigned int contador_1 = 0;
unsigned int contador_2 = 0;

unsigned int crossCount = 0;                                    //Used to measure number of times threshold is crossed.
unsigned int numberOfSamples = 0;                        //This is now incremented
unsigned int startV;

int crossings = 500;
int timeout = 1000;

float lastFilteredI;
float lastFilteredV;
unsigned int sampleV;
unsigned int sampleI;
float V_RATIO;
float I_RATIO;

  V_RATIO = (float) VCAL * ((SupplyVoltage / 1000.0) / (ADC_COUNTS));
  I_RATIO = (float) ICAL * ((SupplyVoltage / 1000.0) / (ADC_COUNTS));

unsigned int read_samples[2];

int STATE = 0;
int TXByte = 0;

int main(void)
{
    Clock_Config();
    GPIO_Config();
    UART_Config();
    ADC_Config_Sequence_Channel_Mode();

    __bis_SR_register(GIE);

    while(1)
    {
//-------------------------------------------------------------------------------------------------------------------------
// STATE = 0 Read de start voltage by interrupt.
//-------------------------------------------------------------------------------------------------------------------------

        if (STATE == 0)
        {
            ADC10DTC1 = 0x01;
            ADC10CTL0 |= ENC + ADC10SC;
            STATE = 1;
        }
//-------------------------------------------------------------------------------------------------------------------------
// STATE = 2 Waits for the waveform to be close to 'zero' (mid-scale adc) part in sin curve.
//-------------------------------------------------------------------------------------------------------------------------

if (STATE == 2)
        {
            if ((startV > (ADC_COUNTS * 0.45)) && (startV < (ADC_COUNTS * 0.55)))
            {
                contador_2 = 0;
                STATE = 3;
            }
            else if (contador_1 > timeout)
            {
                contador_2 = 0;
                STATE = 3;
            }
            else
                STATE = 0;
        }
//-------------------------------------------------------------------------------------------------------------------------
// STATE = 3 Main measurement loop
//-------------------------------------------------------------------------------------------------------------------------

        if (STATE == 3)
        {
            if ((crossCount < crossings) && (contador_2 < timeout))
            {
                numberOfSamples++;                                  // Count number of times looped.
                lastFilteredV = filteredV;                               // Used for delay/phase compensation
//-----------------------------------------------------------------------------
//STATE = 4 Read in raw voltage and current samples by interrupt
//-----------------------------------------------------------------------------

                ADC10DTC1 = 0x02;
                ADC10CTL0 |= ENC + ADC10SC;
                STATE = 4;
            }
            else
            {

               //-------------------------------------------------------------------------------------------------------------------------
               // Post loop calculations
               //-------------------------------------------------------------------------------------------------------------------------
               //Calculation of the root of the mean of the voltage and current squared (rms)
               //Calibration coefficients applied.
          
                Vrms = (float) V_RATIO *sqrtf( sumV / numberOfSamples);
                Irms = (float) I_RATIO *sqrtf( sumI / numberOfSamples);

                realPower = (float) V_RATIO * I_RATIO * (sumP / numberOfSamples);
                apparentPower = (float) Vrms * Irms;
                powerFactor = (float) realPower / apparentPower;
                sumV = 0;
                sumI = 0;
                sumP = 0;
                contador_1 = 0;
                contador_2 = 0;
                STATE = 0;                     //Return to STATE = 0. Starts new calculations
                crossCount = 0;
                numberOfSamples = 0;
            }
        }

        if (STATE == 5)
        {

           //-----------------------------------------------------------------------------
           // STATE = 5 Apply digital low pass filters to extract the 2.5 V or 1.65 V dc offset,
           // then subtract this - signal is now centred on 0 counts.
           //-----------------------------------------------------------------------------
            offsetV = offsetV + ((sampleV - offsetV) / 1024);
            filteredV = sampleV - offsetV;
            offsetI = offsetI + ((sampleI - offsetI) / 1024);
            filteredI = sampleI - offsetI;
            
           //-----------------------------------------------------------------------------
           // Root-mean-square method voltage and current
           //-----------------------------------------------------------------------------
            sqV = (float) filteredV * filteredV;                                    //1) square voltage values
            sumV += sqV;                                                            //2) sum

            sqI = (float) filteredI * filteredI;                                    //1) square current values
            sumI += sqI;                                                            //2) sum
       
           //-----------------------------------------------------------------------------
           // Phase calibration
           //-----------------------------------------------------------------------------
            phaseShiftedV = (float) lastFilteredV + PHASECAL * (filteredV - lastFilteredV);

            //-----------------------------------------------------------------------------
            //  Instantaneous power calc
            //-----------------------------------------------------------------------------
            instP = (float) phaseShiftedV * filteredI;                              //Instantaneous Power
            sumP += instP;                                                          //Sum
           
            //-----------------------------------------------------------------------------
            // Find the number of times the voltage has crossed the initial voltage
            // - every 2 crosses we will have sampled 1 wavelength
            // - so this method allows us to sample an integer number of half wavelengths which increases accuracy
            //-----------------------------------------------------------------------------
            lastVCross = checkVCross;

            if (sampleV > startV)
                checkVCross = 1;
            else
                checkVCross = 0;

            if (numberOfSamples == 1)
                lastVCross = checkVCross;

            if (lastVCross != checkVCross)
                crossCount++;

            contador_2++;
            STATE = 3;          //Return to STATE = 3.
        }
    }
}

#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
    if (STATE == 1)
    {
        startV = read_samples[0];             //read raw start voltage
        STATE = 2;
        contador_1++;
    }
    else if (STATE == 4)
    {
        sampleV = read_samples[0];            //read raw votage sample
        sampleI = read_samples[1];            //read raw current sample
        STATE = 5;
        IE2 |= UCA0TXIE;
    }
    ADC10SA = &read_samples[0];
}

#pragma vector = USCIAB0TX_VECTOR
__interrupt void USCIAB0TX_ISR(void)
{
    if (IFG2 & UCA0TXIFG)
    {
        if (TXByte == 0)
            UCA0TXBUF = (int)Vrms;
        if (TXByte == 1)
            UCA0TXBUF = (int)Irms;
        TXByte++;
        if (TXByte == 2)
        {
            TXByte = 0;
            IE2 &= ~UCA0TXIE;
        }
    }
}
void Clock_Config(void)
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
    if (CALBC1_16MHZ==0xFF)                   // If calibration constant erased
        while(1);                             // do not load, trap CPU!!
    DCOCTL = 0;                               // Select lowest DCOx and MODx settings
    BCSCTL1 = CALBC1_16MHZ;                   // Set DCO
    DCOCTL = CALDCO_16MHZ;
}

void ADC_Config_Sequence_Channel_Mode(void)
{
    ADC10CTL1 = INCH_5 + CONSEQ_1 + ADC10SSEL_3;
    ADC10CTL0 = ADC10SHT_0 + MSC + REFON + ADC10ON + ADC10IE;
    ADC10DTC1 = 0x02;
    ADC10AE0 |= BIT4 + BIT5;
    ADC10SA = &read_samples[0];
}

void GPIO_Config(void)
{
    P1DIR |= BIT1 + BIT2;
    P1DIR &= ~(BIT4+BIT5);
    P1OUT |= BIT1 + BIT2;
}

void UART_Config(void)
{
    P1SEL |= BIT1 + BIT2;                     // P1.1 = RXD, P1.2=TXD
    P1SEL2 |= BIT1 + BIT2;                    // P1.1 = RXD, P1.2=TXD
    UCA0CTL1 |= UCSWRST;
    UCA0CTL0 |= UCMODE_0;
    UCA0CTL1 = UCSSEL_2 + UCSWRST;            // UCSSEL_2 = SMCLK; UCSWRST = Reset
    UCA0BR0 = 104;                            // 16MHz 9600
    UCA0BR1 = 0;                              // 16MHz 9600
    UCA0MCTL |= UCBRF2 + UCBRF1 + UCOS16;      // Modulation UCBRSx = 0, UCBRFx = 3, UCOS16 = 1
    UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
    IE2 |= UCA0RXIE;
}

But when I start the code, the data sent by the UART is random. And when I simply change the ADC10SHT from ADC10SHT_3 to ADC10SHT_0, the MSP does not send anything else to the UART.

Could someone help me understand where the error is? The code for arduino is in this link: https://community.openenergymonitor.org/t/emon-arduino-program-code/7049

ADS1278: Aliasing of sigma delta ADC (Wide Bandwidth Filter)

$
0
0

Part Number:ADS1278

Hello,

I have a question related to aliasing in the sigma delta ADCs. TI offers several converters (ADS1278, ADS1675) with wide-bandwidth filters inside. They are flat up fs/2 and provide great attenuation above fs/2, close to a perfect world. Obviously the real filter must have some transition band and I am trying to understand the exact location of it.

My question: why the transition of filter is located around fs/2 rather than to attenuate fully at fs/2. In case of the ADS1248 it is 0.453/0.547 fs (so fs+/-0.047). For the ADS1675 the transition is located at 0.5fs+/-0.076.

Am I correct that some amount of aliasing for above converters will happen, in a case of the ADS1248 for input frequencies from 0.5fs to 0.547fs and in the sampled signal they will appear in the region 0.453fs to 0.5fs? Is that aliasing a problem? I suspect that a trade-off must have been made between a useful bandwidth and amount of the aliasing, otherwise the transition would be located between 0.4fs to 0.5fs what would guarantee no aliasing at all.

Regards,

Robert

Compiler/TM4C1294KCPDT: Linking error of Unreferenced symbols GPIOTiva_config, I2C_config and PWM_config strctures

$
0
0

Part Number:TM4C1294KCPDT

Tool/software: TI C/C++ Compiler

Hi Everyone,

I am creating one project and for separating the Hardware dependencies i created one Hal Library. In my application instead of calling actual ti driver calls i'm using Hal library to call the ti drivers. All the ti related includes and dependencies i kept in Hal library and i,m including Hal.h in my application. When i'm calling from my application i'm getting a linking error  of GPIOTiva_config, I2C_config and PWM_config strctures.

Can anyone give the solution for this.

Please find below information.

(Please visit the site to view this file)

Thanks in advance.

WL1837MOD: Brazilian Modular Approval

$
0
0

Part Number:WL1837MOD

Hi,

I'm about to start the Anatel approval process in Brazil for a product that uses the WL1837MOD.

Is there any modular approval for the WL1837 for this product or is there only approval for FCC, CE, ISED and Japan?

Thanks,

Andrew

Viewing all 262198 articles
Browse latest View live


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