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

AWR1642: mmwave studio error: connection failed: calling_ConnectTarget return 3

$
0
0

Part Number:AWR1642

Hi, there,

I tried to use mmWave Studio to collect raw data with DCA1000 and my AWR1642 board. It is not the EVB. I am using an external XDS110 Debug Probe. When I launch the mmWave Studio and tried to connect to RS232 (XDS110 Class Application/User UART). I got the error: connection failed: calling_ConnectTarget return 3. Can you please help what it means and what could be wrong?

Thanks, Ke


TMS320F280049C: Motor Control SDK information needed.

$
0
0

Part Number:TMS320F280049C

Hello,

We are designing a motor control card the use the TMS320F280049C.  I see the Motor Control SDK is not to be released till March. We need to start development now.  Is there Beta version or any other information we can get now to get started?

Regards, Rich Lee

usmotion.com

CCS/LAUNCHXL-F28027F: target not connected message when it is connected

$
0
0

Part Number:LAUNCHXL-F28027F

Tool/software: Code Composer Studio

I did have it working at one time. I was able to debug a lab01 code. The next day, I started getting this message:

Texas Instruments XDS100v2 USB Debug Probe_0/C28xx : Target must be connected before loading program.

even though it is connected. Or at least I think it is. Am I missing something?

IWR6843: waveguide grounding vias dimensions

$
0
0

Part Number:IWR6843

In the SPRACG5 application note it mentions that "placement error on ground vias around the transmission line have detrimental impact on its characteristics such as its impedance and bandwidth". It would presumably follow then that via size (drill and annular ring) would also have an impact?

After discussion with PCB manufacturers (US-based), it seems that a 6mil hole with 14mil outer ring diameter, as opposed to the 5.9mil with 13.77mil ring used in the IWR6843ISK, would be more standard and cost-effective.

Should these be relatively equivalent in terms of RF performance?

Stack layer for Zigbee

$
0
0

Hi,

In my project I want to use my personal PHY layer, If we suppose there are 3 layers for WSN. 1. PHY layer 2. MAC layer 3, Network layer. therefor my idea is using available network layer and upload it in to the micro-controller, then I will develop my MAC layer for accommodate my personal PHY layer and available network layer. Finally  I want to know is there any stack layer or network layer to implement in to the micro-controller. my idea is similar to the flowing picture:

TLC5958: Is there independent brightness control

$
0
0

Part Number:TLC5958

Hello team,

Hope you are doing well. When you get a chance please see below customer questions:

Is there independent brightness control of each individual output pin or are OUTG, OUTR, and OUTB controlled only as whole groups?

If so, is there any further documentation aside from the datasheet and application note on the site we can have access to?

CCS/TMS320F28027: AC motor drive using a three phase inverter

$
0
0

Part Number:TMS320F28027

Tool/software: Code Composer Studio

Hi 

I am creating an open loop AC motor driver using PWM modules and serial communication to control the SPWM frequency of the output signal. However the frequency command is transmitted using serial port terminal and from the variables window i am able to observe the frequency and timer register updated yet the practical output voltage waveform does not update to a new frequency command entered. please help

//------------------------------------------------------------------------------------
#include <stdio.h>
#include <file.h>
#include "DSP28x_Project.h" // DSP28x Headerfile
#include "common/include/F2802x_GlobalPrototypes.h"
#include "common/include/pll.h"
#include "common/include/clk.h"
#include "common/include/wdog.h"
#include "common/include/flash.h"
#include "common/include/gpio.h"
#include "common/include/pie.h"
#include "common/include/adc.h"
#include "common/include/sci.h"
#include "common/include/sci_io.h"
#include "common/include/pwm.h"
#include "common/include/timer.h"
//#include "f2802x_common/include/IQmathLib.h" //IQmath Library header file
#include "C:\ti\c2000\C2000Ware_1_00_05_00\libraries\math\IQmath\c28\include/IQmathLib.h" //IQmath Library header file

extern void DSP28x_usDelay(Uint32 Count);
#pragma DATA_SECTION(sine_table,"IQmathTables"); //IQmath ROM sine table
_iq30 sine_table[512];

