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

DP83640: Why pull-up resistors and pull-down resistors are strongly recommended

$
0
0

Part Number:DP83640

Hello support team,

I have some questions about DP83640.

Looking at the circuit diagram of "TMS570LS31x Hercules Development Kit (HDK)", it is strongly recommended to connect pull-up resistors to CRS_DV of DP83640, and to connect pull-down resistors to RXD_3 and RXD_2.

[Questions]
1. Why is it strongly recommended to use pull-up and pull-down resistors?

2. Are these resistors necessary in the case of using the other PHYs (eg TLK110 etc.) as well?

Best regards,
M. Tachibana


Linux/AM3358: AM335x SPI Chipselect not continous

$
0
0

Part Number:AM3358

Tool/software: Linux

Hello 

I have designed a custom board  of AM3358 with reference as General purpose EVM.

We have SPI0 connected to one of our SPI slave and we have configured our SPI0 in the master mode. We want the spi to receive continously data from the DSP. We have observed that CS0 is not continuously clocking  and periodically either stretching to high or low for a period of time and this is periodically happening. I want my CS to be continuous and this event should not happen.

What can be the problem?

Regards

Mad_hu

Linux/BEAGLEBK: McASP transmit errors

$
0
0

Part Number:BEAGLEBK

Tool/software: Linux

We have a custom board based on some TDM codecs connecting to McASP0 on the BeagleBone black. 8 TDM channels, with setting CBS CFS & the on-board McASP 24.576MHz clock for MCLK. This MCLK is shared to board above too.

I have a ti-rt 4.14 kernel with my custom driver running jackd2 with a very low period & high priority.

Have put some printks into the kernel, and I get this repeated error caused by jack xruns, restarting the soundcard.

I have patched mcasp driver so that when GBLCTL is written to, GBLCTL is readback as HERE.

This repeats over & over while jack's softmode is enabled. This only happens with really tiny period values, with 256 and above it trys to restart the card once or twice.

[  748.951772] AUDIOTEST davinci_mcasp_start stream: 0
[  748.956704] AUDIOTEST mcasp_start_tx
[  748.960317] AUDIOTEST davinci_mcasp_start stream: 1
[  748.965219] AUDIOTEST mcasp_start_rx
[  748.969932] AUDIOTEST GBLCTL write error reg: 96 val: 1
[  748.976214] AUDIOTEST davinci_mcasp_stop stream: 0
[  748.976420] davinci-mcasp 48038000.mcasp: Transmit buffer underflow
[  748.987335] AUDIOTEST mcasp_stop_tx
[  748.990847] AUDIOTEST davinci_mcasp_stop stream: 1
[  748.995659] AUDIOTEST mcasp_stop_rx
[  748.999212] davinci-mcasp 48038000.mcasp: unhandled rx event.
rxstat: 0x00000104


So first when  mcasp_start_rx is called, it tries to set GBLCTL.RCLKRST and fails.

Then, when transfer occurs, the processor sets RSTAT.RCKFAIL as it has failed.

This means RCLK is failing to turn on. Which is strange as TCLK is OK.
The MCLK is onboard, and is enabled when board is turned on.

The priority of the McASP interrupts is 95, jackd is 90. Do I need to set any DMA interrupts?

DTS snippets:

pinctrl-single,pins = <
+ /* P9_25 McASP0 Transmit Master Clock (MCLK) */
+ AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0)
+
+ /* P9_28 McASP0 Serial Data 2 (OUT) (DAC_SDATA) */
+ AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
+
+ /* P9_29 McASP0 Transmit Frame Sync (LRCLK) */
+ AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0)
+
+ /* P9_30 McASP0 Serial Data 0 (IN) (ADC_SDATA) */
+ AM33XX_IOPAD(0x998, PIN_INPUT_PULLUP | MUX_MODE0)
+
+ /* P9_31 McASP0 Transmit Bit Clock (BCLK) */
+ AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+
+ /* Y4 MCLK oscillator disable (active-low) */
+ AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7)
+ >;

