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

CCS/MSP432P401R: Multiple ADC Channels

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

Hello, 

I'm using the examples/demos from Resource explorer:

boostxl_edumkii_microphonefft_msp432p401r and msp-exp432p401r_grlib_example


I'm integrating a touchscreen LCD and creating a menu to go to different display pages. One of the pages being an FFT of an audio signal playing with my project. On the FFT screen I would like to have an "X" in the top right to touch and get out of the FFT display screen to go back to the main menu. The problem I'm running into is that the touchscreen and FFT have two separate ADC configurations. Shown below are the two snippets of the ADC configurations:

FFT:

MAP_ADC14_enableModule(); // Enables ADC Block

MAP_ADC14_initModule(ADC_CLOCKSOURCE_MCLK, ADC_PREDIVIDER_1, ADC_DIVIDER_1, 0);
                                                       // MCLK - Clock Source for CPU
                                                       // Predivider_1 - Divides the given clock source before feeding it into the main clock divider. (Default)
                                                       // Divider_1 - Divides the pre-divided clock source (Default)
                                                       // 0 - ADC_NOROUTE, no InternalChannelMask

MAP_ADC14_setResolution(ADC_14BIT);

MAP_ADC14_setSampleHoldTrigger(ADC_TRIGGER_SOURCE1, false);
                                                       // Trigger Source 1 - Sets the source for the trigger of the ADC module.
                                                       // False - Trigger signal on rising edge

MAP_ADC14_setSampleHoldTime(ADC_PULSE_WIDTH_4, ADC_PULSE_WIDTH_4);

MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P4, GPIO_PIN3, // ADC Port 4 Pin 3 ---- A10
GPIO_TERTIARY_MODULE_FUNCTION);

// Configuring ADC Memory
MAP_ADC14_configureSingleSampleMode(ADC_MEM9, true); // ADC_MEM0 - Configures the ADC module to use a single ADC memory location for sampling/conversion.
                                                                                                      // True - cause the ADC module to resume sampling once the initial sample/conversion set is executed.

// ****************************************************************************** //
MAP_ADC14_configureConversionMemory(ADC_MEM9, ADC_VREFPOS_AVCC_VREFNEG_VSS,
ADC_INPUT_A10, false);
                                            // ADC_MEM0 - individual ADC memory location to configure
                                            // Vref = 3.3 to GND
                                            // A10 - channel to be used for ADC sampling
                                            // False - Differential mode off
// ****************************************************************************** //
// Set ADC result format to signed binary
MAP_ADC14_setResultFormat(ADC_SIGNED_BINARY);
MAP_ADC14_enableConversion();

 

touch_P401R.c :


MAP_ADC14_initModule(ADC_CLOCKSOURCE_MCLK, ADC_PREDIVIDER_1, // ADCOSC

ADC_DIVIDER_1, 0);
MAP_ADC14_setResolution(ADC_14BIT);

MAP_ADC14_enableSampleTimer(ADC_MANUAL_ITERATION);
MAP_ADC14_setSampleHoldTime(ADC_PULSE_WIDTH_96, ADC_PULSE_WIDTH_96);
MAP_ADC14_setSampleHoldTrigger(ADC_TRIGGER_ADCSC, false);

MAP_ADC14_enableModule();

/* Configure Y+ input to memory buffer 0. */
MAP_ADC14_configureConversionMemory(TOUCH_Y_PLUS_MEMORY,
ADC_VREFPOS_AVCC_VREFNEG_VSS,
TOUCH_Y_PLUS_INPUT,
false);

/* Configure X+ input to memory buffer 1. */
MAP_ADC14_configureConversionMemory(TOUCH_X_PLUS_MEMORY,
ADC_VREFPOS_AVCC_VREFNEG_VSS,
TOUCH_X_PLUS_INPUT,
false);

for(i = 0; i < TOUCH_OVERSAMPLE; i++)
{
MAP_ADC14_toggleConversionTrigger();
status = MAP_ADC14_getInterruptStatus();
while(status != TOUCH_X_PLUS_IFG)
{
status = MAP_ADC14_getInterruptStatus();
}
aDCtemp += ADC14->MEM[1];
}

aDCtemp = (aDCtemp >> TOUCH_AVERAGE_DIVISOR);

The main difference I've noticed in the ADC registers is that the FFT uses

Single Channel - Repeat Conversion (ADC14CONSEQ = 10)

SAMPCON signal is sourced from the sample-input signal (ADC14SHP = 0).

Touchscreen ADC uses

