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

CC2650: Change Manufactorer Code of Node Descriptor

$
0
0

Part Number:CC2650

I'm using the example of the Temperature Sensor trying to find out how to change the Manufactorer Code of the Node Descriptor.

I only found that it's set to 0x0000 in AF.h but it doesn't seem to change the node descriptor and also I don't intend to change the stack fies.

How should the node descriptor / manufacturer code be changed?

Thanks!


CC1310: Proper I2C slave module reset sequence for cc13xx/cc26xx

$
0
0

Part Number:CC1310

I am using cc1310 with Contiki OS, and are currently working with the MCU acting as an I2C slave.

We want to be able to handle unpredictable scenarios as e.g. described in processors.wiki.ti.com/.../I2C_Tips by resetting the I2C slave module. It seems we are able to reproduce such a type of issue by having the master device request data and not put any data in the SDR register for cc1310 to reply. In this case it seems the cc1310 will clock stretch indefinitely - and the only reliable way we found to get out of it is a reboot(!).

Does anyone have any suggestions on a proper reset sequence for the i2c slave module? Our current unsuccessful attempt:

I2CSlaveIntDisable(INT_I2C_IRQ);
I2CSlaveIntDisable(I2C0_BASE, interrupt_flags);

I2CSlaveDisable(I2C0_BASE);

PRCMPeripheralRunDisable(PRCM_PERIPH_I2C0);
PRCMPeripheralSleepDisable(PRCM_PERIPH_I2C0);
PRCMPeripheralDeepSleepDisable(PRCM_PERIPH_I2C0);
PRCMLoadSet();
while(!PRCMLoadGet());

IOCPinTypeGpioInput(I2C_SLAVE_SDA_PIN);
IOCPinTypeGpioInput(I2C_SLAVE_SCL_PIN);
IOCIOPortPullSet(I2C_SLAVE_SDA_PIN, IOC_NO_IOPULL);
IOCIOPortPullSet(I2C_SLAVE_SCL_PIN, IOC_NO_IOPULL);

And then the reverse to bring it back up.

Regards,

Andreas

TL7702B: TL7702B Questions

$
0
0

Part Number:TL7702B

Hello

I have a circuit where I'm using a TL7702B to monitor the main supply rail (12V), and startup a sequence or other rails which are powered from this.  VCC is connected to 12V and I have a potential divider connected to SENSE such that the device will go out of reset when the supply reaches 9V.  I have a 10uF capacitor connected between CT and GND.  I have a few questions about this circuit:

*  With the 10uF cap, I'm seeing a delay between #RESIN going high and #RESET going high of about 150mS which seems much shorter than the equation in the data sheet suggests.  Can you suggest why this might be?

*  Is there a practical limit to the size that this capacitor should be?  I'd ideally like about 300mS of delay.

* On page 13 of the data sheet, it talks about a resistor in series with the capacitor if SENSE is monitoring VCC.  Is this required in my case as SENSE is connected to VCC via a potential divider (tens of K ohms), I read this as meaning it's only required if the connection is direct.

*  I'm pulling #RESET up to 3.3V and RESET down to GND via 10K resistors.  Is this OK, or should #RESET be pulled up to VCC only?

Thanks

Martin

CC3100SDK: client getting timeout while data transfer from Access Point cc3100

$
0
0

Part Number:CC3100SDK

I am configuring cc3100 as an access point. Mobile phone acts as client i.e STA, which will connect to access point i.e cc3100 and perform file download via FTP.

I am able to download files properly most of the times but sometimes I am observing timeout on the mobile client side. Client socket will timeout. (Reproducible of timeout is once in every 10 iterations).

What could be the reason? Is there anything we have to take care on cc3100. i.e on usage of sl_send. I will be transferring file data continuously in 1K size packets using sl_Send.

 

In the below example we are just dumping the data packets on sl_Send and checking for the errors. But do not know whether the client has received it or not.

Is there a way to check the transferred data is properly received by mobile client. i.e sl_Send will wait until the data is read by the client STA mobile device.

 

 