+&mcasp0 {
+ op-mode = <0>;
+ tdm-slots = <8>;
+ serial-dir = <
+ 2 0 1 0
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+ >;
+ tx-num-evt = <1>;
+ rx-num-evt = <1>;
+};

Driver snippets:

snd_soc_dai_set_sysclk(cpu_dai, MCASP_CLK_HCLK_AHCLK, sysclk, SND_SOC_CLOCK_IN);
snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
snd_soc_dai_set_tdm_slot(cpu_dai, 0xFF, 0xFF, 8, 32);

What can cause this behavior with the RX Clock?

BQ40Z60: Cell balancing setting "Balancing Configuration[CBM]" and recomendations regarding cell balancing

$
0
0

Part Number:BQ40Z60

Hello!

We are currently developing a system in which we intended to use BQ40Z60 as the gauge for a 4S1P Li-ion pack. But after not finding the Balancing Configuration[CBM] in bqstudio I searched the forum for answers and found a post in which it is stated that there is a firmware bug regarding the cell balancing. This was posted a while back so I just want to know if this bug has been fixed.

And if it is not fixed what are the present recomendation regarding using the BQ40Z60 to balance the cells? I saw it mentioned that settting the CBM to 1 that cell1 will not balance and that if CBM=0 the cells will over balance. What is ment by overbalancing the cells?

Best regards,

Carl

BQ24171: System connected directly to Vbat. No powerpath switching.

$
0
0

Part Number:BQ24171

In the datasheet there is a single cell application with the System connected to Vbat (no power path switching). 

Is this also possible with 12V Adapter and  a 2-cell battery? Which modifications are necessary? 


TPS61041-Q1: About connection method (Vin and Vsw)

$
0
0

Part Number:TPS61041-Q1

Hi All,

Is it OK to connect to SW and VIN with different voltage?

(12V-Coil-SWpin)


For example, VIN = 6 V, SW = 12 V

Is it OK if the absolute maximum ratings are observed?

Customer's expected voltage to be used is VIN < SW.

Best Regards,
Koji Hayashi.

CCS/TMDXICE110: REGION_BSS does not exist. Something's corrupted.

$
0
0

Part Number:TMDXICE110

Tool/software: Code Composer Studio

Hello.

Today I again tried deal with example NIMU_ICSS_BasicExample_iceAMIC110_wSoCLib_armExampleproject. It was working. But after I tryed load my another project to FLASH and after I return to NIMU_ICSS_BasicExample, I get errors. When I working with FLASH project, I'm changed some options in CCS and not remember. After maybe, NIMU_ICSS_BasicExample was corrupted. Now I can not restore the correct operation. Removing and re-importing the project from the PDK folder gives the same result. What are the ways to resolve?

For example, NIMU_BasicExample_bbbAM335x_armExampleproject, compiles and works.

WL1801 device (not MOD) FCC certification support?


LMK00105: about LMK00105 input

$
0
0

Part Number:LMK00105

hi  dear supporting team,

could LMK00105 input support 1Hz? if not, what's the minimum input frequency?  tks a lot!

SN75DP139: SN75DP139 using problem

RTOS/AM3352: UART test error

$
0
0

Part Number:AM3352

Tool/software:TI-RTOS

Hi all,

I used BBB short connect pin UART1 RX/TX and RTS/CTS. To do the high baud rate test.

Attached is the test project.

It can pass 1843200  3686400 baud rate test. But failed at 460800 and 1500000.

When working at 1500000 If I load the program and click CCS run, failed.

If load program ->click CCS restart->click CCS run, it working well.

Could you please help this? I don't know what does CCS restart doing? And how to fix this? thanks!

BR,
Denny

(Please visit the site to view this file)

Compiler/TMS320F28379D: Compiler-opt corrupts the data written inside a union (Bitfield)

$
0
0

Part Number:TMS320F28379D

Tool/software: TI C/C++ Compiler


I want to write the Registers of an external IC. Therefore the data has to be send on one Pin in a strictly defined order.

To keep things readable I wrote an union for that task.

If I run the method Reg_Comm.setupt_Bitstream() the resulting Bitstreams are different depending on the compiler-opt-lvl I chose.