interrupt void cpu_timer0_isr(void); //Interrupt prototype function for timer0
void update_compare(void);
void sci_init();
interrupt void sciaRxIsr(void);
void set_ma();
void scia_xmit(int a);
void send_msg();
unsigned char msg[]="\nFrequency: ";
void scia_intpt_en();
void scia_fifo_init();
void timer0_init();
void pwm_init();
void pie_init();

//Global PWM variables
#define EPWM1_TIMER_TBPRD 1200 // Period register for 25000 Hz
#define PHASE 120.0 // Defines the real in degrees phase between phases, 120deg

unsigned int TTIMERREG=5859;
float ma;
unsigned int frequency[] = {30,30};


Uint16 EPWM_PHASE=(EPWM1_TIMER_TBPRD*PHASE/180.0); //The phase as seen from the EPWM module
Uint16 duty_cycle_A=1000; // Set duty 50% initially
Uint16 duty_cycle_B=1000; // Set duty 50% initially
Uint16 index=0; // Zero degrees sine
Uint16 index2=170; // 120 degrees sine difference
Uint16 index3=340; // 240 degrees sine difffence

// Handles setup
CPU_Handle myCpu;
PLL_Handle myPll;
WDOG_Handle myWDog;
CLK_Handle myClk;
ADC_Handle myAdc;
FLASH_Handle myFlash;
GPIO_Handle myGpio;
PIE_Handle myPie;
SCI_Handle mySci;
PWM_Handle PWMA,PWMB,PWMC;
TIMER_Handle myTimer0;

void main()
{

//unsigned int current = 0;
// Handles initialization

myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));
myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));
myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj));
myFlash = FLASH_init((void *)FLASH_BASE_ADDR, sizeof(FLASH_Obj));
myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));
myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj));
mySci = SCI_init((void *)SCIA_BASE_ADDR, sizeof(SCI_Obj));
myAdc = ADC_init((void *)ADC_BASE_ADDR, sizeof(ADC_Obj));
PWMA = PWM_init((void *)PWM_ePWM1_BASE_ADDR, sizeof(PWM_Obj));
PWMB = PWM_init((void *)PWM_ePWM2_BASE_ADDR, sizeof(PWM_Obj));
PWMC = PWM_init((void *)PWM_ePWM3_BASE_ADDR, sizeof(PWM_Obj));
myTimer0 = TIMER_init((void *)TIMER0_BASE_ADDR, sizeof(TIMER_Obj));

//Disable watchcdog
WDOG_disable(myWDog);
//Device calibration for the adc
(*Device_cal)();
//Sets the internal oscillator source
CLK_setOscSrc(myClk, CLK_OscSrc_Internal);
// Setup the PLL for x10 /2 which will yield 60Mhz = 10Mhz * 12 / 2
PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);

//Disable the PIE peripheral and all the interupts
PIE_disable(myPie);
PIE_disableAllInts(myPie);
CPU_disableGlobalInts(myCpu);
CPU_clearIntFlags(myCpu);
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif

pie_init();
// Initalize GPIO
GPIO_setPullUp(myGpio, GPIO_Number_28, GPIO_PullUp_Enable);
GPIO_setPullUp(myGpio, GPIO_Number_29, GPIO_PullUp_Disable);
GPIO_setQualification(myGpio, GPIO_Number_28, GPIO_Qual_ASync);
GPIO_setMode(myGpio, GPIO_Number_28, GPIO_28_Mode_SCIRXDA);
GPIO_setMode(myGpio, GPIO_Number_29, GPIO_29_Mode_SCITXDA);

// Initialize GPIO for the EPWM1A and EPWM1B
GPIO_setPullUp(myGpio, GPIO_Number_0, GPIO_PullUp_Disable);
GPIO_setPullUp(myGpio, GPIO_Number_1, GPIO_PullUp_Disable);
GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_EPWM1A);
GPIO_setMode(myGpio, GPIO_Number_1, GPIO_1_Mode_EPWM1B);
GPIO_setDirection(myGpio,GPIO_Number_0,GPIO_Direction_Output);
GPIO_setDirection(myGpio,GPIO_Number_1,GPIO_Direction_Output);

