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

CC1350: How to flash .bin file with 4-Wire JTAG?

$
0
0

Part Number:CC1350

Hi,

My custom board for the CC1350 works fine with the 4-pin JTAG interface, but not the 2-pin interface that CCS defaults to. I am using the XDS100 of another LaunchPad to program it. In CCS, I can manually switch a project's target configuration to 4-pin JTAG, and everything works fine.

Now, I am trying to follow the OAD tutorial, which calls for flashing binaries that are made with a Python script. The tutorial calls for using Uniflash to load the .bin file to the board. This doesn't work for me since Uniflash uses 2-pin mode. Is there a way to force Uniflash to use 4-pin JTAG? Alternatively, is there a way to open and flash the .bin file in CCS?

Thank you.


DS90UB960-Q1: Cascaded AWR1243 data serialization for interface to Fusion board and TDA2Px

$
0
0

Part Number:DS90UB960-Q1

I've been looking at the schematic for the Fusion Application Board and would like to know if the SYNC_RADAR signal can be configured to drive towards the AWR1243.  In the schematic (sprr331) it appears to be coming out of the DS90UB960 deserializer (page 8) and connected to J1 (page 14) going to the TDA2px board.  Near J1 the line is labeled SPI1_CS0n which creates confusion.  What is this line actually?  I would like to have four AWR1243s triggered together using the FRAME_SYNC input to them, triggered by the TDA processor.  Is this possible? 

I am using a DS90UB953 serializer which only has 4 GPIO.  I also want to be able to configure the AWR1243's using SPI, but there are not enough GPIO on the 953 for this and for FRAME_SYNC (5 GPIO are needed, plus one more for SPI_HOST_INTR).

Sorry if this post appears twice, it seemed to have failed to post the first time.

Thanks - Victor

CCS/MSP432P401R: ADC On/Off Controlled by External Button Press and Timer A

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

My goal is to have code that allows me to turn on the ADC by pressing an external button and then an interrupt from Timer A will turn off the ADC after a specified amount of time (ideally, 300 ms). I have written and tested code that generates a GPIO interrupt when an external button connected to P3.0 is pressed, as well as code that turns the ADC off based on an interrupt generated by Timer A. However, when I attempted to put these two code blocks together, I am not getting the desired result.

Currently, the code that I have (shown below) displays 1 ADC value via UART when the external button is pressed, and then the green LED (P2.1) blinks continuously, indicating that timer_flag is always set. Additionally, I am unsure of how to turn off the ADC (when the timer interrupt is set). Any help that anyone could provide would be greatly appreciated. 

/* Test ADC ON by external button and OFF by Timer A */

#include "msp.h"
#include "mytiming.h"

volatile unsigned int UART_flag = 0;
volatile unsigned int timer_flag = 0;
volatile unsigned int  button_flag = 0;
volatile unsigned int var = 0;
int millivolt = 0;

void UART0_init(void);
void delayMs(int n, int freq);
void setFreq(int freq);