While using opt-lvl 0 The Bitfiled is filled with the data as expected.
But when I change the opt-lvl to 2 the data inside the Bitfiled is different at many places.

(the Data differes after the call of the private method set_Register_Data() )
I allready tried the followeing things.
- Make the union voaltile
- Make the Bitstream-Array voaltile
- delete the fuctiion set_Register_Data() and write it directly into setup_Bitstream()

None of these steps helped.

Detailed Compiler-settings:
Working:
-v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff --opt_for_speed=4
Data-Corruption:
-v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -O2 --opt_for_speed=4


Here is the Code:

//HEADER START HERE

#define HIGHEST_REGISTER_NUMBER   0x0C 

typedef union{
    struct {
        uint32_t P          : 1;    
        uint32_t DATA_CRC   : 4;
        uint32_t DATA       : 8;
        uint32_t DATA_S     : 1;    
        uint32_t W          : 1;    
        uint32_t R          : 1;    
        uint32_t ADR_CRC    : 4;
        uint32_t ADR        : 7;
        uint32_t ID         : 3;    
        uint32_t CTS        : 1;    
        uint32_t ADR_S      : 1;    
    }Fct_Grp;

    struct{
        uint32_t P_Bit0         : 1;
        uint32_t DATA_CRC_Bit0  : 1;
        uint32_t DATA_CRC_Bit1  : 1;
        uint32_t DATA_CRC_Bit2  : 1;
        uint32_t DATA_CRC_Bit3  : 1;
        uint32_t DATA_Bit0      : 1;
        uint32_t DATA_Bit1      : 1;
        uint32_t DATA_Bit2      : 1;
        uint32_t DATA_Bit3      : 1;
        uint32_t DATA_Bit4      : 1;
        uint32_t DATA_Bit5      : 1;
        uint32_t DATA_Bit6      : 1;
        uint32_t DATA_Bit7      : 1;
        uint32_t DATA_S_Bit0    : 1;    
        uint32_t W_Bit0         : 1;    
        uint32_t R_Bit0         : 1;    
        uint32_t ADR_CRC_Bit0   : 1;
        uint32_t ADR_CRC_Bit1   : 1;
        uint32_t ADR_CRC_Bit2   : 1;
        uint32_t ADR_CRC_Bit3   : 1;
        uint32_t ADR_Bit0       : 1;
        uint32_t ADR_Bit1       : 1;
        uint32_t ADR_Bit2       : 1;
        uint32_t ADR_Bit3       : 1;
        uint32_t ADR_Bit4       : 1;
        uint32_t ADR_Bit5       : 1;
        uint32_t ADR_Bit6       : 1;
        uint32_t ID_Bit0        : 1;    
        uint32_t ID_Bit1        : 1;    
        uint32_t ID_Bit2        : 1;    
        uint32_t CTS_Bit0       : 1;    
        uint32_t ADR_S_Bit0     : 1;    
    }Bits;

    uint32_t Hex;

}Register_Bitstream;
    
class Reg_Comm{
public:
    void setup_Bitstream();
    
    Register_Bitstream Bitstream[HIGHEST_REGISTER_NUMBER + 1];
private:
    void set_Register_Adr();
    void set_Register_Data();    
};

//HEADER ENDS HERE

//CPP START HERE

#define ENCDS           0
#define M2S             0x00
#define SELRES          0x03
#define HYS             0x00
#define SELSSI          1
#define CRC6            0
#define NZB             0
#define RPL             0
#define AERR            0
#define FERR            0
#define FCTR            0x0004
#define GRAY            0
#define TMODE           0x00
#define TIMO            0
#define TMA             0
#define TOA             0
#define RATIO           0x00
#define GAIN            0x06
#define SINOFFS         0x00
#define COSOFFS         0x00
#define REFOFFS         0
#define PHASE           0x00