Single Channel - Single Conversion(ADC14CONSEQ = 00)

SAMPCON signal is sourced from the sampling timer (ADC14SHP = 1) with a pulse width of 96. 

I know there is an analog input mux that selects the channel for conversion, so is there a way to use both of these ADC configurations and select between the channels to run both at the same time or sequentially? Would multi-sequence mode be a possible solution?

Thank you!


TPS1HA08-Q1: Datasheets and More info

$
0
0

Part Number:TPS1HA08-Q1

I'm looking at designing this load switch (TPS1HA08-Q1) into a design I have and I'd like to get a mechanical drawing for making a PCB foot print.  I know it's preproduction, but is there anything more than what's already posted?

CC1310: CC1310 Range Test

$
0
0

Part Number:CC1310

Hello,

I have cc1310-launchpad and cc1350-launchpad. I used the example code for sensor node on the cc1310 and the coprocessor and linux example on cc1350. Everything worked out of the box. I made a range test and I was able to achieve only about 100m, which is not suitable for the project I am working on. We wish to achieve about 300-500 m range with 50-200kbps throughput in start topology. Can you tell me where is the problem and what are the correct setting which i have to set up on the launchpads to achieve this goal.

Thank you in advance!

Best regards,

Ivan Ucherdzhiev

CCS/TMS320F28032: Questions in achieving interleave buck with TMS320F28032

$
0
0

Part Number:TMS320F28032

Tool/software: Code Composer Studio

HI,

I'M a FAE in TI, now my customer has a question.

The background is, they are trying to achieve interleave buck with TMS320F28032, buck worked in DCM mode, frequency change, and the on time Ton was constant. EPWM1A and EPWM2A was 180 degree shift, EPWM2 is slave. the problem is the EPWM2A may increase suddenly, the waveform was shown.

the yellow wave is EPWM1A, the blue one is EPWM2A, the green one is the current which was driven by EPWM2A.

the Ton was constant, set the counter of EPWM1A give a Synchronous signal to EPWM2A when CTR=0; the EPWM2A enable the PHASE LOAD function, after receiving the Synchronous signal, set the value of CTR equal to the value of TBPHS(0.5*Ts). the 2 EPWM are both adding counter mode, CTR=0 output high, CTR=CMPA, output low.

Question: At the last rising edge of EPWM1A, the value of TBPHS was loaded into CTR of EPWM2, but at this moment, the value of EPWM2 CTR is less than CPMA, so the output is still high. the value of TBPHS was bigger than CMPA, so the CTR change from less than CMPA to bigger than CMPA, so it can't be equal to  CMPA, so the output of EPMA is still high,.

we have 3 questions:

1.is the analysis correct?

2.when use 28032 EPWM module to achieve  interleave buck in frequency change mode, is there any limitations?

3.how can we solve these problems.

Thank you very mucn

TMS570LC4357: DCAN ECC Testing

$
0
0

Part Number:TMS570LC4357

Hi,

I have been reading about the DCAN recently and I am trying to test the DCAN RAM ECC functionality. I am not entirely clear on the SECDED mechanism. The desired functionality that we want is that on any ECC error (single or double), the ESM should be notified. We do not want to correct any ECC errors. So the questions I have:

1. Is the ECC checking enabled by default? If not, how is it enabled and is it the same thing as SECDED?

2. How do we inject a fault to test the ECC functionality. It seems like section 27.15.3 in the TRM should be the way to do this but no error was detected in my implementation.

Thanks,

Milin

LMX2595: firmware update problem or maybe a bricked board

$
0
0

Part Number:LMX2595

I have been playing with the LMX2595 getting a handle on things.  Today I just received a LMX2492 that I wanted to evaluate and compare against the 2595.  I went to work on the 2492 and had to firmware update the USB2ANY that came with it.  I found this page that linked the Word document that finally helped me update the firmware. 

Then I was able to switch the TICS sw to operate the 2492 (instead of the 2595 GUI interface).   i of course powered the 2492 with 5V instead of the 3.3V as for the 2595.  But after playing around, I couldn't ever see any actual ramping out of the chip.  I could see the PLL Fvco frequency as a CW on my Spectrum Analyzer.  That even would change based on the input box in the GUI.  But no ramping ever showed.  That's bothersome, but before I spent more than an hour on it, I decided I should go make sure my 2595 system setup was still working.  Now I have found that the 2595 seems to be bricked.  

