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

LMH6551: Output IP3 simulation


TPS63070: Not Starting at VIN below 4V

$
0
0

Part Number:TPS63070

Hi,

I have integrated the TPS63070 into my design, and the details are as follows

Vin= 3.5V(Li+ Battery)/Solar Power 3.5W/6V

Load= <200mA

Vout (Set):5.5V using Programmable resistors.

When i have fed the input voltage around 3.3V using the Li ion, to it, I cannot able to see the voltage at the output, after I started to Rise the Voltage to almost 4.0V then I can see the Output 5.5V at the Output terminals.

As per the specs from datasheet, it should be able to start feeding the output voltage at Input less than 2V,

what is the fix possibly that I have to do?

CCS/CC3200: Debug Port error occurs while running MQTT client.

$
0
0

Part Number:CC3200

Tool/software: Code Composer Studio

Hi,

From few Days I'm getting "Debug Port error" while I debug my MQTT based application. When Debug Port error occurs , tasks.c file opens and points to the vApplicationIdleHook().

I want to know why this is coming every time I debug the code.

Any help is appreciated.

Regards,

Keshav Aggarwal

TRF7960A: Receive Error Response 0F while sent Get System Info(0x2B) Command to NXP SLIX-S Tag

$
0
0

Part Number:TRF7960A

Hi,

We are using TRF7960A as tag reader (connected to MCU through SPI) and NXP ICODE SLIX-S tags. We have succesfully executed most of the supported functional commands but we have problem while sending Get System Info Command. It always returns 0x0F Error Code, we have tried both addressed and non addressed modes but unable to figure out where the problem is. Need help to move further.

Request Frame:

8F 91 3D 00 20 02 2B

Response Frame:

00 00 0F 00 00

Code Snippet, 

usleep(20000);
SPI_readSingle(&irqsts, TRF79X0_IRQ_STATUS_REG);
SPI_directCommand(TRF79X0_RESET_FIFO_CMD);
ISO15693_sendGetSystemInfo();
irqsts = 0x00;

SPI_readSingle(&irqsts, TRF79X0_IRQ_STATUS_REG);

while((irqsts & 0x80) != 0x80)
{
SPI_readSingle(&irqsts, TRF79X0_IRQ_STATUS_REG);
}

if(irqsts & 0x80)
{
usleep(20000);
SPI_directCommand(TRF79X0_RESET_FIFO_CMD); // reset the FIFO after TX
usleep(20000);
SPI_directCommand(0x94);
}

SPI_readSingle(&irqsts, TRF79X0_IRQ_STATUS_REG);

while((irqsts & 0x40) != 0x40)
{
SPI_readSingle(&irqsts, TRF79X0_IRQ_STATUS_REG);
}

if(irqsts & 0x40)
{
//SPI_readSingle(&g_ui8FifoRxLength, TRF79X0_FIFO_STATUS_REG);
SPI_readCont(g_pui8T5TBuffer, TRF79X0_FIFO_REG , 0x7F);
GPIO_clearInt(CC2640R2_LAUNCHXL_GPIO_TRFIRQ_ENABLE);

}

uint8_t ISO15693_sendGetSystemInfo(void)
{
uint8_t ui8Offset = 0;

uint8_t ui8Status = 0x00;
uint8_t count;
uint8_t tempBuff[8] = {0x82,0x02,0x0F,0x02,0xD0,0x02,0x04,0xE0};

// Send inventory
g_pui8TrfBuffer[ui8Offset++] = 0x8F; // Reset FIFO
g_pui8TrfBuffer[ui8Offset++] = 0x91; // Send with CRC
g_pui8TrfBuffer[ui8Offset++] = 0x3D; // Write Continuous
g_pui8TrfBuffer[ui8Offset++] = 0x00; // Length of packet in bytes - upper and middle nibbles of transmit byte length
g_pui8TrfBuffer[ui8Offset++] = 0x20; // Length of packet in bytes - lower and broken nibbles of transmit byte length
g_pui8TrfBuffer[ui8Offset++] = 0x02; // ISO15693 flags
g_pui8TrfBuffer[ui8Offset++] = 0x2B; // Get System Info command code
/* for(count = 0; count < 8; count++)
{
g_pui8TrfBuffer[ui8Offset++] = tempBuff[count];
}
*/
SPI_rawWrite(&g_pui8TrfBuffer[0], ui8Offset); // Issue the ISO15693 Inventory Command

return ui8Status;
}