// Initialize GPIO for the EPWM2A and EPWM2B
GPIO_setPullUp(myGpio, GPIO_Number_2, GPIO_PullUp_Disable);
GPIO_setPullUp(myGpio, GPIO_Number_3, GPIO_PullUp_Disable);
GPIO_setMode(myGpio, GPIO_Number_2, GPIO_2_Mode_EPWM2A);
GPIO_setMode(myGpio, GPIO_Number_3, GPIO_3_Mode_EPWM2B);
GPIO_setDirection(myGpio,GPIO_Number_2,GPIO_Direction_Output);
GPIO_setDirection(myGpio,GPIO_Number_3,GPIO_Direction_Output);
// Initialize GPIO for the EPWM2A and EPWM2B
GPIO_setPullUp(myGpio, GPIO_Number_4, GPIO_PullUp_Disable);
GPIO_setPullUp(myGpio, GPIO_Number_5, GPIO_PullUp_Disable);
GPIO_setMode(myGpio, GPIO_Number_4, GPIO_4_Mode_EPWM3A);
GPIO_setMode(myGpio, GPIO_Number_5, GPIO_5_Mode_EPWM3B);
GPIO_setDirection(myGpio,GPIO_Number_4,GPIO_Direction_Output);
GPIO_setDirection(myGpio,GPIO_Number_5,GPIO_Direction_Output);

CLK_disableTbClockSync(myClk);
pwm_init();
CLK_enableTbClockSync(myClk);

timer0_init();
scia_intpt_en();
sci_init();
send_msg();


while(1);

}

interrupt void sciaRxIsr(void)
{
frequency[0] = SCI_getData(mySci);
PIE_clearInt(myPie, PIE_GroupNumber_9);

}

//serial communication setup
void scia_intpt_en()
{
PIE_enable(myPie);
PIE_registerPieIntHandler(myPie, PIE_GroupNumber_9, PIE_SubGroupNumber_1, (intVec_t)&sciaRxIsr);
PIE_enableInt(myPie, PIE_GroupNumber_9, PIE_InterruptSource_SCIARX);
CPU_enableInt(myCpu, CPU_IntNumber_9);
CPU_enableGlobalInts(myCpu); // Enable Global Interrupts

CPU_enableDebugInt(myCpu);
}

void sci_init()
{
CLK_enableSciaClock(myClk);

// 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SCI_disableParity(mySci);
SCI_setNumStopBits(mySci, SCI_NumStopBits_One);
SCI_setCharLength(mySci, SCI_CharLength_8_Bits);

// enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
SCI_enableTx(mySci);
SCI_enableRx(mySci);
SCI_enableTxInt(mySci);
SCI_enableRxInt(mySci);

//SCI_enableLoopBack(mySci);

// SCI BRR = LSPCLK/(SCI BAUDx8) - 1
#if (CPU_FRQ_60MHZ)
SCI_setBaudRate(mySci, SCI_BaudRate_9_6_kBaud);
#elif (CPU_FRQ_50MHZ)
SCI_setBaudRate(mySci, (SCI_BaudRate_e)162);
#elif (CPU_FRQ_40MHZ)
SCI_setBaudRate(mySci, (SCI_BaudRate_e)129);
#endif

SCI_enable(mySci);

return;
}


void scia_xmit(int a)
{
while(SCI_getTxFifoStatus(mySci) != SCI_FifoStatus_Empty); //while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
SCI_putDataBlocking(mySci, a); // SciaRegs.SCITXBUF=a;
}

void send_msg()
{
int i=0;
while(msg[i]!='\0')
{
scia_xmit(msg[i]);
i++;
}
}

