Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all 21948 articles
Browse latest View live

CCS/MSP430G2553: MSP430G2553

$
0
0

Part Number:MSP430G2553

Tool/software: Code Composer Studio

I generated 4 PWM (two pairs of complementary with deadtime) simultaneously in MSP430G2553 using interrupt as we have only two timers in this part.

The PWM is flickering when the duty is varied according to the value through ADC. Please help me to resolve the issue.


MSP430FR5969:where to download the datasheet for the MSP430FR5969 Microcontrollers?

$
0
0

Part Number:MSP430FR5969

good afternoon

I would like to know the link where I can download the datasheet for the microcontroller MSP430FR5969, I have searched for it but I always find the general for families MSP430FR596x, MSP430FR594x, I would like to download the specific one. Thank you.

Linux/MSP430F2618: Programming the device in AS-XM1000 kit

$
0
0

Part Number:MSP430F2618

Tool/software: Linux

hi everyone I am working on wireless sensor network and using xm1000 kit by AdvanticSys, which also have msp430 microcontroller. I want to know that can we program xm1000 through Code Composer Studio (other than tinyOs and Contiki)? 

MSP430G2553: LPM4 settings - high sleep current

$
0
0

Part Number:MSP430G2553

Hi All,  

I have some code which has high sleep current during LPM4.   I have made a branch that ripped everything out except   a)  setting all pin assignments,  b)  setting some clock, ADC, UART settings,  c) going to LPM4 sleep   So basically, system turns on, does some housekeeping and goes to sleep.

The high sleep current in LPM4 -may- be hardware-related but I need to ensure that the software is bulletproof before suggesting that.

Here is a code snippet.   All the pin assignments (P1DIR, P1REN,P1OUT, etc.) are set to an output high or low, no resistor enable.  All the port select settings (PSEL, P2SEL, P3SEL, etc.) are set to 0, so the port are all general purpose I/O.

///////////////////////////////////// code snippet ////////////////////////////////////

DCOCTL = 0; // Select lowest DCOx and MODx settings

BCSCTL1 = CALBC1_1MHZ; // Set DCO

DCOCTL = CALDCO_1MHZ;

// disable UART
UCA0CTL1 |= UCSWRST; // **DEACTIVATE USCI state machine**
IE2 = 0; // disable all USCI_A0 interrupts

// disable ADC conversion
ADC10CTL0 &= ~ADC10IE;
ADC10CTL0 &= ~ADC10ON;
ADC10CTL0 &= ~REFON;
ADC10CTL0 &= ~ADC10SHT_2;
ADC10CTL0 &= ~SREF_1;

// stop watchdog timer
WDTCTL = WDTPW + WDTHOLD; // Stop WDT - also resets clock to SMCLK

__bis_SR_register(LPM4_bits); // Enter LPM4 - NO global interrupts enabled


///////////////////////////////////// end of code snippet ////////////////////////////////////

Is there anything wrong with doing the above?   Anything else I should do before going to LPM4? 

My understanding is that LPM4 basically disables everything - clocks, etc. so really those settings shouldn't matter.  Does anyone have any code references for entering LPM4?

Thank you!

CCS/MSP430FR2355: AC Signal ADC help

$
0
0

Part Number:MSP430FR2355

Tool/software: Code Composer Studio

Hello everyone,

I am currently using an MSP430FR2355 and am trying to take in an ECG signal using ADC Channel 1. The minimum voltage of the signal is roughly 200mV and the maximum voltage is 2.4V. I would like to take the adc values in continuously off this channel so that I can output them to an OLED display. However, when I run the code provided below, every value in the array is equal to 1. I am sure I am doing something wrong, however I am unable to figure it out. Any help would be greatly appreciated. Thanks in advance!

#include <msp430.h>
#include <stdio.h>
#include <math.h>
#include <stdint.h>
#include <stdlib.h>

#include "msp430fr2355.h"

void adc_init(void);

void adc_init(void){

    P1SEL0 |= BIT1;
    P1SEL1 |= BIT1;

    ADCCTL0 &= (~ADCENC);

    ADCCTL0 |= ADCSHT_0 + ADCON; // need to turn on ADCENC at end
    ADCCTL1 |= ADCSSEL_0 + ADCCONSEQ_2;
    ADCCTL2 |= ADCPDIV_2 + ADCRES_2 + ADCSR;

    ADCMCTL0 |= ADCSREF_0 + ADCINCH_1;

    ADCCTL0 |= ADCENC;

}