DRV8873H-Q1EVM: DRV8873H-Q1 output instability

$
0
0

Part Number:DRV8873H-Q1EVM

Dear TI team,

See below my customer issue with our motor driver EVM:

__________________________________________________________________________________________

I noticed a problem with the DC motor driver DRV8873H-Q1. Below is the context and the observations done.

 

Context:

- EVM board DRV8873H-Q1EVM (hardware version, board modified to set all slew rates availables with an external resistor, and resistors R30/R32 removed to control the driver with an external PWM done by a function generator)

- 18V power supply

- DC motor: R=3.9ohms, L=5mH (blocked for the demonstration)

- F_PWM=40kHz

- Mode PH/EN (set on GUI software): PH=0, EN=0/1

- Slew rate set to 13V/µs

- Motor connected between OUT1 and OUT2

- Wake: ENABLE

- Output states: ENABLE

- Open load detection: ENABLE

- Itrip control: ENABLE (Itrip=6.5A, Toff=20µs)

 

Observations:

Duty cycle = 22%:

By applying external PWM (blue curve) the motor current (green) increases. The OUT1 (yellow) falling slew rate is around 13V/µs whereas the rising slew rate is much higher.

 

Duty cycle = 24%:

When the OUT1 seems reach 0V, the driver becomes unstable. The rising slew becomes unstable, the motor current starts to oscillates and the motor starts to vibrate. A video linked was done to show this phenomenon.

 

Beyond this specific duty cycle, the driver and motor behave well.

This phenomenon was observed first by driving the motor with the GUI software and was reproduced with external PWM control.

This phenomenon is also present in PWM mode by alternating the outputs between H/L and H/H states (does not append in PWM mode by alternating the outputs between H/L and Hi-Z/Hi-Z states).

This phenomenon is much more present with low slew rates configurations and vibrations of the motor are stronger.

This phenomenon was reproduced with a power resistor instead of a motor on the outputs.

 

Did you already noticed this behavior or could it be a default of my EVM?

Where does it come from?

Does it happen with the DRV8873S driver too?

 

Thanks you for your interest

_________________________________________________________________________________________

CC3220MODA: Chnged SD card connection not work.

$
0
0

Part Number:CC3220MODA

Hi,

I am using CC3220MODA. i am running successfully sdraw code which is given in SDK. but now i want to change that connection as following.

CLK - GPIO10

CMD - GPIO11

DATA0 - GPIO15

const SDHostCC32XX_HWAttrsV1 sdhostCC3220SHWattrs[CC3220SF_LAUNCHXL_SDCOUNT] = {
{
.clkRate = 8000000,
.intPriority = ~0,
.baseAddr = SDHOST_BASE,
.rxChIdx = UDMA_CH23_SDHOST_RX,
.txChIdx = UDMA_CH24_SDHOST_TX,
.dataPin = SDHostCC32XX_PIN_06_SDCARD_DATA,
.cmdPin = SDHostCC32XX_PIN_02_SDCARD_CMD,
.clkPin = SDHostCC32XX_PIN_01_SDCARD_CLK
}
};

I change in structure sdhostCC3220SHWattrs in file CC3220SF_LAUNCHXL.c but i get error "Error initializing the SD card". 

what is the problem? 

Thanks,

Dinkar

SN74HC595: the problem of usage

$
0
0

Part Number:SN74HC595

Dear all:

      I use SRCLR=1,OE=0,SER=1,SRCLK is connected to RCLK

I want to achieve the function is to trigger a CLK high level, the output of the first high level;Then trigger a CLK high level, the output second high level;And so on

The circuit diagram is as follows:

But now I manually contact with VBAT for CLK, and then release.The output is all high. I connected the LED light at the output end, and the LED light is all bright.

Why is that? Can you give me some advice?

I use the domestic 595, with this circuit and this method test, the result is to trigger a high level, the output of a high, and so on

MSP430F2272: Timer B Capture giving shorter measures than the real ones

$
0
0

Part Number:MSP430F2272

Hi to all.

I'm using:

CCS V8
MSP430F2272
DSO-x 2024A Agilent oscilloscpe

Trying to measure elapsed time between pulses with Timer B, Capture Mode.

My square wave source is at 50 KHz and my timer_b clock at 1 MHz (MCLK = 8MHz, SMCLK = 8MHz, ACLK = 1MHz)(code below)