int main(void) {

    setFreq(FREQ_3_MHZ);

    int mv_char_0 = 0;
    int mv_char_1 = 0;
    int mv_char_2 = 0;
    int mv_char_3 = 0;
    char uart_0;
    char uart_1;
    char uart_2;
    char uart_3;

    WDT_A->CTL = WDT_A_CTL_PW |             // Stop WDT
                 WDT_A_CTL_HOLD;

    // GPIO Setup
    P5->SEL1 |= BIT4;                       // Configure P5.4 for ADC
    P5->SEL0 |= BIT4;

    //for testing
    P2->SEL1 &= ~BIT1;  //P2.1 is simple I/O
    P2->SEL0 &= ~BIT1;
    P2->DIR |= BIT1;   // P2.1 set as output pin
    P2->OUT &= ~BIT1;  // LED initially low (off)

    // Initialize Port 3 (button connections)
    P3->SEL0 = 0;  //clear register selection
    P3->SEL1 = 0;  //clear register selection
    P3->DIR = 0;
    P3->OUT = BIT0;
    P3->REN = BIT0;   //enable pull up resistor

    P3->IES = BIT0;  //interrupt on high-low transition
    P3->IFG = 0;     //clear any pending flags
    P3->IE = BIT0;   //enable port 3 interrupts

    UART0_init();

    // Enable global interrupt
    __enable_irq();

    // Enable ADC and Timer A0 interrupts in NVIC module
    NVIC_EnableIRQ(TA0_0_IRQn);
    NVIC_EnableIRQ(ADC14_IRQn);
    NVIC_EnableIRQ(PORT3_IRQn);

    // Sampling time, S&H=16, ADC14 on
    ADC14->CTL0 = ADC14_CTL0_SHT0_2 | ADC14_CTL0_SHP | ADC14_CTL0_ON;
    ADC14->CTL1 = ADC14_CTL1_RES_2;
    ADC14->MCTL[0] |= ADC14_MCTLN_INCH_1;   /* A1 ADC input select;
                                               Vref=AVCC */
    ADC14->IER0 |= ADC14_IER0_IE0;          /* Enable ADC conv
                                               complete interrupt */

    SCB->SCR &= ~SCB_SCR_SLEEPONEXIT_Msk;  /* Wake up on exit from
                                              ISR */

    while (1){
        if (button_flag){   //button pushed, turn ADC on
            button_flag = 0;
            ADC14->CTL0 |= ADC14_CTL0_ENC | ADC14_CTL0_SC; //start sampling/conversion
        }
        if (timer_flag){   //time up, turn ADC off
            timer_flag = 0;
            P2->OUT |= BIT1;         //turn on P2.1 green LED
            delayMs(500, FREQ_3_MHZ);
            P2->OUT &= ~BIT1;        //turn off P2.1 green LED
            delayMs(500, FREQ_3_MHZ);
                                       //turn off ADC
        }
        if (UART_flag) {
            UART_flag = 0;
            millivolt = (int)((var + 1.46) / 1.2361);
            mv_char_3 = millivolt / 1000;
            mv_char_2 = millivolt / 100 - (mv_char_3 * 10);
            mv_char_1 = millivolt / 10 - (mv_char_3 * 100 + mv_char_2 * 10);
            mv_char_0 = millivolt - (mv_char_1 * 10 + mv_char_3 * 1000 + mv_char_2 * 100);
            uart_0 = (char) mv_char_0 + '0';
            uart_1 = (char) mv_char_1 + '0';
            uart_2 = (char) mv_char_2 + '0';
            uart_3 = (char) mv_char_3 + '0';
            while(!(EUSCI_A0->IFG & 0x02)) { }
            EUSCI_A0->TXBUF = uart_3;
            while(!(EUSCI_A0->IFG & 0x02)) { }
            EUSCI_A0->TXBUF = uart_2;
            while(!(EUSCI_A0->IFG & 0x02)) { }
            EUSCI_A0->TXBUF = uart_1;
            while(!(EUSCI_A0->IFG & 0x02)) { }
            EUSCI_A0->TXBUF = uart_0;
            while(!(EUSCI_A0->IFG & 0x02)) { }
            EUSCI_A0->TXBUF = 0x0D;
        }
    }
}

// ADC14 interrupt service routine
void ADC14_IRQHandler(void) {
    UART_flag = 1;
    var = ADC14->MEM[0];
}

//Timer A0 interrupt service routine
void TA0_0_IRQHandler(void){
    timer_flag = 1;         //flag when timer reaches value
    TA0CCTL0 &= ~CCIFG;     //clear pending interrupt flag
}

void PORT3_IRQHandler(void)       //Interrupt handler for P3.0
{
    button_flag = 1;              //Set flag to signal button press detected
    //configure Timer A0
    TA0CCR0 = 20000;            // arbitrary value (need 300 ms of ADC)
    TA0CCTL0 |= CCIE;
    TA0CTL |= TASSEL_2 | MC_1;
    P3->IFG = 0;                  //Clear P3.0 pending interrupt flag
    P3->IE  &= ~BIT0;             //Disable interrupt for P3.0 for debouncing
}