int main(void)
{
	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
	PM5CTL0 &= ~LOCKLPM5;
	
	uint16_t ADC_temp[100] = {};
	uint8_t i;

	adc_init();

    ADCCTL0 |= ADCENC + ADCSC;
    for(i = 0; i < 100; i++){
        while(!ADCBUSY);
        ADC_temp[i] = ADCMEM0;
    }

    while(1);
	return 0;
}

EVM430-FR6043: 500k? 200k?

$
0
0

Part Number:EVM430-FR6043

Hello:

I am using a 500k transducer. Do I have to use a 200k transducer?
How to configure the 500k transducer?

Need to configure impedance matching? How to configure it?

EVM430-FR6043: Meter Constant

$
0
0

Part Number:EVM430-FR6043

Hi:

How is Meter Constant determined?
Why is it equal to 61?

Do we need to change it when we use it?

Other microcontrollers forum

$
0
0

Hi, i am facing a problem, my mpu6050 gives me values which are ~65000 and above,but it is perfectly working in arduino uno. I am using a risc-v based mcu hifive1.

Can someone help me out?

code:

Wire.beginTransmission(address); //Start communication with the gyro
Wire.write(0x43); //Start reading @ register 43h and auto increment with every read
Wire.endTransmission(); //End the transmission
Wire.requestFrom(address,6); //Request 6 bytes from the gyro
while(Wire.available() < 6); //Wait until the 6 bytes are received
gyro_roll=Wire.read()<<8|Wire.read(); //Read high and low part of the angular data
if(cal_int == 2000)gyro_roll -= gyro_roll_cal; //Only compensate after the calibration
gyro_pitch=Wire.read()<<8|Wire.read(); //Read high and low part of the angular data
if(cal_int == 2000)gyro_pitch -= gyro_pitch_cal; //Only compensate after the calibration
gyro_yaw=Wire.read()<<8|Wire.read(); //Read high and low part of the angular data
if(cal_int == 2000)gyro_yaw -= gyro_yaw_cal;

NOTE: since i read this same issue in other forum of TI i asked here.

output

axis 1 = 65395.07

axis 2= 43.6 (which is a correct one)

axis 3=65503.19


CCS/MSP432E401Y: How to resolve the error of 2062 ?

$
0
0

Part Number:MSP432E401Y

Tool/software: Code Composer Studio

Hi,

When I was trying the hibernation mode suddenly I am not bale to program the board after doing certain IO changes.

Its giving me error of

Error connecting to the target:
(Error -2062 @ 0x0)
Unable to halt device. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK).
(Emulation package 8.0.903.2)

So could some one please help me out to bring it back ..

Thank you!!

Regards,

BINDU

MSP low-power microcontroller forum

$
0
0

Hi, i am facing a problem, my mpu6050 gives me values which are ~65000 and above,but it is perfectly working in arduino uno. I am using a risc-v based mcu hifive1.

Can someone help me out?

code:

Wire.beginTransmission(address); //Start communication with the gyro
Wire.write(0x43); //Start reading @ register 43h and auto increment with every read
Wire.endTransmission(); //End the transmission
Wire.requestFrom(address,6); //Request 6 bytes from the gyro
while(Wire.available() < 6); //Wait until the 6 bytes are received
gyro_roll=Wire.read()<<8|Wire.read(); //Read high and low part of the angular data
if(cal_int == 2000)gyro_roll -= gyro_roll_cal; //Only compensate after the calibration
gyro_pitch=Wire.read()<<8|Wire.read(); //Read high and low part of the angular data
if(cal_int == 2000)gyro_pitch -= gyro_pitch_cal; //Only compensate after the calibration
gyro_yaw=Wire.read()<<8|Wire.read(); //Read high and low part of the angular data
if(cal_int == 2000)gyro_yaw -= gyro_yaw_cal;

NOTE: since i read this same issue in other forum of TI i asked here.

output

axis 1 = 65395.07

axis 2= 43.6 (which is a correct one)

axis 3=65503.19

Linux: AM437x Pinmux Uart1

$
0
0

Tool/software: Linux