P2DIR |= 0x08;
P2SEL |= 0x08;
TACTL = (TASSEL_1 | MC_1 | ID_1);
TACCR0 = 0x09;
TACCR1 = 0x05;
TACCTL1 = OUTMOD_6;

Source is as good as it could be... 50.001 KHz

P4DIR &= ~0x04;
P4SEL |= 0x04;
TBCTL   = (CNTL_0 | TBSSEL_1 | MC_2 | TBIE);
TBCCTL2 = (CM_1 | CAP |  CCIS_0 | CCIE | SCS);

To infer how many seconds have passed between events, the following formula is used:

(Over*65565 + Event_1 - Event_0)*0.000001 

Where:
Over - Number of timer B overflows (how many times TBR has counted 0)
65565 - The size of TBR, defined by CNTL_0 bit
Event_1 - Value of TBR at the moment of the second event
Event_0 - Value of TBR at the moment of the first event

Bellow is presented my ISR:

__interrupt void Timer_B1(void)
{    
    switch( __even_in_range(TBIV,14) )
    {
      case  0: break;                          // No interrupt
      case  2: break;                          // CCR1 not used
      case  4:
          TB_Pulse0 = TB_Pulse1;
          TB_Pulse1 = TBCCR2;
          TBCCTL2 &= ~CCIFG;
          if(TB_Pulse0){
              TBCTL = 0;
              SendXBee |= TRUE;
          }
          break;
      case  6: break;                          // CCR3 not used
      case  8: break;                          // CCR4 not used
      case 10: break;                          // CCR5 not used
      case 12: break;                          // CCR6 not used
      case 14:
          TBCCTL0 &= ~COV;
          if(TB_Pulse1)
              OverFlo++;                  // overflow
          break;
      default: break;
    }
}

As you can realize, from the code above, I'll only count timer overflows once the first event was been captured. When my second event is captured, timer b is turned off and i'll send data trough uart.

My routine to send data, inside main, simply check the 'SendXBee', put all data through an XBee radio and reset 'Over', 'Event_1' and 'Event_0' variables. 

Even this code looking fine (at least for me..) it does not work! Values read on the other radio give me measures about 1/10th of the real signal period.

Any suggestions???  (Yeh!! stop  working with embedded electronics.... just kidding)

Thanks everybody.


Compiler/MSP430F2272: Peripherals view with msp430-elf-gdb in CCS or Eclipse

$
0
0

Part Number:MSP430F2272

Tool/software: TI C/C++ Compiler

Hello

I'm using the newest msp430-elf-gdb and CCS v8.3 or Eclipse.

During on-chip debugging I'd like to inspect the peripherals registers like

Is such a feature also available for CCS or Eclipse?

Thanks!

Help

$
0
0

Develop the init() function that performs the one -time configuration of the GPIO registers on the MSP432 needed to create the proper button and LED setup for the following scenario (four inputs and two outputs). The input pins must be configured to generate interrupts. You must use only calls to the proper DriverLib function to configure the GPIO port. Check the following page for reference material. Output LED's should be on when the int() function returns.

RTOS: Mailbox Pend() - No of bytes read

$
0
0

Tool/software: TI-RTOS

Hi,

Is there any way to get the number of bytes copied to msg(buffer) when Mailbox_pend(Mailbox_Handle handle, Ptr msg, UInt timeout) is called?

Regards,

Sandhya

TPS7A49: Absoulte maximum ratings: OUT pin to IN pin voltage

$
0
0

Part Number:TPS7A49

The datasheet of the LDO TPS7a49 specifies a limit of -36 ... 0.3V for the OUT pin to IN pin voltage. I am using the regulator with a relatively large output capacitance of 1mF and when I turn off the IN voltage of the LDO (EN is connected to IN), said limit is not met because the output capacitance discharges slower than the input net. I can see the same behaviour on the evaluation module TPS7A30-49EVM-567 after disconnecting the input voltage.

Can this behaviour destroy the regulator?

Are there any countermeasures that could be taken?

DS90CP04: What to do with unused LVDS receiver inputs

$
0
0

Part Number:DS90CP04

I'm considering using the DS90CP04 configured in Redundancy Mode which results in 2 of the 4 LVDS input receivers not being used. Is there fail safe circuitry build into each receiver thus allowing me to leave these non-used inputs floating or will it be necessary for me to add a bias network to ensure that they're held in a defined state?