void UART0_init(void)
{
    EUSCI_A0->CTLW0 |= 1;       // put in reset mode for config
    EUSCI_A0->MCTLW = 0;        // disable oversampling
    EUSCI_A0->CTLW0 = 0x0081;   /* 1 stop bit, no parity,SMCLK,byte
                                   data */
    EUSCI_A0->BRW = 26;         // 3,000,000 / 115200 = 26
    P1->SEL0 |= 0x0C;           // P1.3, P1.2 for UART
    P1->SEL1 &= ~0x0C;
    EUSCI_A0->CTLW0 &= ~1;      // take UART out of reset mode
}

Linux/DRA726: DS90UB948-Q1 and DS90UH949-Q1

$
0
0

Part Number:DRA726

Tool/software: Linux

We have a board using DS90UB948-Q1 and DS90UH949-Q1

We have an LVDS input and an LVDS output.

Where can I get Linux drivers for these device.

In the kernel for the automotive SDK that my yocto is based on I only found support for DS90UB913aq/DS90UB914aq,DS90UH928Q  and DS90UH925Q

Michel Catudal

ACTIA Corp

CCS/TMS320F28335: Surely there must be a simple way to program a device with a .out file ???????

$
0
0

Part Number:TMS320F28335

Tool/software: Code Composer Studio

I'm a hardware developer, and from time to time (like once a year) I need to fire up CCS (version 5.3) to program a device with a known good .out file.

It's never easy,  I eventually get in going, but usually takes me hours of pulling my hair out!

Is there a simple way with simple instructions on how to accomplish this?

I will create a work space  and a project if need be, however I'm not compiling I just want to program,  a nice simple pick the target, pick the out file would be a dream come true.

CCS/TIDA-01228: Error CCS8 driverlib and other files not found.

$
0
0

Part Number:TIDA-01228

Tool/software: Code Composer Studio


Hello, it's my first question in the forum ...
I want to test a board that complies with the specifications of the TIDA-01228, once all connected to a LAUNCHXL-CC1350-4 Rev-A. I'm in charge of the LCSense1350DK project in my CCS8 ... and I get the following error when running DEBUG: 