Code :

         #define   MAX_NUM_OF_TX_BYTES  1024

 

         uint8_t *pui8FileBuff = FileBuffData[40960];

         SlSockAddrIn_t  tActiveRemoteAddr;  

         uint32_t  ui32BufferOffset        = 0;

         uint16_t  ui16BytesToBeTransfered = 0;

         //Get the Ip address and port number of data port from command

         sscanf((const char *)ms_ui8RxBuffer, "PORT %d,%d,%d,%d,%d,%d",&iActIp[0], &iActIp[1], &iActIp[2], &iActIp[3], (int*)&iActPort[0], (int*)&iActPort[1]);

         iPortDec = iActPort[0]*256 + iActPort[1];

 

        #ifdef _EMULATOR

          printf("IP is %d.%d.%d.%d\n",iActIp[0],iActIp[1],iActIp[2],iActIp[3]);

          printf("port %d\n",iPortDec);

        #endif

 

        //open new socket for data transfer

        ms_i16SDataAct = sl_Socket(SL_AF_INET, SL_SOCK_STREAM, 0);

        if( ms_i16SDataAct < 0 )

        {

          #ifdef _EMULATOR

            printf(" [TCP data socket] Create socket Error \n\r");

          #endif

          return EN_ERR_SOCKET;

        }//end of if( ms_i16SDataAct < 0 )

 

        tActiveRemoteAddr.sin_family      = SL_AF_INET;                                                       //IPv4 socket

        tActiveRemoteAddr.sin_port        = sl_Htons((_u16)iPortDec);                                        //client dataport number

        tActiveRemoteAddr.sin_addr.s_addr = sl_Htonl(SL_IPV4_VAL(iActIp[0], iActIp[1], iActIp[2],iActIp[3])); //client dataport ipaddress

 

        if (sl_Connect(ms_i16SDataAct, ( SlSockAddr_t *)&tActiveRemoteAddr, (_u16) sizeof(SlSockAddr_t)) < 0)

        {

          if(ms_i16SDataAct >= 0)

          {

            sl_Close(ms_i16SDataAct); //CLose the socket of data port on failure

            ms_i16SDataAct = -1;

          }     

        }

     

        //Transfer the filedata in packets of 1K size in loop.

        while (ui32BufferOffset <  ui32NumofBytesRead)

        {

           ui16BytesToBeTransfered = MAX_NUM_OF_TX_BYTES;

           //check for the remaining bytes to be transfered

           if (ui16BytesToBeTransfered > (ui32NumofBytesRead - ui32BufferOffset))

           {

              ui16BytesToBeTransfered = ui32NumofBytesRead - ui32BufferOffset;

           }

           i32NumOfBytesSent = sl_Send(ms_i16SDataAct, (pui8FileBuff + ui32BufferOffset), ui16BytesToBeTransfered, 0);

           if(i32NumOfBytesSent  < 0)

             return ERR_SL_SEND;

           //Increase the buffer offset

           ui32BufferOffset += ui16BytesToBeTransfered;

           //Need to add NonOsMainloop for busy loops

           _SlNonOsMainLoopTask();    

        } //endof while

Thanks & Regards,

Durga Prasad.

CCS/TMS320F280049: Sst OSHT and PSCLK timing to 1ns step values and lower

$
0
0

Part Number:TMS320F280049

Tool/software: Code Composer Studio

I am working on very fast switching and I need pulses in range of 5 - 100ns, and I need to set them in 1ns precise to control the switching paramter. The closest I got is with PC Submodul, as shown on pages 3-23 in SPRU791E.

 

It appears Texas already have this functionality with Chopper module.  They also have some IP on the newest chips that would allow us to make other types of customized changes to the PWM functionality before the signals reach the I/Os, so even if their method did something a bit different than peripheral, this capability would allow us to create the function.  It isn’t documented well because it’s really an internal tool for TI at this time, but it’s called CLB in some of the datasheets (F2837x, F28004x). (Thanks goes to Mr. Pizzolante for this research)