CCS/LAUNCHXL-CC26X2R1: LAUNCHXL-CC26X2R1 REV C "Unplugged" release mode in project zero won't work with external 3V power?

$
0
0

Part Number:LAUNCHXL-CC26X2R1

Tool/software: Code Composer Studio

We have 6 LAUNCHXL-CC26X2R1 boards with a mix of Rev C and Rev E purchased at different times. We've already gone through installing and maintaining two separate SDKs on two separate machines 2.3 for Rev C and 2.4 for Rev E.
  • No errors on compile, using XDS110 on board debug probe. Using the 10pin ribbon to connect the debugger and "XDS110 power" jumper. 
  • Compiler for CCS8 is v18.1.5.LTS
  • XDCtools 3.50.8.24_core (is there a significant difference between this version vs 3.51.1.18_core?)
  • Already did a XDS110 probe firmware upgrade earlier, a complete chip wipe via Uniflash 4.6, and loaded empty_CC26X2_LAUNCHXL_tirtos_ccs project first before project zero (otherwise I would get a runtime crash during debug)
LaunchPad chip versionCode Composer toolchain (8.3)IAR toolchain (8.32.3)
Debug buildRelease buildDebug buildRelease build
1st timeunplugged1st timeunplugged
C1      
C2      
C3      
C4      
E1      
E2      
Basically Rev "C" does not come up on reboot when the Release image is loaded. Results are actually worse with IAR since the release version doesn't come up ,not even on initial load.
The good news are that Rev "E" boards work as expected under IAR. We didn't try them out under CCS8.
  1. What are the technical differences between the debug and release modes of project zero? Are they meant to function in an identical way?
  2. Why is the result behavior different between silicon revisions? How come my Rev C can't be powered by 2x AA batteries?
  3. Can I remove the initial "built in" breakpoint at the beginning of main(); for either version? Is it halting the processor in the release version thereby rendering it in a state of limbo when powered by external 3V batteries?
  4. (unrelated) How come when I change the GATT advertising name there's no change being reflected in the Ti Launchpad app on Android?

Thank you for your time and expertise.

CCS/MSP430F6726: MSP430 Read ALL Memory at small memory model

$
0
0

Part Number:MSP430F6726

Tool/software: Code Composer Studio

It's possible to read all values from microcontroller memory when compilator was set small model memory ?
When i want read 0x10000 addres it's cutted to the 0x0000 becouse small memory use only 16b adress.
 do is posibillity to read this larger address  ?
uint16_t flashReadData(uint32_t flashAddress, uint8_t * buffer, uint16_t bufferSize)
{
 uint16_t u_Lenght =0;
 uint32_t ul_Idx;
 for(ul_Idx = 0; ul_Idx < bufferSize; ul_Idx++)
 {
  *(buffer + ul_Idx) = *((uint8_t* )(flashAddress + ul_Idx));;
 }
 u_Lenght = ul_Idx;
 return u_Lenght;
}

TAS2552: TAS2552 I2C slave NAK issue

$
0
0

Part Number:TAS2552

There is a related thread which TI think ist solved, but we are wondering what the solution is?

We are having a similar issue where we have boards with the TAS2552 which NAKs I2C requests.

We also had stronger pullups (1.2kohms) which we replaced by the 10k which the EVM uses, however, without any effect.

LMK04616: RESETN Recovery Time

$
0
0

Part Number:LMK04616

We’re using an LMK04616 in a single stage configuration (bypassing the first stage).  We found that we have to add a 100ms delay during the initialization steps for the device to function correctly and we’d like to know if this is expected.

The first portion of our initialization sequence is below.  The 100ms delay has to occur anywhere after step 3 and before step 11.  When the delay is removed or reduced or placed outside of these steps, the device doesn't lock and the output frequency is incorrect.  We also tried inserting multiple smaller delays between steps 3 and 11 and the device works as long as the total delay is at least 100 ms.

RESETN is being asserted (active-low) for at ~400ns and each SPI write to the device takes ~3us.

1:   Drive RESETN pin high
2:   Drive RESETN pin low
3:   Drive RESETN pin high
                             <= 100ms of delay added between here...
4:   Write 0x80 to 0x08D
5:   Write 0x00 to 0x011
6:   Write 0x0E to 0x010 
7:   Write 0x04 to 0x012
8:   Write 0x00 to 0x013
9:   Write 0x00 to 0x014
10:  Write 0x08 to 0x015
                             <= ...and here