Description Resource Path Location Type
fatal error: inc/hw_types.h: No such file or directory LCSense1350DK line 46, external location: C:\ti\tirtos_cc13xx_cc26xx_2_21_00_06\products\bios_6_46_01_37\packages\ti\sysbios\family\arm\cc26xx\Timer.c C/C++ Problem
gmake: *** [../src/sysbios/rom_sysbios.am3g] Error 2 LCSense1350DK C/C++ Problem
gmake: *** [build-25636449] Error 2 LCSense1350DK C/C++ Problem
gmake: *** [C:/ti/TIDA01228/LCSense1350DK/src/sysbios/rom_sysbios.aem3] Error 2 LCSense1350DK C/C++ Problem
gmake: Target 'all' not remade because of errors. LCSense1350DK C/C++ Problem
gmake.exe: *** [package/cfg/rfPacketTx_pem3.xdl] Deleting file `package/cfg/rfPacketTx_pem3.c' LCSense1350DK C/C++ Problem
gmake.exe: *** [package/cfg/rfPacketTx_pem3.xdl] Deleting file `package/cfg/rfPacketTx_pem3.h' LCSense1350DK C/C++ Problem
gmake.exe: *** Deleting file `package/cfg/rfPacketTx_pem3.xdl' LCSense1350DK C/C++ Problem
gmake[1]: *** [build-25636449-inproc] Error 1 LCSense1350DK C/C++ Problem
gmake[1]: *** [cc26xx_Boot.o] Error 1 LCSense1350DK C/C++ Problem
gmake[1]: *** [cc26xx_Timer.o] Error 1 LCSense1350DK C/C++ Problem
gmake[1]: *** [rom_sysbios.obj] Error 1 LCSense1350DK C/C++ Problem
gmake[1]: Target 'all' not remade because of errors. LCSense1350DK C/C++ Problem
recipe for target '../src/sysbios/rom_sysbios.am3g' failed makefile.libs /LCSense1350DK/src line 56 C/C++ Problem
recipe for target 'build-25636449-inproc' failed subdir_rules.mk /LCSense1350DK/Debug__TI line 33 C/C++ Problem
recipe for target 'build-25636449' failed subdir_rules.mk /LCSense1350DK/Debug__TI line 30 C/C++ Problem
recipe for target 'cc26xx_Boot.o' failed makefile /LCSense1350DK/Debug__TI line 137 C/C++ Problem
recipe for target 'cc26xx_Timer.o' failed makefile /LCSense1350DK/Debug__TI line 140 C/C++ Problem
xdc.cfg.SourceDir : Build of generated source libraries failed: exit status = 2: .xdchelp /LCSense1350DK line 209 C/C++ Problem
directory "C:/ti/tirex-content/tirtos_cc13xx_cc26xx_2_21_00_06" on package path does not exist LCSense1350DK C/C++ Problem
Invalid project path: Include path not found (C:\ti\tirex-content\tirtos_cc13xx_cc26xx_2_21_00_06). LCSense1350DK pathentry Path Entry Problem
Product 'SimpleLink CC13x0 SDK' v1.30.0.06 is not currently installed. A compatible version 1.60.0.21 will be used. LCSense1350DK LCSense1350DK Problem
XDCpath repository 'C:/ti/tirex-content/tirtos_cc13xx_cc26xx_2_21_00_06' cannot be found! Visit project's 'Properties > General > RTSC' tab to adjust the XDCpath. LCSense1350DK LCSense1350DK Problem


I have dealt with CCS7, and now with CCS8 ... but always the same problem and I do not find the / inc / directory anywhere.

Thanks.

CCS/AM5728: missing DSP option

$
0
0

Part Number:AM5728

Tool/software: Code Composer Studio

Dear TI,

Why does the Linux code composer not allow you to select the DSP?  how can I create a DSP project in Linux?  I can do this in windows?

TMS320F28379D: eQEP Position count and Unit timer value NOT being latched simultaneously:

$
0
0

Part Number:TMS320F28379D

I’m trying to capture encoder edge timing using the eQEP timer capture unit and am noticing some inconsistent behavior.

I’ve got the eQEP configured in Quadrature count mode, with PCRM mode 1. I’ve got the Unit Timer enabled with the QEP capture mode set to latch on position read by CPU, (QCLM = 0).

The eQEP is running in quadrature mode and the capture unit is running with default values:

CPPS = 0, UPPS = 0

 I’ve got a single interrupt running that allows me to read the eQEP position register every 100usec, along with the eQEP status register.

My reference encoder line frequency approximately 22.5k lines/sec. This equates to approx. 9 counts every interrupt. Since my encoder frequency is not exact, I expect, (and see), that most times the number of counts captured every interrupt is 9 with the fractional part left over adding up over time to produce the occasional 10 counts/interrupt.

I am also monitoring the captured timer value each interrupt, (the value simultaneously latched by the position read), and when things are in a working state, when the frame containing 10 counts is read, the timer value is always very close to being the interrupt period value, (that is what I expect since the extra count just squeeked in before the position read). When things aren’t in a working state. The frame containing the 10 counts occasionally comes one frame AFTER the large timer value. The only difference between the two conditions is a power cycle of my test board. Is there something I’m missing?

Note: I’ve got the qualifications of the eQEP pins set to 6 periods of 2 clocks each. I’ve also looked at the eQEP status on every frame, to see if possibly I got a direction change, (the direction error flag was never set). Since the output of the Quadrature decoder unit feeds both the QCAP and the PCCU, the only thing I can think of is that either the timer value is latched a clock or two AFTER the position is actually read, OR the position count and timer are latched simultaneously BUT the qualified edge information takes longer to be processed by the quadrature decoder unit.

This will happen at any encoder frequency and can only be removed by a power cycle. (code is running from flash)

Any ideas?


TMS320F28379D: eQEP Position count and Unit timer value NOT being latched simultaneously:

$
0
0

Part Number:TMS320F28379D

Hello all,

I’m trying to capture encoder edge timing using the eQEP timer capture unit and am noticing some inconsistent behavior.

I’ve got the eQEP configured in Quadrature count mode, with PCRM mode 1. I’ve got the Unit Timer enabled with the QEP capture mode set to latch on position read by CPU, (QCLM = 0).

The eQEP is running in quadrature mode and the capture unit is running with default values:

CPPS = 0, UPPS = 0

 I’ve got a single interrupt running that allows me to read the eQEP position register every 100usec, along with the eQEP status register.

My reference encoder line frequency approximately 22.5k lines/sec. This equates to approx. 9 counts every interrupt. Since my encoder frequency is not exact, I expect, (and see), that most times the number of counts captured every interrupt is 9 with the fractional part left over adding up over time to produce the occasional 10 counts/interrupt.

I am also monitoring the captured timer value each interrupt, (the value simultaneously latched by the position read), and when things are in a working state, when the frame containing 10 counts is read, the timer value is always very close to being the interrupt period value, (that is what I expect since the extra count just squeeked in before the position read). When things aren’t in a working state. The frame containing the 10 counts occasionally comes one frame AFTER the large timer value. The only difference between the two conditions is a power cycle of my test board. Is there something I’m missing?

Note: I’ve got the qualifications of the eQEP pins set to 6 periods of 2 clocks each. I’ve also looked at the eQEP status on every frame, to see if possibly I got a direction change, (the direction error flag was never set). Since the output of the Quadrature decoder unit feeds both the QCAP and the PCCU, the only thing I can think of is that either the timer value is latched a clock or two AFTER the position is actually read, OR the position count and timer are latched simultaneously BUT the qualified edge information takes longer to be processed by the quadrature decoder unit.

This will happen at any encoder frequency and can only be removed by a power cycle. (code is running from flash)

Any ideas?

TPS543B20: Max output voltage

$
0
0

Part Number:TPS543B20

What limits the max output voltage to 5.5V?  I have an application that would need to set the output voltage for 6V.  Input voltage would be as high as possible (around 18V). Output current = 20-25A.

If the voltage limit is based on a thermal limit for the internal FETs, would it be possible to use the TPS543C20 in the same operating condition since it has lower RDS_on FETs?

Compiler/CC2640: 'Keep CCFG' in TI Flash Programmer 2 - Compile or SNV issue?

$
0
0

Part Number:CC2640

Tool/software: TI C/C++ Compiler

CC2640. BLE Stack 2.2.2. Simple Peripheral based application

Ti Flash Programmer 2 settings enabled to not erase + not program page 30 in order to preserve the NVM/SNV. Thus, pages 0-29 and page 31 are erased and programmed. However, I'm seeing odd behavior with the application...it involves a read/write to the SNV in processing a BLE command. The issue goes away when I enable the "Keep CCFG" checkbox in the flash programmer -- while still having the settings set to erase+program page 31. Also, the application works as expected when I run via XDS200 debugger.

If I elect to erase+program page 31 (the CCFG area as I understand it), does this lead to this type of misbehavior? It's as if the command is processed, but an issue with the SNV and/or some other strange issue comes up. Is a flag enabled/disabled? Thanks!

RTOS/TDA3XEVM: Vision SDK Getting Started. ipc_PATH missing

$
0
0

Part Number:TDA3XEVM

Tool/software:TI-RTOS

I'm trying to follow the Vision SDK TDA3xx User Guide to get started.  In section 3.2, Building the Application, when I try to do "gmake -s -j", it can't find ipc_PATH.  Where is this supposed to come from?

TINA/Spice/INA139: Simulation Models do not work correctly in bipolar configuration

$
0
0

Part Number:INA139

Tool/software:TINA-TI or Spice Models

TI,

I am having issues with the TI Models for the INA139 and INA169 Current Sense Monitors. Simulation files for each type are attached.

Neither model will work correctly in a bipolar configuration to measure negative current and also the INA139 will not converge properly in this configuration. I would expect the output of either model provided to be 1V no matter which direction the current is flowing, per the datasheet.

Can you assist with this? Much appreciated.

(Please visit the site to view this file)(Please visit the site to view this file)

TPS28225: Propagation delay part-to-part skew

$
0
0

Part Number:TPS28225

Hi,

The datasheet only provides typical propagation delay of 14ns. Do you have the data for part-to-part skew of the propagation delay?

Thanks,

Hien

CCS/MSP-EXP430F5438: Meta-data cannot be interpreted on sample program for brand new dev. board.

$
0
0

Part Number:MSP-EXP430F5438

Tool/software: Code Composer Studio

I am trying to get an MSP-EXP430F5438 board up and running using code composer and an MSP-FET. Both HW pieces are fresh out of the box. I installed Code Composer twice.

The error message and context can be seen in this screen shot.

I was trying to import the demo project "UserExperienceDemo" which appears on my directory with this structure:

However, I tried a couple of the others with same results.

I am on a Windows 7 64-bit machine.


ISO7631FM: iso7640fm

$
0
0

Part Number:ISO7631FM

I would like to know the pulse jitter value of this device

CCS: Linking library for MQ-135 (air quality sensors)

$
0
0

Tool/software: Code Composer Studio

I want the MQ -35 library for Energia .

CCS/MSP430FR5969: Launchpad Not Connecting

$
0
0

Part Number:MSP430FR5969

Tool/software: Code Composer Studio

I use MSP430FR5969 Launchpad to program my own board. I am using Windows 10, 64 bit in virtual machine (parallels on an iMac). I can program my target board succesfully with no issues, but if I hit "Stop" and then try to re-download new code, I am required to un-plug and re-plug in the Launchpad. Every single time.. 

I have deleted the windows drivers related to launchpad, and reinstalled. 

Any thoughts as to how to fix this issue? 

DLP2010: Is modulating the LEDs in theory relevant if a monochrome whitelight projection is needed?

$
0
0

Part Number:DLP2010

I was told not long ago that due to limitations in software or maybe hardware of the DLP2010 controller chip you can only run in monochrome 960 Hz mode (8 bit x 120 Hz) one of the LEDs, not all on, and you also can't run at 1440 Hz (24 bit x 120 Hz) in color sequential mode, even though that is how the full color 24 bit 120 Hz is achieved, by a fast series of monochrome frames.

After reading articles on the inner workings of DMDs I have this realization: if I need 960 Hz monochrome but with all LEDs on (whitelight), why not just power on the LEDs not via the DLPController chip but otherwise and just keep them on without modulating? From what I understand modulation is just there so the color sequential RGB can be achieved in full color mode, if you just need one color and monochrome you can have that color light source on all the time and have the micromirrors either deflect them from the projection lens and screen or direct them. For the same reason you can have all the LEDs on all the time and not controlled/modulated by the DLPController chip to get the white light deflected or directed by each micromirror to show or not show a monochrome pixel.

I believe this workaround should allow me to get a white monochrome frames from a DMD such as DLP2010 from my understanding how DMDs create pixels and what the whole purpose of modulating the LEDs is.

Still I would like someone who has a professional knowledge on how DMDs work exactly to verify this theory and my proposed workaround for achieving what I need not supported by the DLPController chip yet.

MSP430FR2633: How can I update the Conversion Count during execution?

$
0
0

Part Number:MSP430FR2633

I understand that the Conversion Count is set in the structure passed to MAP_CAPT_registerCallback, but how can I update it dynamically later?

I assume it is not safe to call this function again.  I cannot find any other reference to it.

Viewing all 262198 articles
Browse latest View live


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