void Reg_Comm::setup_Bitstream(){
    set_Register_Adr();
    set_Register_Data();

    for(int i = HIGHEST_REGISTER_NUMBER; i >= 0x00; i--){
        Bitstream[i].Fct_Grp.ADR_S  = 1;
        Bitstream[i].Fct_Grp.CTS   = 1;

        Bitstream[i].Fct_Grp.ID      = 0b000;

        /*Bitstream[i].Fct_Grp.ADR_CRC = calculate_CRC(   (uint16_t) Bitstream[i].Fct_Grp.ADR
                                                    + ( ((uint16_t) Bitstream[i].Fct_Grp.ID) << 7)
                                                    + ( ((uint16_t) Bitstream[i].Fct_Grp.CTS)    << 10)
                                                    , 11);
		*/

        Bitstream[i].Fct_Grp.R      = 0;
        Bitstream[i].Fct_Grp.W      = 1;
        Bitstream[i].Fct_Grp.DATA_S = 1;

        /*Bitstream[i].Fct_Grp.DATA_CRC = calculate_CRC(Bitstream[i].Fct_Grp.DATA
                                                     , 8);
		*/
        Bitstream[i].Fct_Grp.P = 0;
    }
}

void Reg_Comm::set_Register_Adr(){
    for(uint16_t i = 0; i <= HIGHEST_REGISTER_NUMBER; i++){
        Bitstream[i].Fct_Grp.ADR = i;
    }
}

void Reg_Comm::set_Register_Data(){
    // the data can be changed just by updating the #define

    // Register 0x00
    Bitstream[0x00].Bits.DATA_Bit7  = ENCDS;

    Bitstream[0x00].Bits.DATA_Bit5 = (M2S & 0x01) ? 1:0;
    Bitstream[0x00].Bits.DATA_Bit6= (M2S & 0x02) ? 1:0;

    Bitstream[0x00].Bits.DATA_Bit0 = (SELRES & 0x01) ? 1:0;
    Bitstream[0x00].Bits.DATA_Bit1 = (SELRES & 0x02) ? 1:0;
    Bitstream[0x00].Bits.DATA_Bit2 = (SELRES & 0x04) ? 1:0;
    Bitstream[0x00].Bits.DATA_Bit3 = (SELRES & 0x08) ? 1:0;
    Bitstream[0x00].Bits.DATA_Bit4 = (SELRES & 0x10) ? 1:0;

    // Register 0x01
    Bitstream[0x01].Bits.DATA_Bit5 = (HYS & 0x01) ? 1:0;
    Bitstream[0x01].Bits.DATA_Bit6 = (HYS & 0x02) ? 1:0;
    Bitstream[0x01].Bits.DATA_Bit7 = (HYS & 0x04) ? 1:0;

    // Register 0x02
    Bitstream[0x02].Bits.DATA_Bit6 = SELSSI;

    // Register 0x03
    Bitstream[0x03].Bits.DATA_Bit7 = CRC6;
    Bitstream[0x03].Bits.DATA_Bit6 = RPL;

    Bitstream[0x03].Bits.DATA_Bit1 = AERR;
    Bitstream[0x03].Bits.DATA_Bit0 = FERR;

    // Register 0x04
    Bitstream[0x04].Fct_Grp.DATA  |= (uint16_t) (FCTR & 0x00FF) << 7;

    // Register 0x05
    Bitstream[0x05].Bits.DATA_Bit7   = GRAY;

    Bitstream[0x05].Bits.DATA_Bit0 = (FCTR & 0x0100) ? 1:0;
    Bitstream[0x05].Bits.DATA_Bit1 = (FCTR & 0x0200) ? 1:0;
    Bitstream[0x05].Bits.DATA_Bit2 = (FCTR & 0x0400) ? 1:0;
    Bitstream[0x05].Bits.DATA_Bit3 = (FCTR & 0x0800) ? 1:0;
    Bitstream[0x05].Bits.DATA_Bit4 = (FCTR & 0x1000) ? 1:0;
    Bitstream[0x05].Bits.DATA_Bit5 = (FCTR & 0x2000) ? 1:0;
    Bitstream[0x05].Bits.DATA_Bit6 = (FCTR & 0x4000) ? 1:0;

    // Register 0x06
    Bitstream[0x06].Bits.DATA_Bit5 = TIMO;

    Bitstream[0x06].Bits.DATA_Bit1 = (TMODE & 0x01) ? 1:0;
    Bitstream[0x06].Bits.DATA_Bit2 = (TMODE & 0x02) ? 1:0;
    Bitstream[0x06].Bits.DATA_Bit3 = (TMODE & 0x04) ? 1:0;

    Bitstream[0x06].Bits.DATA_Bit0 = TMA;

    // Register 0x07
    Bitstream[0x07].Bits.DATA_Bit3    = TOA;

    // Register 0x08
    Bitstream[0x08].Bits.DATA_Bit4   = (GAIN & 0x01) ? 1:0;
    Bitstream[0x08].Bits.DATA_Bit5   = (GAIN & 0x02) ? 1:0;
    Bitstream[0x08].Bits.DATA_Bit6   = (GAIN & 0x04) ? 1:0;
    Bitstream[0x08].Bits.DATA_Bit7   = (GAIN & 0x08) ? 1:0;

    Bitstream[0x08].Bits.DATA_Bit0  = (RATIO & 0x01) ? 1:0;
    Bitstream[0x08].Bits.DATA_Bit1  = (RATIO & 0x02) ? 1:0;
    Bitstream[0x08].Bits.DATA_Bit2  = (RATIO & 0x04) ? 1:0;
    Bitstream[0x08].Bits.DATA_Bit3  = (RATIO & 0x08) ? 1:0;

    // Register 0x09
    Bitstream[0x09].Fct_Grp.DATA |= SINOFFS << 7;

    // Register 0x0A
    Bitstream[0x0A].Fct_Grp.DATA |= COSOFFS << 7;

    // Register 0x0B
    Bitstream[0x0B].Bits.DATA_Bit2  = (PHASE & 0x01) ? 1:0;
    Bitstream[0x0B].Bits.DATA_Bit3  = (PHASE & 0x02) ? 1:0;
    Bitstream[0x0B].Bits.DATA_Bit4  = (PHASE & 0x04) ? 1:0;
    Bitstream[0x0B].Bits.DATA_Bit5  = (PHASE & 0x08) ? 1:0;
    Bitstream[0x0B].Bits.DATA_Bit6  = (PHASE & 0x10) ? 1:0;
    Bitstream[0x0B].Bits.DATA_Bit7  = (PHASE & 0x20) ? 1:0;

    Bitstream[0x0B].Bits.DATA_Bit1 = REFOFFS;

    Bitstream[0x0B].Bits.DATA_Bit0  = (RATIO & 0x10) ? 1:0;
}

