• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Low Power RF & Wireless Connectivity » Low Power RF Proprietary Software & SimpliciTI Forum » CC1110 DMA setup for radio
Share
Low Power RF & Wireless Connectivity
  • Forums
  • Announcements
  • Files
  • E2E Wiki
Options
  • Subscribe via RSS

Forums

CC1110 DMA setup for radio

This question is answered
Richard Horn
Posted by Richard Horn
on Dec 09 2009 08:51 AM
Prodigy30 points

I cannot seem to see why my CC1110 radio is not transmitting when setup with DMA. I have more or less copied the recommended examples for the PER test code and the basic examples:

static uint8 txrxbuffer[17] = {16, ..... } - first byte is length followed by 16 other bytes

dmaConfig0.SRCADDRH  = ((uint16)txrxbuffer >> 8) & 0x00FF;  // Setup the config data structure
dmaConfig0.SRCADDRL  = (uint16)txrxbuffer & 0x00FF;
dmaConfig0.DESTADDRH = ((uint16)&X_RFD >> 8) & 0x00FF;
dmaConfig0.DESTADDRL = (uint16)&X_RFD & 0x00FF;
dmaConfig0.VLEN      = DMA_VLEN_USE_LEN;
dmaConfig0.LENH      = 0;
dmaConfig0.LENL      = 17;
dmaConfig0.WORDSIZE  = DMA_WORDSIZE_BYTE;
dmaConfig0.TMODE     = DMA_TMODE_SINGLE;
dmaConfig0.TRIG      = DMA_TRIG_RADIO;
dmaConfig0.SRCINC    = DMA_SRCINC_1;
dmaConfig0.DESTINC   = DMA_DESTINC_0;
dmaConfig0.IRQMASK   = DMA_IRQMASK_ENABLE;
dmaConfig0.M8        = DMA_M8_USE_8_BITS;
dmaConfig0.PRIORITY  = DMA_PRI_LOW;
    
// Load DMA configuration to channel 1;
DMA1CFGH = ((uint16)&dmaConfig0 >> 8) & 0x00FF;
DMA1CFGL = (uint16)&dmaConfig0 & 0x00FF;

DMAARM |= DMAARM1;

RFST = RFST_STX;

- but nothing happens. I setup an interupt on RFTXRFIF and it only occurs asserts once, but no other RFIF flags are asserted to indicate underflow. Is this the correct way to load in the data length for the first transfer into RFD?

Any help much appreciated..

Richard.

dma //CC1110 Radio Settings
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • esy
    Posted by esy
    on Dec 10 2009 05:05 AM
    Verified Answer
    Verified by Kjetil
    Expert3130 points

    Could it be that you are using "Data model: small" in the project setup (if you're using IAR EW8051, see Project options -> General options -> Target (tab) -> Data model)?

    This would typically cause your txrxbuffer[] to be stored in the IDATA memory, i.e. so when you try to set the SRCADDR of the DMA config you will get an address to the 256 bytes large IDATA memory space (this is the part of RAM with the fastest read/write access). The DMA can only operate on the XDATA memory space so the SRCADDR must be the XDATA address to the buffer. If you switch to "Data model: large" static / global variables and arrays will automatically be assumed located in the larger XDATA memory space, so then I think this will automatically be resolved. Since you've copied that example I guess this is what have happened. Alternatively, you may try to declare the buffer using the __xdata keyword (IAR specific for 8051s) to manually place it in the XDATA memory space, regardless of your data model, e.g. change into:

    static __xdata uint8 txrxbuffer[17] = {16 ... };

    dma system-on-chip data model cc1110 XDATA iData
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Richard Horn
    Posted by Richard Horn
    on Dec 11 2009 09:20 AM
    Prodigy30 points

    Thanks for the suggestion - changing to 'large' data model has solved the problem.

    Richard.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Timmy
    Posted by Timmy
    on Feb 15 2010 05:47 AM
    Prodigy70 points

    I've got a very similar problem.

    In RX the DMA doesn't fill the IncomingFrame structure (declared as XData) with the data from RFD and I am already using  a Large data model.  Any ideas why?

    Thank you.

     

    Tim.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Richard Horn
    Posted by Richard Horn
    on Feb 15 2010 06:08 AM
    Prodigy30 points

    Do you have CRC turned on? If so are you receiving two extra bytes? If this is turned on, then the two extra bytes must be read before the RFIF flag is asserted, i.e. for my original example I would need a length of 17 for the tx and 19 for the rx.

    Richard.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Siri
    Posted by Siri
    on Feb 15 2010 07:21 AM
    Expert5005 points

     

    Hi

     

    Just wanted to recommend you to read Design Note DN107 DMA and Radio Configuration (http://www.ti.com/lit/swra164)

    This design note shows how the DMA should be configured to match the different packet handling configurations of the CC1110.

     

    BR

     

    Siri

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Timmy
    Posted by Timmy
    on Feb 16 2010 01:42 AM
    Prodigy70 points

    Thank you for your replies.

     

    Richard: Yes, I've got CRC on and DMA reads n+3 bytes from RFD, where n is defined in 1st byte.

    In my program  I am using the MRFI library and it is implemented on two boards (ED and  AP). Both of them have identical MRFI set up and the ED can receive without any problems, however,  the AP cannot process incoming packets.

    The AP triggers the RX ISR when the ED sends data, but the DMA doesn't copy bytes from RFD ( the IncomingPacket structure is empty).

     

    Siri: Thank you for the Design Note.

    Here's the DMA setup I am using:

    Source: RFD

    Destination: &mrfiIcomingPacket[0]

    VLEN: n+3

    TMODE: single

    Source increment: 0

    Destination increment: +1

    TRIG: 19 ( RF)

    Wordsize: 8bit

    IRQ: disabled

    M8: all 8bits

    Priority: normal

    With variable packet length, CRC and LQI.

    Is that what it should be or I'm missing something?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use