When I now plug in 3.3V to the 2595, the power supply goes directly to about 210mA.  Even after I supposedly 'Write all Registers', the chip never goes to the 300-330 mA  normal-operating level that I had seen yesterday.  Further, when I toggle the 'Power Down' checkbox, the current drawn doesn't change.  This was my tried-and-true check whether the 2595 was communicating, to debug it regardless of if my output waveform was misbehaving.  I have no response from the board now.

I've done all the typical reset techniques, unplugged and replugged everything, restarted TICS.   thought I'd be sneaky and check to see what the values in the registers in the 2595 were, but now I get an error.

(I have to retype the output of the GUI field because i can't expand its size big enough to take an adequate picture, so forgive any typos)

...

Read Back Register R0xB as value 0x0B 0000.  Was 0x0B 0018.  XOR difference = 0x00 0018.

[Warning]: Error in Flex Script   Attempted to divide by zero.

Python Error:   Attempted to divide by zero.

[Python]: UpdateNDivider in C:\ProgramData\Texas Instruments\TICS Pro\Configurations\Devices\PLL + VCO\LMX2595\LMX2595_PLL.py:433, System.Object Run1[PythonFunction,Object](IronPython.Runtime.PythonFunction)

[Python]: UpdateInputPath in C:\ProgramData\Texas Instruments\TICS Pro\Configurations\Devices\PLL + VCO\LMX2595\LMX2595_PLL.py:255, System.Object Run1[PythonFunction,Object](IronPython.Runtime.PythonFunction)

[Python]: MULT_Update in C:\ProgramData\Texas Instruments\TICS Pro\Configurations\Devices\PLL + VCO\LMX2595\LMX2595_PLL.py:98, System.Object Run1[PythonFunction,Object](IronPython.Runtime.PythonFunction)

Read Back Register R0xA as value 0x0A 0000.  Was 0x0A 10D8.  XOR difference = 0x00 10D8.

...

Possible problems I can come up with:

  • The 2595 board is fully dead
  • The 2595 board is bricked somehow, maybe it didn't like reading from the new USB2ANY that had be firmware updated.  
  • Maybe I accidentally updated my original motherboard firmware (that came with 2595), and now neither USB2ANY is in a rollback state that can interface with the 2595.

  

Please help me recover my LMX2595.  Once it's back to working I'd like to explore the 2492 problem, but I need one of them working first.    

Thanks,

Darren

CCS/TM4C1294NCPDT: Debug Error: No source available for "0xfffffff8"

$
0
0

Part Number:TM4C1294NCPDT

Tool/software: Code Composer Studio

SUMMARY: While debugging, when I return from an assembly function with the code bx lr (with lr holding 0xfffffff9), the session is interrupted and CCS returns an error saying: No source available for "0xfffffff8". It should return to 0xfffffff9 but it returns to 0xfffffff8.

DETAILS:

I'm working on the thread management of a little operating system. To create threads I need to define their initial stack frame. The initial stack frame I'm creating is such that after a context switch a new thread will start executing as if it was returning from an ISR. Something like this:

#define PSR_RESET_VALUE   0x01000000
#define RFI_CODE          0xFFFFFFF9  // return from interrupt

/* -------------------------- */
/* CREATE INITIAL STACK FRAME */

*(--stack_pointer) = PSR_RESET_VALUE;       // PSR
*(--stack_pointer) = (uint32_t) routine;    // PC   (routine is the function executed by the thread)
*(--stack_pointer) = (uint32_t) destroy;    // LR   (destroy is the function that should be executed if routine returns)

// each GPR is initialized with its number just
// for debugging purposes
*(--stack_pointer) = 0x12121212;            // R12
*(--stack_pointer) = 0x03030303;            // R3
*(--stack_pointer) = 0x02020202;            // R2
*(--stack_pointer) = 0x01010101;            // R1
*(--stack_pointer) = 0x00000000;            // R0
*(--stack_pointer) = 0x11111111;            // R11
*(--stack_pointer) = 0x10101010;            // R10
*(--stack_pointer) = 0x09090909;            // R9
*(--stack_pointer) = 0x08080808;            // R8
*(--stack_pointer) = 0x07070707;            // R7
*(--stack_pointer) = 0x06060606;            // R6
*(--stack_pointer) = 0x05050505;            // R5
*(--stack_pointer) = 0x04040404;            // R4

// simulates a return from an ISR, so the registers
// are popped from the stack correctly
*(--stack_pointer) = RFI_CODE;

After the stack frame preparation is finished the stack pointer of the new thread will point to RFI_CODE (0xfffffff9). I will pop that code into LR before returning from context switch. So I was hoping the hardware would unstack everything correctly and the new thread would start executing. The code for context switch is here:

switch_context: 
    cpsid i         ; disable interrupts
    push {r4-r11}   ; push callee-save registers
    push {lr}	    ; lr is the address to return next time thread executes
    str  sp, [r0]   ; save hardware sp on current thread tcb.sp (r0 is the address of current thread tcb.sp)
    ldr  sp, [r1]   ; load hardware sp with new thread tcb.sp   (r1 is the address of new thread tcb.sp)
    pop  {lr}       ; pop address to return (in the first execution lr will be 0xfffffff9
    pop  {r4-r11}   ; pop callee-save registers
    cpsie i	    ; enable interrupts
    bx	 lr	    ; continue to execute from where thread was preempted before (in the first execution return from ISR)

The problem is already stated on the summary. When the processor returns from switch_context it should unstack the core registers's contents, as if it was returning from and ISR, and continues to execute. Instead, the debugging session is stopped and CCS says No source available for "0xfffffff8". I don't know why this is not working as I expected and I don't know why it goes to 0xfffffff8 instead of 0xfffffff9.

In this question a community member says this can be a debugger problem. Once there is no code at address 0xfffffff9, the debugger gets confused. If this is true, how can I continue debugging my code?

CC1310: GPIO drive capacitve load capability

$
0
0

Part Number:CC1310

Hi all,

I'd like to know if anyone knows from an official source from TI what is the capacitive load driving capabilities for the GPIOs on the CC1310 chip. I'm considering driving a sensor which is below the current rating; however, I have a capacitor of 100nF with the sensor power rail, which means that it will be a direct load to the GPIO it's connected to.

I tried looking at the datasheet and reference manual, but couldn't find.

Thanks in advance.

Cheers,


TAS5825MEVM: Would it be possible to release the CAD data for this

$
0
0

Part Number:TAS5825MEVM

Hi Team!
Would it be possible to release the CAD data for this TAS8525EVM? - like on may other EVMs you supply.

Ie. Altium files. PrjPCB, PCBdoc, SCHdoc, the usual...etc...

It would speed up our dev time quite a lot to be honest.
Much appreciated.
Kind regards,
David

CC2531: Complications Using Z-Tool and Z-Stack to Create Network, Send and Receive Messages

$
0
0

Part Number:CC2531

Hi,

I've been trying to use Z-Tool to create a network and have searched a lot on the internet but haven't understood the way to do so. I have also worked very hard to understand Z-Tool Monitor and Test guide.

I have three CC2531 dongles with z-stack burned onto them. I want to create one of these as a coordinator while the other two as end devices. How to change the device type? As you can see, there is "None" written in the screenshot at present.

After that, I wish to send messages between these. Which commands from the z-tool shall I use to send messages? The guide doesn't explain parameters with examples, so it's getting really confusing.

If anyone can guide me through the process, it will be highly appreciated.

Looking forward to your help

Thank you!

CCS/TMS320DM6433: USB560V2

$
0
0

Part Number:TMS320DM6433

Tool/software: Code Composer Studio

We have a mature product based on the TMS320DM6433.  The product was developed using CCS V6.x and debugged with a Blackhawk USB560V2 JTAG debugger.  As we begin development of a new product, we decided to upgrade to CCS V7.  In conjunction with this upgrade, we switched our legacy product to CCS V7 as well.  Since making this switch, my debug environment has become completely unreliable.

The initial install of CCS V7 had trouble due to the Blackhawk driver signature.  Disabling the requirement for driver signatures in Windows resolved this problem.  I can connect to my target with the Blackhawk JTAG debugger, but it doesn't run properly.  While stepping through code it often 'quietly' disconnects.  That is, no error message is displayed, but code execution stops and variables/memory are not accessible.  Often while debugging, the code gets 'stuck' in a printf output loop in which I assume it is trying to send data via USB back to the PC.

Everything works fine if I switch back to CCS V6 on the same computer and using the same Blackhawk debugger.

My system specifics are:

  • Windows 10 Pro, 64 bit, V1709 Build 16299.309
  • CCS V7.4.0.00015
  • Blackhawk Driver V6.2.0.009

I must have my environment running under CCS V7 as it is used by the rest of the developers in my department.  Any suggestions would be greatly appreciated.

Regards.

CC1312R: hal_systick.h file needed

$
0
0

Part Number:CC1312R

Hello team, my customer and i are currently trying to run _hal_systick.c file functions for a project they are currently working on. 

This file is available under: source/ti/ble5stack/hal/src/target/_common

However there's a header file included in this .c file which seems to be not available in the simplelink package. This header file is: _hal_systick.h. Can someone forward me this file asap? My customer is stopped at this issue.

Regards,

Raul Matos

MSP430F6779A: Hardware CRC Generator

$
0
0

Part Number:MSP430F6779A

Can someone here provide me the code implementation of MSP430F6779A hardware CRC-CCITT implementation. I tried lots of codes available online but none have them the CRC generated by MSP. Not sure whats going wrong. I want to use Hard CRC of MSP for redundacncy check at front end for which i am not getting the correct logic/code of CRC. Someone pplease guide me to write CRC code which matches exactly the CRC generated by the MSP CRC hardware. Thanks in advance.

AWR1642: AWR Interference

$
0
0

Part Number:AWR1642

Could you  provide a short and crisp explanation as to how interference from other radar vehicles ether using the TI solution or other Radar solutions is avoided by the AWR1642?

BQ40Z60: Where to buy BQ40Z60?

$
0
0

Part Number:BQ40Z60

Anyone have a source to purchase the BQ40Z60? I can't find it IN STOCK anywhere. It' listed in many places such as digikey or Mouser but not in stock. Thanks in advance!


TDA2EX17EVM: IPv6 UDP sendto function failure on TDA2ex

$
0
0

Part Number:TDA2EX17EVM

Hello Everyone,

I am working with TDA2ex and trying to assign IPv6 address to it and develop UDP client on it to communicate with IPV6 UDP server.

I have made changes as suggested in this post and i am able to get local link address and i can ping it from my PC. Now when i go to create IPv6 UDP
socket i can create it but when i call sendto function it returns -1 and i came to know its because of errno 22 which is invalid argument.

https://e2e.ti.com/support/arm/automotive_processors/f/1021/t/673201?tisearch=e2e-sitesearch&keymatch=IPV6%20retrieve

I have verified sin6_family , sin6_port and sin6_addr have correct values of server.

I have referred UDPEchoIPV6 example in TI RTOS package and i came to know for sendto function we are passing sockaddr_storage structure and not sockaddr_in6
that's why i made relavant changes in my application but still it returns 22.

What could be the wrong arguments , i have following queries :

1) With local link address , do i need to initialize scope_id member of sockaddr_in6 for sendto function ?

2) I referred UDPEchoIPV6 example code but it is for UDP IPV6 server , do we have any sample code UDP IPv6 client ?

