Analog.com Analog Dialogue Wiki 简体中文
EngineerZone
EngineerZone
  • Log In
  • Site
  • Search
  • User
  • Support

    Popular Forums

    • RF and Microwave
    • Power Management
    • Video
    • FPGA Reference Designs
    • Precision ADCs
    • Linux Software Drivers
    • SigmaDSP Processors & SigmaStudio Dev. Tool

    Product Forums

    • A2B
    • Amplifiers
    • Analog Microcontrollers
    • Clock and Timing
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy Monitoring and Metering
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Processors and DSP
    • Switches/Multiplexers
    • Temperature Sensors
    • Voltage References
    View All

    Application Forums

    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing
    • Optical Sensing
    • Precision Technology Signal Chains
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools and Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Reference Designs
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Recent Discussions

    • Pluto + GNURADIO frequency change
    • Pluto SDR
    • pluto sdr pyadi-iio continous iq recording
    • attribute error
    • gps-sdr-sim is not working with my ADALM-PLUTO

    Places

    • ADI Education Home
    • ADI Education China
    • ADI Education India
    • ADI Education Philippines
    • StudentZone (Analog Dialogue)
    • Virtual Classroom

    Latest Webinars

    • Webinar Biasing Circuits for GaN and GaAs RF Amplifiers
    • Webinar Improving Switch-Mode Power Supplies Using Noise Cancelling Technology
    • Webinar Accelerate Your Design With a 2 to 24 GHz Wideband Transceiver Reference Design
    • How to Design an Optimized Motion Control System for Intelligent Edge Based Surveillance Camera
    • How to Enhance High Precision Current Sensing Systems
    View All
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes: Buffers and Fan Out
    View All

    Places

    • Community Help
    • Logic Lounge

    Resources

    • EZ Code of Conduct
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

     

    How To Design Fieldbus Agnostic Smart Factory Sensors

     

    You Passed EMC Testing… But Wait, Is There More?

    Latest Blogs

    • The 5 Things You Need to Know about RF Matching Networks
    • Does Reliability Prediction Uncertainty Justify Mandating Two Channel Safety?
    • An Inside Look at 2022
    • Meet the Person Behind the Quizzes
    • Updates Required: Why Newer is Better
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • Partners

    Electronic Design Services - PartnerZone

    • Boston Engineering
    • Calian, Advanced Technologies
    • Colorado Engineering Inc. (DBA CAES AT&E)
    • Clockworks Signal Processing
    • Epiq Solutions
    • Fidus
    • PalmSens
    • Richardson RFPD
    • Tri-Star Design, Inc.
    • VadaTech
    • Vanteon
    • X-Microwave
    View All
ADSP-BF70x
  • Processors and DSP
  • Blackfin Processors
  • ADSP-BF70x
  • Cancel
ADSP-BF70x
Documents FAQ: How to configure MSI IDMAC for Dual Buffer Descriptor Ring mode operation
  • Q&A
  • FAQs/Docs
  • Members
  • Tags
  • More
  • Cancel
  • +Documents
  • ADSP BF706 Ezkit Mini SPI1 cannot be done in master mode.
  • +ADSP-BF707: FAQ
  • -ADSP-BF70X: FAQ
    • Different Wake-up Sources on BF70x
    • FAQ: ADSP-BF70x application cannot boot using Secure Boot
    • FAQ: CPLB enhancements in Blackfin+ Core
    • FAQ: Different Wake-up Sources on BF70x
    • FAQ: Digital watch code for RTC
    • FAQ: Enhancements in Hardware Loop in Blackfin+ core
    • FAQ: Enhancements in Supervisor Mode in Blackfin+ core
    • FAQ: HADC maximum bandwidth
    • FAQ: Highlights of MSI on BF70x
    • FAQ: How can I initialize DDR memory device connected to BF70x processor ?
    • FAQ: How do I access the full memory space of the SPI slave?
    • FAQ: How L2CTL in BF70x is different than BF60x ?
    • FAQ: How the System Cross Bar (SCB) in BF70x different than in BF60x ?
    • FAQ: How to configure MSI IDMAC for Dual Buffer Descriptor Ring mode operation
    • FAQ: How to re-enable the Core clock on BF70x after gating it
    • FAQ: How to send data using SPI READY signal
    • FAQ: How to take the core out of reset on BF70x
    • FAQ: How to use the Signtool Utility to encrypt and sign the unsigned bootstream (loader file generated for an application, example:bootstream.ldr)
    • FAQ: Is INIT Code supported in Secure Boot in ADSP-BF707
    • FAQ: Monitoring Cache Performance on the ADSP-BF70x
    • FAQ: Performance Enhancements in Blackfin+ core
    • FAQ: UART slave boot BF70x with Higher BAUD rate
    • FAQ: Sample code for HADC on BF70x?
    • FAQ: What are the salient features of SPI Host Port on BF70x?
    • FAQ: What is the effect of bus disabling (RDEN bit) on RTC functionality?
    • FAQ: What is the Encrypt-Hash and Hash-Decrypt mode in PKTE module
    • FAQ: What is the purpose of the ownership bit when programming the PKTE module for encryption/hashing?
    • FAQ: What modes of Encryption and Hashing are supported and how do they make an application secure
    • Getting Started with ADSP-BF70x Processors
    • How to re-enable the Core clock on BF70x after gating it
    • Known Errata Against ADSP-BF70x Blackfin+ Datasheet
    • the secret BF70x documentation
    • Where can I find power consumption data for BF70x processors?
    • FAQ: What are the major differences between DMC module of BF60x and BF70x ?
    • FAQ: Cache Enhancements in Blackfin+ core
    • FAQ: Can I pass the output generated from PKA directly to the PKTE module for encryption/decryption
    • FAQ: Configuring Timer in continuous/single pulse mode
  • FAQ: BF707 SPI Slave to Master loopback communication