//PWM settings
void pwm_init()
{
// PWMA initialization
CLK_enablePwmClock(myClk, PWM_Number_1);
//PWMA initialiazation
// Setup TBCLK
PWM_setPeriod(PWMA,EPWM1_TIMER_TBPRD); // Set timer period
EPwm1Regs.TBPHS.half.TBPHS = 0; // Set Phase Register to zero
PWM_setCounterMode(PWMA,PWM_CounterMode_UpDown); // Count up-down, Symmetrical mode
PWM_setSyncMode(PWMA,PWM_SyncMode_Disable); // Master module
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Sync down-stream module

// Setup shadowing
PWM_setShadowMode_CmpA(PWMA, PWM_ShadowMode_Shadow);
PWM_setShadowMode_CmpB(PWMA, PWM_ShadowMode_Shadow);
PWM_setLoadMode_CmpA(PWMA, PWM_LoadMode_Zero);
PWM_setLoadMode_CmpB(PWMA, PWM_LoadMode_Zero);

PWM_disableCounterLoad(PWMA); // Disable phase loading

PWM_setCount(PWMA, 0x0000); // Clear counter
PWM_setClkDiv(PWMA, PWM_ClkDiv_by_1);
PWM_setHighSpeedClkDiv(PWMA, PWM_HspClkDiv_by_1); // Clock ratio to SYSCLKOUT

// Set actions
PWM_setActionQual_CntUp_CmpA_PwmA(PWMA, PWM_ActionQual_Set); // Set PWM1A on event A, up count
PWM_setActionQual_CntDown_CmpA_PwmA(PWMA, PWM_ActionQual_Clear); // Clear PWM1A on event A, down count
PWM_setCmpA(PWMA,1000); //Initial duty cycle
PWM_setCmpB(PWMA,1000);

EPwm1Regs.DBCTL.bit.OUT_MODE= DB_FULL_ENABLE; // enable Dead-band module
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
EPwm1Regs.DBFED = 50; // FED = 50 TBCLKs
EPwm1Regs.DBRED = 50; // RED = 50 TBCLKs

//--------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------
//PWMB initialization
CLK_enablePwmClock(myClk, PWM_Number_2);
// Setup TBCLK

PWM_setPeriod(PWMB,EPWM1_TIMER_TBPRD); // Set timer period
EPwm2Regs.TBPHS.half.TBPHS = 0; // Set Phase register to zero
PWM_setCounterMode(PWMB,PWM_CounterMode_UpDown); // Count up-down Symmetrical mode
EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; // Slave module
EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // sync flow-through

// Setup shadowing
PWM_setShadowMode_CmpA(PWMB, PWM_ShadowMode_Shadow);
PWM_setShadowMode_CmpB(PWMB, PWM_ShadowMode_Shadow);
PWM_setLoadMode_CmpA(PWMB, PWM_LoadMode_Zero);
PWM_setLoadMode_CmpB(PWMB, PWM_LoadMode_Zero);

// Set actions
PWM_setActionQual_CntUp_CmpA_PwmA(PWMB, PWM_ActionQual_Set); // Set PWM2A on event A, up count
PWM_setActionQual_CntDown_CmpA_PwmA(PWMB, PWM_ActionQual_Clear); // Clear PWM2A on event A, down count

PWM_enableCounterLoad(PWMB);

PWM_setCount(PWMB, 0x0000); // Clear counter
PWM_setClkDiv(PWMB, PWM_ClkDiv_by_1);
PWM_setHighSpeedClkDiv(PWMB, PWM_HspClkDiv_by_1); // Clock ratio to SYSCLKOUT

PWM_setCmpA(PWMB,1000); //Initial duty cycle
PWM_setCmpB(PWMB,1000);

EPwm2Regs.DBCTL.bit.OUT_MODE= DB_FULL_ENABLE; // enable Dead-band module
EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
EPwm2Regs.DBFED = 50; // FED = 20 TBCLKs
EPwm2Regs.DBRED = 50; // RED = 20 TBCLKs

//---------------------------------------------------------------------------------------------------------------
//PWMC initialization
CLK_enablePwmClock(myClk, PWM_Number_3);
// Setup TBCLK
PWM_setPeriod(PWMC,EPWM1_TIMER_TBPRD); // Set timer period
EPwm3Regs.TBPHS.half.TBPHS = 0; // Set Phase register to zero
PWM_setCounterMode(PWMC,PWM_CounterMode_UpDown); // Count up-down
EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE; // Slave module
EPwm3Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // sync flow-through

// Setup shadowing
PWM_setShadowMode_CmpA(PWMC, PWM_ShadowMode_Shadow);
PWM_setShadowMode_CmpB(PWMC, PWM_ShadowMode_Shadow);
PWM_setLoadMode_CmpA(PWMC, PWM_LoadMode_Zero);
PWM_setLoadMode_CmpB(PWMC, PWM_LoadMode_Zero);

PWM_enableCounterLoad(PWMC);

PWM_setCount(PWMC, 0x0000); // Clear counter
PWM_setClkDiv(PWMC, PWM_ClkDiv_by_1);
PWM_setHighSpeedClkDiv(PWMC, PWM_HspClkDiv_by_1); // Clock ratio to SYSCLKOUT

PWM_setCmpA(PWMC,1000); //Initial duty cycle
PWM_setCmpB(PWMC,1000);
// Set actions
PWM_setActionQual_CntUp_CmpA_PwmA(PWMC, PWM_ActionQual_Set); // Set PWM3A on event A, up count
PWM_setActionQual_CntDown_CmpA_PwmA(PWMC, PWM_ActionQual_Clear); // Clear PWM3A on event A, down count

EPwm3Regs.DBCTL.bit.OUT_MODE= DB_FULL_ENABLE; // enable Dead-band module
EPwm3Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
EPwm3Regs.DBFED = 50; // FED = 50 TBCLKs
EPwm3Regs.DBRED = 50; // RED = 50 TBCLKs

//CLK_enableTbClockSync(myClk);
}
//Timer settings
void timer0_init()
{
TIMER_stop(myTimer0);
TIMER_setPeriod(myTimer0,TTIMERREG);
TIMER_setPreScaler(myTimer0,0);
TIMER_reload(myTimer0);
TIMER_setEmulationMode(myTimer0, TIMER_EmulationMode_StopAfterNextDecrement);
TIMER_enableInt(myTimer0);
TIMER_start(myTimer0);

/********** Enable timer iterrupts **********/
// Enables a specified interrupt number
CPU_enableInt(myCpu, CPU_IntNumber_1); // CPU int1 which triggers on CPU-Timer 0
// Enables a specified interrupt number
// CPU_enableInt(myCpu, CPU_IntNumber_13); // CPU int13 which triggers on CPU-Timer 1
// Enables the Cpu Timer 0 interrupt
PIE_enableTimer0Int(myPie);

// Enables global interrupts
CPU_enableGlobalInts(myCpu);
}
//PIE settings
void pie_init()
{
PIE_setDebugIntVectorTable(myPie); //Initializes the vector table with Debug interrupt handlers
PIE_enable(myPie); //Enables the peripheral interrupt expansion (PIE)
EALLOW;
EDIS;
PIE_registerPieIntHandler(myPie, PIE_GroupNumber_1, PIE_SubGroupNumber_7, (intVec_t)&cpu_timer0_isr); // Registers a handler for a PIE interrupt
//PIE_registerPieIntHandler(myPie, PIE_SystemInterrupts_TINT1,(intVec_t)&cpu_timer1_isr);
EDIS;
}

