Jump to content
Sign in to follow this  
Graham

DMA Block Transfer transfers single word

Recommended Posts

My Setup: Using a MSP430FR5994 device connected over USB to MSPDebug interface. Implemented DMA transfers using TI's interface found in the driverlib source.

Two questions:

1. Is DMA disabled when I am connected to MSPDebug? If so why can I see single transfers between memory locations.

2. When I try to do a block transfer I only see a single word being transferred. Thoughts on why that would be?

Here is some code.

DMA_disableTransferDuringReadModifyWrite();
dma0Config.channelSelect = DMA_CHANNEL_1;
dma0Config.transferModeSelect = DMA_TRANSFER_BLOCK; 
// CONFIG_SAMPLE_SIZE = 32
dma0Config.transferSize = CONFIG_SAMPLE_SIZE;
dma0Config.transferUnitSelect = DMA_SIZE_SRCWORD_DSTWORD;
volatile unsigned int a[CONFIG_SAMPLE_SIZE] = {0};
DMA_init(&dma0Config);

DMA_setSrcAddress(DMA_CHANNEL_1,
                 (uint32_t) (input),
                 DMA_DIRECTION_UNCHANGED);

DMA_setDstAddress(DMA_CHANNEL_1,
                 (uint32_t) (a),
                 DMA_DIRECTION_UNCHANGED);
DMA_enableInterrupt(DMA_CHANNEL_1);
DMA_enableTransfers(DMA_CHANNEL_1);
DMA_startTransfer(DMA_CHANNEL_1);

Any help would be greatly appreciated. Thanks.

Share this post


Link to post
Share on other sites

Please disregard, I figured out the answer. Turns out a different interrupt system was messing with the DMAs. Sometimes in can be difficult reasoning about the ordering of interrupts. Thanks.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×