//CPP ENDS HERE

TMS320F28377S: USB CDC serial Windows 7 drivers

$
0
0

Part Number:TMS320F28377S

Hello

I have a custom board inspired from F28377 controlCard.

I have a code directly inspired from the usb_dev_serial exemple.

When the USB cable is linked to a computer on Windows 10 64bits, the drivers is installed automatically in few second.

The device is seen like "USB Serial peripheral". Not need to specify a specific drivers.:

The "Serial" communication work properly.

Now, I Plug the board on a computer with Windows 7 64 bits.

Device is detected with the name I has put in the µC ("SMD Device") but drivers is not found by windows. Then I try to indicate the following repository to search:

C:\ti\c2000\C2000Ware_1_00_03_00\utilities\windows_drivers 

I also try the old way:

C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_common\windows_drivers

I have the following message:

Windows could not install your SMD Device.
Windows did not find any drivers for your device.
If you know the manufacturer of your device, you can visit their website and consult the Technical Support section .... "

Is somebody has an idea to get a working driver for windows 7? Some post relate this problem on this forum, but never with this kind of problem.

Thank

BLE 5 compatible sniffer

$
0
0

Hello,

I really need a reasonable priced BLE sniffer that supports both LE 2M and LE Coded PHYs that BLE 5 introduced. The only solutions I seem to find commercially available are really expensive (from Ellisys & Frontline)