I could not find any option to set the OSHT nor PSCLK pulse width to desired values of 5 ns to 100 ns in steps of 1ns. I tried it on F2808. 

If anyone knows a way, how to do what I like, please tell me. 

 

Best regards,

Zajc

AFE4490SPO2EVM: Accessing PulseOx data through Python scripts

$
0
0

Part Number:AFE4490SPO2EVM

Hi, I recently got a AFE4490SPO2EVM module with the PulseOx sensor. TI provides a GUI and several Pytho scripts to set the config registers of the EVM. Would anyone know if we can write python script to directly record and analyse the Pulse Ox channels coming from the EVM too?

Thanks in advance!

TSW1400EVM: Parallel operation of ADC and DAC boards possible?

$
0
0

Part Number:TSW1400EVM

Hello,

is it possible to use a ADC and DAC board in parallel (simultaneously) with the TSW1400EVM and the High-Speed Data Converter Pro Software? For example to simulate a communication channel with transmitter and receiver.

Or, if not, is it possible to synchronize/couple two TSW1400EVMs where one uses an ADC board and one a DAC board to build up a complete Tx-Rx chain.

Best regards

Benjamin

CCS/TMS320F28069: Branch from Bootloader to Application Code

$
0
0

Part Number:TMS320F28069

Tool/software: Code Composer Studio

My situation involves transitioning from a bootloader to application code. I'm using a TMS320F28068 MCU. My bootloader resides in sector A of flash. If it doesn't detect that code needs be downloaded to flash, it should transition to the application code which is in sectors B to H. I'm using the linker command file to make sure the code is separated like this. My bootloader and application code all reside in one CCS project. 

I noticed that when I make changes to the application code, it would load fine using my bootloader (meaning that the application code was correctly loaded) but it wouldn't transition out of the bootloader after reset. Using Code Composer and the JTAG port, I examined the disassembly. I did this for one version of my code and another version. In each version I never modified the bootloader code. Rather, I modified the application code only. Below are two screen shots of the disassembly (each from a different version).





My "main()" function is in sector A. This calls my bootloader. "main_apl()" is the function at the start of the application code (which again is in sectors B to H). As you can see, at address 0x3F4268, the contents of that address changes even though they are both calls to "main_apl". In the first one, the contents of 0x3F4268 is 767E2C61 and the other is 767E2C3D. This is a problem because the bootloader only writes to sectors B to H. Thus, the code might load correctly, but the call from sector A to go to the application isn't the same. This would prevent a successful transition between the bootloader and the application code.

My question is this: how can I go to "main_apl" from the bootloader section while keeping the contents of sector A constant between different compilations? I was thinking about replacing "main_apl();" with "asm( "LCR 0x3D8000)", but how do I make sure from the linker command file that the function will always stay at 0x3D8000?

Thanks.
Syed


TPS65310A-Q1: TPS65310A-Q1 Acceptable VIO Voltages

$
0
0

Part Number:TPS65310A-Q1

Can I run VIO at 2.5V?  Will this cause the SPI to be 2.5V compatible?

V_VIOMON_TH looks like it trips at 3.13V, but there is note under the V_RESL electrical conditions that has VIO at 1.2V, so I figured I would double check.

Anecdotally, can it be run at 5V?

Thank you,

BK

IWR1642BOOST: Running capture demo in mode 2 (DSS only)

$
0
0

Part Number:IWR1642BOOST

Hi,

I was able to compile and load executables for DSS and MSS using CCS. I also use Tera Term to select capture demo mode and want to use option 2 (DSS only). In this case configuration is got from default configuration in main_dss.c. 

When I choose option 2 in Tera Term gDataCube gets filled with I/Q data and I can export it to text file and continue analyzing using Matlab.

However when I want to repeat this after changing distance for example I have to do following to be able to succeed.

1. Disconnect debugger

2. Turn power of EVM off and then again on