11:  Write 0x48 to 0x016
.
.
.
199: Write 0x01 to 0x011

Thanks,
Justin

CC3220SF: Problem with linking SNTP library.

$
0
0

Part Number:CC3220SF

Hello,

I am using a hardware based on CC3220sf and Amazon FreeRTOS as the base library. I have updated the TI SDK version to 2.30.00.05. 

I am writing a function for using SNTP, but I keep getting linker errors if I initialise the SlNetSock Layer. These are the steps I followed:

1) I first added the required headers and source files to the CCS project.

When I include the header files:

#include "ti/drivers/net/wifi/slnetifwifi.h"
#include "ti/net/sntp/sntp.h"

I get the error :

identifier "useconds_t" is undefined unistd.h 

Which I got rid of by adding 

#include "FreeRTOS_POSIX/sys/types.h"

in unistd.h 

 2) In the next step, I added the initialisation for SlNetSock layer because I believe sntp is dependent on the NetSock Layer.

SlNetIf_init(0);
SlNetIf_add(SLNETIF_ID_1, "CC3220", (const SlNetIf_Config_t *)&SlNetIfConfigWifi, 5);
SlNetSock_init(0);
SlNetUtil_init(0);

It gives me a linker error saying unresolved symbol "xQueueGetMutexHolder" in file ./lib/aws/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_mutex.obj

Now configUSE_MUTEXES and configUSE_MUTEXES are enabled in FreeRTOSConfig.h and I also tried changing the link order in the Build section of Properties menu. But it had no effect. If remove the initialisation part, I don't receive the linker error but I am not sure if sntp calls would work.

How do I get rid of this linker error?

TMS570LS1224: CANbus,

$
0
0

Part Number:TMS570LS1224

Hello,

I would like to ask question about CAN bus. 

My main software loop is 100ms (RTI interrupt). Every loop I am checking if there are any messages in box messages available. 

while(1)
{
  if (nextIterationFlag == true)
  {  
    /* clear flag */
    nextIterationFlag = false;

    newData = canGetData(canREG1, CAN_MESSAGE_BOX_1, canRxData_ptr);
    if (newData == TRUE)
    {
      /* there is new data, so decode data */
    }
  }
}

Everything works well unless messages are transmitted more often than 10Hz. If there is more messages on the bus (e.g. when transmitter transmit them every 20ms) I cannot read messages from this message box. I suppose buffer for current message box is overwritten or some how inaccessible. How can I fix it?

I suppose that I can use CAN interrupt and read the data immediately after the interruption. But is it the only way?

Is there any way to get last data from message box and do not care about previous data? I mean if data is overwritten, message box should accept new data without any errors and function  canGetData() should works.

Thank you.

CCS/LAUNCHXL-CC2640R2: SimpleLink academy / BLE4.2 /Scanning and Advertising lab / Advertising Task 3 (Change Filter Policy) doesn't work

$
0
0

Part Number:LAUNCHXL-CC2640R2

Tool/software: Code Composer Studio

Hello everyone,

I'm new user of this TI product, and performing many trials before developping a new project.

At this step, I'm trying to inhibit connexion from any device except the one which is declared in the whitelist.

I follow the explanation supplied in the lab for advertising filtering, but can't have a correct result.

Here is a screenshot of the context I'm talking about :

- Example program : "simple_peripheral" from "blestack" of "cc2640r2 LaunchPad" in "SimpleLink CC2640R2 SDK - v:2.40..."

- Lab from "Simple Link Academy v:2.40.03..." chapter "Bluetooth 4.2 - Scanning and Advertising", and "Task 3".

I made no other modification and tested with a smartphone running "BLE Scanner" on Androïd.

The problem is that I can't avoid my smartphone to connect to the peripheral, regardless of any BDA address I register in the whitelist.

I mean that, even If my smartphone address is or not in the whitelist, It remains possible to connect.

What can be the reason for that ?

Is there any other thing to do ?

What is the right BDA address to set (it seems confused to me) :

- the one which is displayed on Putty debug terminal when I don't use white list ?

- the one I can read into my phone parameters under "blutooth mac address" ?

THank's alot in advance for any help and recommendation.

Patrick

Viewing all 262198 articles
Browse latest View live


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