Respected Sir,
UART 1 Pinmux configuration. My concern is how to apply the UART 1 configuration on dts file. 
Like I saw for UART 0, the configuration was written in .dts file -
 uart0_pins_default: uart0_pins_default {
  pinctrl-single,pins = <
   0x168 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)
   0x16C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)
   0x170 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_rxd.uart0_rxd */
   0x174 (PIN_INPUT | PULL_DISABLE | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_txd.uart0_txd */
  >;
 };
Those address 0x168,0x16C and so on is written for uart 0 and also different address is written for uart 3. Similarly I am not able to find out for UART 1.
I request you to please guide us about the configuration so that I can use UART 1 channel.
I have one another issues what I am facing during building Buildroot.
I perform two commands -
$make myd_c437x_idk_defconfig and then
$make
 
During make commandI am getting error. I have attached error image with this mail. Please check the attached data.

AD16 External reference voltage

$
0
0

Part Number:MSP430F2003

Tool/software: TI C/C++ Compiler

Hi,

 I have implemented analog to digital voltage conversion using the internal reference voltage of msp430f2003 AD16.However, when I use the external reference voltage, it cannot be used.

Internal reference software configuration: SD16CTL = SD16REFON+SD16SSEL_1;

External reference software configuration: SD16CTL = SD16SSEL_1;

Internal reference hardware: the VREF is grounded by a 104 capacitor.

External reference hardware: VREF with 3.0V LDO (LP2985IM5X) divided by two 100K resistors.

Can you help me identify the problem.

Thanks

best Regard.

CCS: code for interfacing dc motor with msp 430 f5529

$
0
0

Tool/software: Code Composer Studio

what is the code for interfacing dc motor with msp430 f5529?

MSP-CAPT-FR2633: MSP430-FR2633: Design Center Connecting Error : HID device detected, but could not connect to it.

$
0
0

Part Number:MSP-CAPT-FR2633

MSP Captivate Devices used for testing:
1) Captivate Programmer Rev C
2) Captivate FR2633 Rev C
3) Captivate BSWP Rev B
4) Micro usb cable arrived in Box.

System Environment:
1) Operating System: Ubuntu 16.04 LTS (64 bit, x86_64)
2) Design Center: 1.80.00.30-linux-x64
3) CCS: CCS9.0.00018_linux-64
4) JDK: 1.8.0_201

Did CCS & Design Center setup as normal user.

Installed Drivers as Root User.

Added below line to hid.rules : /etc/udev/rules.d/ti_hid.rules : ATTRS{idVendor}==”2047”, MODE=”0666”

Used Design Center to design and created code. Installed the Code to device using CCS. Red light blinked while loading.

Proximity sensor works properly on BSWP. Proximity light glows and goes after 2 seconds when hand is removed from board.

=============================================

Issue Faced:
1) Design Center is unable to connect to board as Normal User (some exception is thrown). 
2) Design Center connects to board when run as Root User. But, doesn’t receives the data (some exception is thrown). 

Note: As a Normal or Root User, in both the cases, CCS automatically detects and connects the board. Also, run time debugging works.

NORMAL USER Exception :

sujit@shinde:~/ti/msp/CapTIvateDesignCenter_1.80.00.30$ ./CapTIvateDesignCenter.bin
04.11 15:18:40 Disconnected from HID device Vid: 8263 Pid 2405 Interface 0
04.11 15:18:40 Disconnected from HID device Vid: 8263 Pid 2405 Interface 1
04.11 15:18:45 Opening log file: /home/sujit/CapTIvateDesignCenter_1_80_00_30/CapTIvateDesignCenter.log
HID open of path failed
com.ti.msp430.HidManagement.HidCommunicationManager$HidCommunicationException: Unable to connect to HidDevice
at com.ti.msp430.HidManagement.HidCommunicationManager.connectDevice(HidCommunicationManager.java:127)
at com.ti.msp430.HidManagement.HidInterface.openConnection(HidInterface.java:209)
at com.ti.msp430.captivate.HidEvents.SensorDataPacketHidInterface.connect(SensorDataPacketHidInterface.java:60)
at com.ti.msp430.captivate.Cdc.CdcDesignCenter.HidConnect(CdcDesignCenter.java:457)
at com.ti.msp430.captivate.CdcBeans.ControllerCustomizer.actionPerformed(ControllerCustomizer.java:559)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
^C

---------------------------------------------------------------------------

ROOT User Exception:

sujit@shinde:~/ti/msp/CapTIvateDesignCenter_1.80.00.30$ sudo ./CapTIvateDesignCenter.bin 