void set_ma()
{
/

if(frequency[0]>0 && frequency[0] <= 50){
if(frequency[0] > frequency[1])
{
frequency[1]++;

ma = 0.018*frequency[1];
TTIMERREG = 117187/frequency[1];
}
else if(frequency[0] < frequency[1])
{
frequency[1]--;

ma = 0.018*frequency[1];
TTIMERREG = 117187/frequency[1];
}

}
}

interrupt void cpu_timer0_isr(void)
{

//DSP28x_usDelay(30);
set_ma();
update_compare();
// Acknowledge this interrupt to receive more interrupts from group 1
PIE_clearInt(myPie, PIE_GroupNumber_1);
}

void update_compare(void)
{
//DSP28x_usDelay(30);
PWM_setCmpA(PWMA,_IQsat(_IQ30mpy((sine_table[index]+_IQ30(0.9999))/2,EPWM1_TIMER_TBPRD),EPWM1_TIMER_TBPRD,0));
PWM_setCmpB(PWMA,_IQsat(_IQ30mpy((sine_table[index]+_IQ30(0.9999))/2,EPWM1_TIMER_TBPRD),EPWM1_TIMER_TBPRD,0));
PWM_setCmpA(PWMB,_IQsat(_IQ30mpy((sine_table[index2]+_IQ30(0.9999))/2,EPWM1_TIMER_TBPRD),EPWM1_TIMER_TBPRD,0));
PWM_setCmpB(PWMB,_IQsat(_IQ30mpy((sine_table[index2]+_IQ30(0.9999))/2,EPWM1_TIMER_TBPRD),EPWM1_TIMER_TBPRD,0));
PWM_setCmpA(PWMC,_IQsat(_IQ30mpy((sine_table[index3]+_IQ30(0.9999))/2,EPWM1_TIMER_TBPRD),EPWM1_TIMER_TBPRD,0));
PWM_setCmpB(PWMC,_IQsat(_IQ30mpy((sine_table[index3]+_IQ30(0.9999))/2,EPWM1_TIMER_TBPRD),EPWM1_TIMER_TBPRD,0));

if (index++ >511) index = 0;
if (index2++ >511) index2 = 0;
if (index3++ >511) index3 = 0;
}