3. Launch debugger session in CCS

4. Connect to cores

5. Load executables for both cores

6. Run both cores executables

7. Select option 2 in Tera Term and save gDataCube memory to file

So my question is that is there any easier way to do that? I have tried to re-load executables and then run without turning EVM power off and on but that way ends to error. 

Regards Matti

DS90UB949-Q1: SPI Communication

$
0
0

Part Number:DS90UB949-Q1

Hi team,

Please help to confirm, if 949 paired with 940, or 947 paired with 948, could they use SPI communication?

And what is the maximum forward write data rate if the PCLK is 70MHz?

BQ20Z655-R1: Modify single parameter value in DFI file

$
0
0

Part Number:BQ20Z655-R1

We are using DFI file created long ago to program the BQ20Z655-R1 chips in our boards. Now we need to update just a single parameter "Charger Present" value. What is the proper way to update this? Write the DFI file to deive, change the value, then read DFI from device? Does this change the other important parameters? Anything else to consider?

RTOS/PROCESSOR-SDK-AM57X: MCSPI - slave device not responding

$
0
0

Part Number:PROCESSOR-SDK-AM57X

Tool/software:TI-RTOS

I currently have a SPI interface to a slave device working from the AM57xx, using GPIO lines and bit-banging. I'm "migrating" that to the PDK MCSPI driver, but the slave device no longer responds to commands sent to it. My application is running on IPU1 (dual-M4 cores), with SYS/BIOS 6.46.4.53 and am57xx PDK 1.0.6. I can see the CS, MOSI, and MISO lines on a logic analyzer, and I'm concerned about short "spikes" on the CS signal when transferring multiple bytes. I'm also not sure about the initialization values, since I've seen a number of different values.

Here's my initialization:

void vSpi_eInitialize(void)
{
    CSL_l4per_cm_core_componentRegs *l4PerCmReg = (CSL_l4per_cm_core_componentRegs *)(CSL_MPU_L4PER_CM_CORE_REGS + Du32Ipu_IOMMU_Offset);

    // SPI1 Clock Enable
    CSL_FINST(l4PerCmReg->CM_L4PER_MCSPI1_CLKCTRL_REG, L4PER_CM_CORE_COMPONENT_CM_L4PER_MCSPI1_CLKCTRL_REG_MODULEMODE, ENABLE);

    // Wait for SPI peripheral to start
    while(CSL_L4PER_CM_CORE_COMPONENT_CM_L4PER_MCSPI1_CLKCTRL_REG_IDLEST_FUNC !=
              CSL_FEXT(l4PerCmReg->CM_L4PER_MCSPI1_CLKCTRL_REG,
                       L4PER_CM_CORE_COMPONENT_CM_L4PER_MCSPI1_CLKCTRL_REG_IDLEST
                      )
         );

    // SPI1_SCLK
    // NOTE: For the spim_sclk signals to work properly, the INPUTENABLE bit of the appropriate
    //  CTRL_CORE_PAD_x registers should be set to 0x1 because of retiming purposes.
    HW_WR_REG32((Du32Spi_CORE_PAD_IO_REGISTERS_BASE + CTRL_CORE_PAD_SPI1_SCLK_OFFSET),
                (0x000F0000));  // SLEW_CONTROL_SLOW | INPUTENABLE_RECEIVE_ENABLED | PULLTYPESELECT_PULLUP | PULLUDENABLE_ENABLED | MUXMODE_SPI1

    // SPI1_D1 - Rx
    HW_WR_REG32((Du32Spi_CORE_PAD_IO_REGISTERS_BASE + CTRL_CORE_PAD_SPI1_D1_OFFSET),
                (0x000F0000));  // SLEW_CONTROL_SLOW | INPUTENABLE_RECEIVE_ENABLED | PULLTYPESELECT_PULLUP | PULLUDENABLE_ENABLED | MUXMODE_SPI1

    // SPI1_D0 - Tx
    HW_WR_REG32((Du32Spi_CORE_PAD_IO_REGISTERS_BASE + CTRL_CORE_PAD_SPI1_D0_OFFSET),
                (0x000B0000));  // SLEW_CONTROL_SLOW | PULLTYPESELECT_PULLUP | PULLUDENABLE_ENABLED | MUXMODE_SPI1

    // SPI1_CS0
    HW_WR_REG32((Du32Spi_CORE_PAD_IO_REGISTERS_BASE + CTRL_CORE_PAD_SPI1_CS0_OFFSET),
                (0x000B0000));  // SLEW_CONTROL_SLOW | PULLTYPESELECT_PULLUP | PULLUDENABLE_ENABLED | MUXMODE_SPI1

    // SPI1_CS1
    HW_WR_REG32((Du32Spi_CORE_PAD_IO_REGISTERS_BASE + CTRL_CORE_PAD_SPI1_CS1_OFFSET),
                (0x000B0000));  // SLEW_CONTROL_SLOW | PULLTYPESELECT_PULLUP | PULLUDENABLE_ENABLED | MUXMODE_SPI1

    // SPI1_CS2
    HW_WR_REG32((Du32Spi_CORE_PAD_IO_REGISTERS_BASE + CTRL_CORE_PAD_SPI1_CS2_OFFSET),
                (0x000B0000));  // SLEW_CONTROL_SLOW | PULLTYPESELECT_PULLUP | PULLUDENABLE_ENABLED | MUXMODE_SPI1

    /* Configure xbar connect for MCSPI3: IPU1_IRQ_60 (reserved) mapped to MCSPI3 intr */
    CSL_xbarIrqConfigure (CSL_XBAR_IRQ_CPU_ID_IPU1,
                          IPU_IRQ_MCSPI1_IRQ,
                          CSL_XBAR_MCSPI1_IRQ);

    // Modify the default SPI configurations
    SPI_v1_HWAttrs spi_cfg0;
    SPI_socGetInitCfg(0, &spi_cfg0);

    spi_cfg0.baseAddr = CSL_IPU_MCSPI1_REGS + Du32Ipu_IOMMU_Offset;
    spi_cfg0.chMode = MCSPI_MULTI_CH;
    spi_cfg0.enableIntr = false;    // polling mode
    spi_cfg0.chnCfg[0].dataLineCommMode = MCSPI_DATA_LINE_COMM_MODE_6;  // D1 is Rx; D0 is Tx
    spi_cfg0.chnCfg[1].dataLineCommMode = MCSPI_DATA_LINE_COMM_MODE_6;
    spi_cfg0.chnCfg[2].dataLineCommMode = MCSPI_DATA_LINE_COMM_MODE_6;

    SPI_socSetInitCfg(0, &spi_cfg0);

    MCSPI_init();
}

and the transfer method:

void vSpiDrv_eTransferBytes(MCSPI_Handle stSpiHandle, TU8 *pucTxBuffer, TU8 *pucRxBuffer, TU8 ucByteCount)
{
    SPI_Transaction transaction;
    transaction.count = ucByteCount;
    transaction.rxBuf = pucRxBuffer;
    transaction.txBuf = pucTxBuffer;

    Bool retVal = MCSPI_transfer(stSpiHandle, &transaction);
    if (false == retVal)
    {
        System_printf("uc_iTransferByte error occurred in SPI transfer\n");
    }

//    System_printf("MCSPI_transfer returned transaction status = %d\n", transaction.status);
}

Any ideas for what else I can check would be appreciated.

Thanks,

    Mike

TM4C1294NCPDT: USB0VBUS pin: two questions

$
0
0

Part Number:TM4C1294NCPDT

Hi,

I had to deal with one problem and have just been informed on the other.

1. Upon power-up (autonomos, not via VBUS) in maybe two out of many devices (USB0VBUS pin is configured as USB, not PB1 - I did not write the code) the pin were consistently driven low, loading VBUS (successfully - 5V was going down to under 4V). After unplugging / plugging back the USB cable the USB would start functioning. Eventually the pin was damaged. I remedied this by inserting 1K resistor in series with the pin, and in the spun version also put a 3.6V Zener after it to counter ESD and 5V in case it does something to the pin. So far seems to work.