[sudo] password for sujit:
04.11 15:22:10 Disconnected from HID device Vid: 8263 Pid 2405 Interface 0
04.11 15:22:10 Disconnected from HID device Vid: 8263 Pid 2405 Interface 1
04.11 15:22:15 Opening log file: /root/CapTIvateDesignCenter_1_80_00_30/CapTIvateDesignCenter.log
04.11 15:23:21 Connected to HID device Vid: 8263 Pid 2405 Interface 0
04.11 15:23:21 Connected to HID deviceVid: 8263 Pid 2405 Interface 1
Error Writing: (null)
bytes_written: 0 totalsize 19 handle 0x2
Apr 11, 2019 3:23:21 PM com.ti.msp430.HidManagement.HidInterface sendData
SEVERE: null
com.ti.msp430.HidManagement.HidCommunicationManager$HidCommunicationException: Unable to transfer buffer!
at com.ti.msp430.HidManagement.HidCommunicationManager.sendData(HidCommunicationManager.java:198)
at com.ti.msp430.HidManagement.HidInterface.sendData(HidInterface.java:297)
at com.ti.msp430.captivate.Cdc.CdcDesignCenter.setTargetCommunicationInterface(CdcDesignCenter.java:444)
at com.ti.msp430.captivate.Cdc.CdcDesignCenter.HidConnect(CdcDesignCenter.java:460)
at com.ti.msp430.captivate.CdcBeans.ControllerCustomizer.actionPerformed(ControllerCustomizer.java:559)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Error: (null)
Error: (null)
04.11 15:28:27 Disconnected from HID device Vid: 8263 Pid 2405 Interface 0
04.11 15:28:27 Disconnected from HID device Vid: 8263 Pid 2405 Interface 1

=====================================================================

Devices when connected :

1) When the Programmer board is connected to machine, devices gets added at run time under this location

/dev/ttyACM*

a. ttyACM0

b. ttyACM1

2) The default permissions of ttyACM0 & ttyACM1 were User as Root and Group as dialout.


Just gave a random try with various below options to make the design center work in normal user mode, but was unable to succeed.


3) I have added self-user sujit to dialout group. (did not worked)
4) Changed ttyACM0 & ttyACM1 Group to sujit. (did not worked)
5) Changed ttyACM0 & ttyACM1 User to sujit. (did not worked)
6) Changed mode of both the devices to Read-Write-Execute (777). (did not worked)

7) Note : The ttyACM0 & ttyACM1 devices permissions gets RESET to default permissions as the USB cable is removed from machine and plugged again.

Appreciate your inputs for the same.

Compiler/MSP430F67641A: LPM3 MODE

$
0
0

Part Number:MSP430F67641A

Tool/software: TI C/C++ Compiler

Dear Sir/madam,

I am Triggering my SAR adcs with sigma delta Adcs ..

and using only 5 Channels of SAR adcs ..

And during the period of sigma delta adcs interrupt i am getting my all 5 channel SAR adcs interrupts ..

but after some time in running condition i am unable to get all my SAR adcs interrupts during the period of sigma delta adcs..


CCS/MSP430F5529: MSP430F5529

$
0
0

Part Number:MSP430F5529

Tool/software: Code Composer Studio

Has anyone connected the MSP430F5529 to an eCom LSM303 Compass for the SPI? Or any similar device?

Will the following connections work?

MSP430F5529               TO        eCom LSM303agr or LSM303AH

UCA0   SOMI     P3.4     TO         Pin  4     SDI/O                                         

UCA0   SIMO     P3.3     TO         Pin  4     SDI/O          Note both SIMO and SOMI go to Pin4

UCA0   SCLK    P2.7      TO        Pin  7     SCLK

                            P3.5       TO        Pin  2     CS_ACC

Would these I2C connections work?

 UCB1SDA       P4.1     TO         Pin  4     SDI/O    

UCB1SCL       P4.2      TO         Pin  7     SCLK

                          P3.5      TO         Pin  2     CS_ACC

jerry@game-finder.com

MSP430F5329: About the current increase after returning from the UCS fail-safe state

$
0
0

Part Number:MSP430F5329

Hi,

I have question about of UCS Module Fail-Safe Operation.
We are facing the issue of increased power consumption due to UCS fail-safe operation.
We are using XT1 operation ins LF mode, when a clock failure occurs in XT1, the fail-safe function switches the clock source, and as a result only MSP430 has a current increase of about 4μA.