MSP432E401Y: What's pins state when the device has been powered off?

$
0
0

Part Number:MSP432E401Y

Hi, dear MSP432 experts,

   My question is: when MSP432E401Y has no power connected to its power pins, what's its pins state? we hope all pins are in hi-Z or call tristate, so, other signals connected with has no load at all. 

Thanks!
Phil  


ADS122C04: RDATA command returns 40 bits instead of 24

$
0
0

Part Number:ADS122C04

Hi All,  I'm having a problem with the ADS122C04 when I attempt to read back a conversion result.  Basically what I'm finding is that I have to read out 5 bytes instead of the 3 bytes I would expect for a 24-bit result.  If I only read 3 bytes after giving the RDATA command then my next result is corrupted because it contains the 2 "left-over" bytes.  I have found work-arounds but I would like to understand what is the source of the two extra bytes.  My conversion result is good as long as I always read out all five bytes and only use the first 3.  I know that there are some features on the part that can cause extra bytes to appear in the output (CRC, data-count, etc.) but I have all of those features turned off.

Here are my configuration register values:

Reg0 = 0x70, Reg1 = 0x20, Reg2 = 0x00, Reg3 = 0x00

Here is the sequence of commands that I'm giving the ADC:

1. RESET (0x06)

2. WREG (0x40, 0x44, 0x48, 0x4D)  This is as a single I2C frame that alternates between command and register data.

3. START (0x08), then wait for 100mS

4. RDATA (0x10), as command write and then a I2C read of the result

Thanks for any help you can provide.

Inrush transients, Thermal question

$
0
0

Part Number:DRV8801A-Q1

Hi Motor Drive Team,

My customer is seeing a significant inrush current when starting the the motor from cold when the motor initially tries to move with the DRV8801A.

With the current limit resistors the worst case scenario looks something like below (2.3A for 150ms followed by 500mA steadystate for 5.85s):

We're trying to understand if inrush transient can cause any thermal concerns or what the thermal rise might be from this.

I see that the worstcase rds,on is about 0.75ohms:

And the theta,ja is 36.8:

From this it looks like the steady state thermal rise at 2.3A would be 146 degrees, but I'm not sure how to look at this for a 150ms transient.

Thanks for all the help!

Best,

David

Compiler/AM3359: Compiler change from 5.2.5 to 18.1.4.LTS

$
0
0

Part Number:AM3359

Tool/software: TI C/C++ Compiler