FAQ: How to configure MSI IDMAC for Dual Buffer Descriptor Ring mode operation

In Dual Buffer descriptor mode, each descriptor can transfer the data from two different buffers with buffer size up to 4096 bytes. In this mode IDMAC can either use only one descriptor to transfer the data from two buffer or it can have multiple descriptors which can be chained to run one after the other. Unlike the chained descriptor mode where the descriptor has the address of next descriptor, dual buffer mode links the descriptors using a fixed offset between the end address of current descriptor and start address of next descriptor. This fixed offset is same for all the descriptors in the chain and is programmed in DSL(Descriptor Skip Length) field of MSI_BUSMOD register.

Forming a ring chain of descriptors in dual buffer mode is also possible. This is helpful if the same set of descriptors need to be used again and again in a ring form. In order to configure the IDMAC descriptors in Dual buffer ring mode, use following steps:

  • Set up the 'N' IDMAC descriptors in the Host memory with different descriptor elements like Buffers sizes, Buffer addresses programmed appropriately.
  • For the first descriptor, FS(First Descriptor) bit in the first descriptor element should be set to inform the IDMAC that this is the first descriptor. In addition OWN bit should also be set.
  • For Descriptor 2 to Descriptor N-1, OWN bit in the first descriptor element should also be set.
  • For descriptor N(last descriptor in the ring), EOR bit should be set. This informs the IDMAC to load the first descriptor address after finishing the Nth descriptor thus forming a ring.
  • Enable the IDMAC interrupt. Normally IDMAC interrupt occurs when each descriptor finishes. However the individual descriptor interrupt generation can be disabled by setting the  DIC(Disable Interrupt on Completion) bit in the descriptor
  • When the last descriptor interrupt occurs, update all the descriptors in the chain. Do following:
    • Update the Buffer addresses for each descriptor
    • Set the OWN bit for each descriptor(as the IDMAC clears this bit once it executes the descriptor)
    • Write to PLDMND register with any non-zero value to cause the re-fetch of the descriptor.
  • Do this as long as the software needs the descriptor ring to continue.
  • Before the last iteration of the Ring, do the following additional steps(in addition to above mentioned steps) in the last descriptor interrupt :
    • Clear the EOR bit of last descriptor
    • Set the LD (Last Descriptor ) bit of the last descriptor.
  • With EOR cleared and LD set in the last descriptor, the descriptor chain breaks and the IDMAC closes the descriptor operation.
  • Share
  • History
  • More
  • Cancel
Related
Recommended
 
Social
Quick Links
  • About ADI
  • Partners
  • Analog Dialogue
  • Careers
  • Contact us
  • Investor Relations
  • News Room
  • Quality & Reliability
  • Sales & Distribution
  • Analog Garage
Languages
  • English
  • 简体中文
  • 日本語
  • Руccкий
Newsletters

Interested in the latest news and articles about ADI products, design tools, training and events? Choose from one of our 12 newsletters that match your product area of interest, delivered monthly or quarterly to your inbox.

Sign Up
Switch to mobile view
Analog Logo
© 1995 - 2023 Analog Devices, Inc. All Rights Reserved 沪ICP备09046653号-1
  • ©
  • 1995 - 2023 Analog Devices, Inc. All Rights Reserved
  • 沪ICP备09046653号-1
  • Sitemap
  • Privacy & Security
  • Privacy Settings
  • Terms of use
EngineerZone Uses cookies to ensure you get the best experience in our community. For more information on cookies, please read our Privacy & Security Statement.