Although the oscillator failure has been removed and the DCOFFG, XT1LFOFFG, and OFIFG registers have been checked to confirm that the failure has been removed, a current increase of about 1μA can be seen compared to before the occurrence of the oscillator failure.

We predicted that the current consumption would be equal since the clock resources would return to their pre-fault state when the MSP430 recovers from the oscillator failure. Wwhat is the reason for the 1A current increase?

Best Regards,
H.U

MSP430F5529: ADS1293 spi interface MSP430F5529 problem

$
0
0

Part Number:MSP430F5529

Hello,

I am working on ADS1293EVM which also contents MSP430F5529. My goal is real time acquisition of the ecg data. To understand, I am absolutely beginner in programming. 

I was trying to launch demo3 from "MSP430 Interface to ADS1293 Code Library". It always stuck on this while and I do not understand why. 

I will appreciate any help with this trouble. Do you know any other codes for interfacing these devices. I will be glad for any inspiration how to solve the communication.

I am not able to display any data as well. I will also appreciate any advice how to display these data.

Thank you,

Daniel

MSP430F2274-EP: Properly configuring I2C port during low power mode

$
0
0

Part Number:MSP430F2274-EP

Hello,

I am creating a circuit designed to be partially powered down for long periods of time. When it is fully powered, my microcontroller will act as an I2C slave and respond to commands on the bus. However, when the circuit is partially powered down, the microcontroller will continue to be powered off of a battery, but the I2C bus and master will not be powered. In this case, what is the best way to configure the I2C port to minimize power loss? Is it safe to set the pins as GPIO outputs and set them low? Will that cause any problems when the circuit powers back up and needs to use the I2C bus again? Or is it better to set them as inputs and pull them up off of the battery rail? If so, what's the highest resistance I could use? I have provided an image to better explain this.

When fully powered on, VCC = VBAT = 3.3V. When partially powered down, VCC = 0V and VBAT = 3.1-2.5V.

MSP432E401Y: Unable to use SSI1 with uDMA channels 10 & 11

$
0
0

Part Number:MSP432E401Y

Our application uses SSI1 with (MSP432E SLSDKv2.40.00.11) SDSPI driver to access an SD card. We found that the driver doesn't work when we specify uDMA channels 10 and 11, but it works fine with uDMA channels 24 and 25. I confirmed that all uDMA channels are set to default priority.

The TRM and TI driver header files suggest that both channel pairs are supported for SSI1. Is this a known H/W limitation or could we be missing a step in the driver initialization?

This configuration works correctly:

const SPIMSP432E4DMA_HWAttrs spiMSP432E4DMAHWAttrs[MSP_EXP432E401Y_SPICOUNT] = {
{
.baseAddr = SSI1_BASE,
.intNum = INT_SSI1,
.intPriority = (~0),
.defaultTxBufValue = (~0),
.rxDmaChannel = UDMA_CH24_SSI1RX,
.txDmaChannel = UDMA_CH25_SSI1TX,
.minDmaTransferSize = 10,
.clkPinMask = SPIMSP432E4_PB5_SSI1CLK,
.fssPinMask = SPIMSP432E4_PB4_SSI1FSS,
.xdat0PinMask = SPIMSP432E4_PE4_SSI1XDAT0,
.xdat1PinMask = SPIMSP432E4_PE5_SSI1XDAT1
}};

This configuration does not work:

const SPIMSP432E4DMA_HWAttrs spiMSP432E4DMAHWAttrs[MSP_EXP432E401Y_SPICOUNT] = {
{
.baseAddr = SSI1_BASE,
.intNum = INT_SSI1,
.intPriority = (~0),
.defaultTxBufValue = (~0),
.rxDmaChannel = UDMA_CH10_SSI1RX,
.txDmaChannel = UDMA_CH11_SSI1TX,
.minDmaTransferSize = 10,
.clkPinMask = SPIMSP432E4_PB5_SSI1CLK,
.fssPinMask = SPIMSP432E4_PB4_SSI1FSS,
.xdat0PinMask = SPIMSP432E4_PE4_SSI1XDAT0,
.xdat1PinMask = SPIMSP432E4_PE5_SSI1XDAT1
}};

Excerpt from MSP432E TRM:

Viewing all 21948 articles
Browse latest View live


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