I recently installed CCS 8.3 which came with ti-cgt-arm_18.1.4.LTS and was able to port and build my project that started from an older CCS 7.2 (ti-cgt-arm_5.2.5).

With the older version my project was able to pass all of EtherCAT Conformance Test. With the newer version, it builds and runs but it doesn't pass all the test anymore.

Specifically TF-2302 (SDO Complete Access Upload/SDO Complete Access Download). All the failed test has the same info: "Test Function 'GetCurrentObjectLength': 0x2413 Failed to get max entry description SubIndex 79"

I checked my ESI for this object and subindex, and this object only contains 2 subindex. it passes just fine with the older build.

My guess is something changed with the compiler. Any help would be greatly appreciated. Let me know if you need more details.

Thank you,

SC

AM4376: DDR3 device speed grade minimum

$
0
0

Part Number:AM4376

Hi,

the AM4376 supports a DDR3 interfaces at up to 800MT/s.

Is there a reason why we state in the datasheet that a DDR3-1600 is required as a minimum? Wouldn't a DDR3-1333 support the 800MT/s?

Thanks,

--Gunter

TPS62122: Input Capacitor Selection for Long Distance Power Source

$
0
0

Part Number:TPS62122

Hello Forum,

We are designing a 12V to 3.3V (Buck + LDO) Power Supply for Bluetooth MESH network. We are using TPS62122 to step down 12V to 3.6V and filtering the output ripple through TLV713P to get 3.3V.
In total, 30 Bluetooth Nodes will be connected to a 12V line over 100 meters. Average and Peak Current Consumptions of each Bluetooth Node are 5.5mA and 25mA (9.9mA RX, 25mA TX and 1.4uA Sleep).

We request help on the below,


1) What is the recommended capacitor on TPS62122 input (12V) side considering the long distance from power source? (The TPS62122 datasheet recommends using 4.7uF ceramic. Is another 4.7uF in parallel sufficient considering peak load current 25mA)

2) Is 12V for main line a right choice? Need opinion please.

(Let me explain why we chose 12V over 24V or 48V.
Firstly, calculating for the worst-case scenario of all 30 Bluetooth Nodes consuming peak 25mA and TPS62122 working at 80% efficient, the maximum current drawn from 12V source is ((3.6*0.025*30)/(0.8*12)) = 0.281A
Eventhough current drops at each Bluetooth node and only 0.025A reaches the last node at 100m, to simplify calculations, consider full 0.281A travels 100m over an AWG20 wire, this creates 1.87V drop. So, the worst-case Voltage at the 100m Node is 10.13V which TPS62122 can still convert to 3.6V.

Secondly, cost. 12V Buck Converter costs less and takes-up much less space than 48V)

Thanks,
Ravi

CCS/TMS320F28377S: loading code into flash

$
0
0

Part Number:TMS320F28377S

Tool/software: Code Composer Studio

Team, my customer has a question:

I tried to program my code into flash drive using CCS software. I did load the code into flash drive by using the Run->Load the out file. It runs as I expected. But when I recycled the power of the board. It didn't run the code, seems the code not loaded in the flash. So is there something special setting for loading the code to flash?   Thank you!

Viktorija

BQ40Z50: FCC is lower than predicted & RemCap stopped counting.

$
0
0

Part Number:BQ40Z50

Posting for my customer:

I performed my first charge on a pack with the learned SREC loaded.  I have attached the log data and chart.   The cells are 6000mAh and my learned FCC was 5800.  I am wondering why the RemCap seems to have counted up correctly to 5741 then stopped when FCC was 5800.  Then updated the FCC to a lower value of 5592.  Any ideas ???

 

I have the GG and SREC files as well.

Thanks!

(Please visit the site to view this file)


CDCUN1208LP: Drive Strength

$
0
0

Part Number:CDCUN1208LP

Hello, 

A customer was asking about the drive strength of the CDCUN1208LP part. I looked in the datasheet, and couldn't find it specifically discussed anywhere. Is there any information about the drive strength of this part I could pass to this customer?

Thanks!

-Olivia Morell