2. Today we have been made aware that when the device is powered down but the USB Master (our device is used as a slave) is still plugged in, the CPU stays powered. I have not found anything mentioning the CPU could be powered via the USB0VBUS pin (the only connection to any power at that point.)
What gives?

Best, Mike

TMS320F28027F: Minimum JTAG pins for custom board and motorWare

$
0
0

Part Number:TMS320F28027F

Hi,

I am making a custom motor drive based around the 027F.  This board is extremely space constrained and I just wanted to double check what I actually needed for motorWare and the GUI to be functional.

Do I need to pin out the full JTAG connector (TRST#, TCK, TMS, TDI, TDO) or can I get away with just the cJTAG and have everything work, including the motorWare GUI and a custom GUI made in TI's GUI Composer?

Thanks,

Jim


LAUNCHXL-F28379D: How to generate 12 independent PWM output for 3 level NPC inverter

$
0
0

Part Number:LAUNCHXL-F28379D

Hello,

I'm working on 3 level NPC inverter. I'm new to TI C2000. I was trying to configure ePWM for 12 independent PWM channels to generate this states in one phase (0100, 0010) in addition to (1100, 0110, 0011).

How to configure 12 independent PWM signals?

I've tried but when I was changing one output, the other in pair was changing too. I thing that is for 2 level inverter with hardware dead time. It could be used that way for 3 level inverter, but not when I need to use the 0100 and 0010 states. From what I've read, if I will use 12 independent signals, then I'll need to implement dead time myself.

Could someone point me into the right direction. Is there example code with independent PWM channels for my launchpad?

TMDX570LC43HDK: "Hercules Safety MCU Demo" How to Debug

$
0
0

Part Number:TMDX570LC43HDK

Hy,

I'm working on a TMDX570LC43HDK board,

I would like to use as much as possible the "Hercules Safety MCU Demos"

regarding this what seems strange to me are the following points:

  1. when I import the CCS project from "C:\ti\Hercules\Hercules Safety MCU Demos\4.0.0\TMS570LC43x_target_sources" I obtain an almost empty project so I've to fill the folder "Halcogen" and "demo-app" manually, but it is ok, after this I can build the project and deploy it to the board
  2. Is not available the Halcogen project to import in Halcogen
  3. When I start the project in debug and then open the labview interface it seems to work fine but it is not, for example the led demo is not working (but I've not a communication error)
  4. If I reset the board with PORRST i can pilot the demo from the LabView interface but I've no more debug available
  5. When I click on Code Composer STudio on Labview interfaceit just open CodeComposerStudio

Finally If possible I'm interested to the Halcogen project and in debug the TMDX570LC43HDK C application driven from Labview interface.

Thanks

Antonio

BQ34Z100-G1: Calibration with BQStudio

$
0
0

Part Number:BQ34Z100-G1

Hi, 

I encounter difficulty to calibrate in current.

I charge my battery at 2000mA (I mention this current in the corresponding field) and I run this calibration.

But after several secondes, calibration did not work... Message : 'Client does'nt awnser within 30s [...] on pipe' (I acknowledge that I no longer have the exact message in mind)

Apparently the software is waiting for an answer.

BR

CCS/MSP430F5528: usb port

$
0
0

Part Number:MSP430F5528

Tool/software: Code Composer Studio

Can  I program the mcu with the usb port (PU.1,PUR,PU.0)?

or can I see the output of the ADC through USB Port there?

Please help me

OPT3007: Power supply requirements for OPT3007

$
0
0

Part Number:OPT3007

Hi,

I have a customer with questions on following:

1.      PSRR requirements? <dB and frequency>

2.      Integrated noise requirements at Vout?

Thanks,

Chuchen

Viewing all 262198 articles
Browse latest View live


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