When will you introduce an update of CC2540 sniffer dongle or something similar that supports BLE 5 features? If not soon, is there any BLE 5 compatible sniffer that you can point at?

TMS570LC4357: JTAG connections

$
0
0

Part Number:TMS570LC4357

Hi,

We are developing a new hardware, on which we have a TMS570LC4357 and would like a JTAG interface from the outside of the system.

Our HW supplier is challenging the need of nRST, nTRST and RTCK signals, because they would like a standard chip used to demux (there will be at least 6 JTAG devices able to communicate on that interface).

This interface is mainly intended for software flashing in the CPU internal flash, but during development some issues may need to be debugged using this interface.

In order to support those 2 main needs (flash programming and debugging), do we need those signals (nRST, nTRST, RTCK) in this connector?

My current assumptions are:

  • nTRST: the action of this signal is normally the same than driving TMS to 1 during 5 TCK cycles, so I guess we don't need this signal, but I receive an answer from iSYSTEM support team (because we are using IC5000 probes) who said to me that they couldn't confirm that the ICEPICK logic could be reset with the standard method. So now I am confused.
  • nRST: this signals allows the debugger to drive a system reset to the CPU, while also providing information regarding the CPU reset state when a reset is not commanded by the debugger. If we don't connect this signal, is the TMS570 DAP able to perform a CPU reset and put the CPU in the same state than a normal reset?
  • RTCK: I read somewhere that the use of this signal was deprecated by ARM. I also understand that the need of it depends on the length of the traces between the target and the connector. If the signal is not connected and errors occur, a workaround would be to reduce the JTAG speed. Am I correct?

If I am going with a connector with no nRST, no nTRsT and no RTCK, what debugging features will be limited or unavailable?

Best regards,

Gael


RTOS/TDA2P-ACD: Using Network Rx/Tx tools for data transfer

$
0
0

Part Number:TDA2P-ACD

Tool/software:TI-RTOS

Hello,

Is it possible to use the Network Tx/Rx tools available in Processor SDK 03.02 for sending and receiving data other than video frames (data such a file or any data structure for that matter). 

If yes, what needs to be modified in the code and what commands shall be used for data transfer.

Regards,

Abhay

the output of tps63002 is only 3.3v

$
0
0

the input voltage of tps63002 is 3.8v,i want to get a output voltage is 5v by the controller pin sleep_pen3,the sleep_pen3 is the voltage supplied by the mcu,

i want to get a output voltage is 5v when the sleep_pen3 is 3.3v,and get a output voltage is 0v when the sleep_pen3 is 0v,however,sometimes the output voltage of tps63002 is 5v,sometimes the output voltage of tps63002 is only 3.3v.

TIDA-00322: Is it possible for cost down UCC27531 instead of BJT, TPS61170 for charge pump?

$
0
0

Part Number:TIDA-00322

Hi SIR,.

Is it possible for cost down UCC27531 instead of BJT, TPS61170 for charge pump? 

or one of the parts for this reference besides ultrasonics,..

MSP430F5419A: The microcontroller freezes when enable interrupt

$
0
0

Part Number:MSP430F5419A

We have a device that collects information. The device can operate without interruption for a long period of time. Sometimes the microcontroller freezes and  the watchdog timer restarts it. After that, the microcontroller again hangs on the command permission interruption (UCA2IE |= UCRXIE;). GIE on this moment are disabled. Reset in this situation does not help. Only a complete turn off the power and further turn on restart the microcontroller.

Someone had such a problem?
Is there a solution?

CCS/AM5728: How to bring up the custom board designed with AM5728

$
0
0

Part Number:AM5728

Tool/software: Code Composer Studio

hi,

we have designed the custom board with AM5728, now after assembly of custom board how to make use of board for running the application.

we have evaluation board, software development done on it. In the same way, we want to proceed on custom board.

In evaluation board, once power up all bsp's are pre-build and it make ready for use.

In custom board what to be done to make it ready for use. our custom board is one to one to evaluation (processor, pmic,ddr, emmc, sd, nand flash, spi etc)

regards

satya

Viewing all 262198 articles
Browse latest View live