LAUNCHXL-F28379D: Writing data from ADC[from other registers as well] to SD card

$
0
0

Part Number:LAUNCHXL-F28379D

Hi,

I am currently using adafruit's ADA 254 which works at 3.3 V. I'm currently using the example code in the c2000ware, named as sdcard. However, this takes the information from the command line and prints it out. I need to print ADC and register values out. I am currently new to sd card data writing techniques. Can anyone guide me through it so that I can achieve what I wanted to do? Can i get a basic ADC to SD card writing code so that I can build it up from there?Also, all my sensors are being controlled by CPU1. Can i call SD card in cpu2 and write data obtained from cpu1? or should i stick to cpu1?

Thanks in advance!

Linux/PROCESSOR-SDK-AM437X: trouble accessing sst25vf016 flash

$
0
0

Part Number:PROCESSOR-SDK-AM437X

Tool/software: Linux

I assume I am making some naive mistake, I expect that if i  have the right driver and the correct dts I should see a /dev/mtdx entry.  Am i missing somthing?  I see no spi2 or flash messages in dmesg.

Here is my setup.

1. no changes in u-boot.  (don't need to access part there).

2. part is connected to spi2  

3.  added stt flash drive in  Device Drivers > Memory Technology Device (MTD) support > Self-contained MTD device drivers turned on Support SST25L

4. pin set up.  Note I have tried PIN_ all INPUT as one forum article suggested.

spi2_pins: spi2_pins {
pinctrl-single,pins = <
AM4372_IOPAD(0xa60, PIN_INPUT_PULLUP | MUX_MODE3) /* (AC18) cam0_field.spi2_sclk */
AM4372_IOPAD(0xa64, PIN_INPUT_PULLUP | MUX_MODE3) /* (AD17) cam0_wen.spi2_d0 */
AM4372_IOPAD(0xa68, PIN_OUTPUT_PULLUP | MUX_MODE3) /* (AD18) cam0_vd.spi2_d1 */
AM4372_IOPAD(0xa6c, PIN_OUTPUT_PULLUP | MUX_MODE3) /* (AC20) cam0_pclk.spi2_cs0 */
>;
};

4, bus entry:  (added dma after i noticed warning in dmesg, needed?)

&spi2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0=<&spi2_pins>;

// needed? correct dma channel?
dmas = <&edma 16 0 &edma 17 0>;
dma-names = "tx0", "rx0";

flash:flash@1 {
//compatible = "sst, sst25vf016b", "jedec,spi-nor";
compatible = "sst, sst25vf016b";
spi-max-frequency = <20000000>;
reg = <0>;
};
};

CCS/CODECOMPOSER: Build Settings Says Cannot Accept Changes When Opened

$
0
0

Part Number:CODECOMPOSER

Tool/software: Code Composer Studio

I am currently writing code for the IWR1642 in CCS.  When I open up the "show build settings" for the project I now get an error message as soon as it comes up.(shown below)

Once I press OK there are no settings on this page that I can change in order to make the "Apply and Close" button clickable.  Below is a screenshot of all of my current settings.

Once here I have tried to go back to earlier debug configurations, but then I get an Index Out of Bounds error and all of the fields are filled in with blanks (shown below)

I am using CCS version 8.2.0 with the IWR1642BOOST, mmwave SDK 2.01 

Thanks,

Davis

TMS1000 Historical Documents

$
0
0

Hi

In the 1970s there would have been documents/guides supplied to consumers to assist in their design for masked programs on the TMS1000 series. ( I have the overall 1976 TMS1000 data sheets)

Games, microwaves etc were amongst the designs created.

For example Tiger Games and all other consumers would have been provided with a standard set of guidelines, example programs, etc, to assist in design of their games etc. Tiger would have produced their design and then sent back to TI for approval. The documentation to assist in design is what I am looking for.

Also would like to locate a list of all the Masked Programs allocated for the TMS1000 series.   MPxxxx etc

 Any reference to archived info and suitable contacts would be appreciated.

Viewing all 262198 articles
Browse latest View live


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