Thanks for any suggestions.

AWR1642BOOST: Failed to register Controller

$
0
0

Part Number:AWR1642BOOST

Hello one of the engineers at my customer has recently started working with the AWR1642BOOST and has the below question. Can you please help?

I receive the following error when running the Radar Studio GUI.

 

Failed to register Controller from "C:\ti\mmwave_dfp_01_00_00_01\rf_eval\radarstudio\Clients\AR1xController\AR1xController.dll"

Could not load file or assembly 'MWArray, Version=2.15.0.1, Culture=neutral, PublicKeyToken=e1d84a0da19db86f' or one of its dependencies. The system cannot find the file specified.

 

I have verified that the file that cannot be found is indeed in the specified location. I am wondering what could be causing it to not be located.

PCM2912A: STEP file

$
0
0

Part Number:PCM2912A

Hello,  Do you have a 3D model step file for this device?

DRV421: Fluxgate Magnetic Current Sensing- Compensation Coil Selection, Sumida transformer SC3113-50 or alternates

$
0
0

Part Number:DRV421

We are investigating ways we can utilize the DRV421 fluxgate chip in our application. From our web searches we found TI Design note: Fluxgate Magnetic Current Sensing with High Linearity for Three Phase inverters Reference Design, call out a Sumida transformer SC3113-50, which could be very relevant and useful for our application. We were unable to find more information on the transformer, and were wondering if you had any details regarding them, or possible similar alternatives we could explore.

CCS: Buiding OTA library (LOCAL AND CLOUD OTA)

$
0
0

Tool/software: Code Composer Studio

Hi,

I am trying to test cloud and local OTA examples, I always got this building error:

"/home/antonio/ti/simplelink_sdk_wifi_plugin_1_55_00_42/source/ti/drivers/net/wifi/porting/cc_pal.h", line 27: fatal error: cannot open source file "ti/drivers/dpl/SemaphoreP.h"

Any idea about that?

Viewing all 262198 articles
Browse latest View live


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