NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

DA8xx NIC Customization

From Texas Instruments Wiki
Jump to: navigation, search

NIC Customization[edit]

This chapter describes NIC (Notify Information Change) functionality and customization for DSP-only applications. For ARM+DSP applications documentation is available under SDK install folder at la\doc\refman.pdf

Introduction[edit]

PA framework handles different types of input bitstreams. It does autodetection of the input bitstream and selects appropriate decoder. Each decoder may generating a different audio format. It is also possible that input bitstream asks for a change in the output audio format. When the input bitstream changes or the bitstream information changes, it might require reconfiguration of some of the PA/F system variables. One way to achieve this is by external host (microcontroller) handling this requirement of reconfiguring PA/F system variables with support from DSP. For this, micro needs to know when the bitstream or information contained in the bitstream changes. There are two methods in which micro can detect the change:

  • Polling method
    • Micro sends alpha commands to know the status of the DSP continuosly to detect any changes.
    • This method is completely implemented in micro and does not require any customization in DSP code.
  • Interrupt method.
    • DSP keeps sending a predefind set of alpha commands internally (in idle task) to detect any changes in their response. On detecting a change, DSP notifies the micro by asserting a preconfigured GPIO pin. This signal acts as an interrupt fot micro to know that something has changed.
    • On reception of interrupt from DSP, micro will likely do the following:
      1. Send alpha commands to DSP to read new status.
      2. Update user display, mute/unmute audio output, reconfigure sampling rate / audio routing, etc.
      3. Send alpha commands to DSP in order to reconfigure the system.
      4. Send alpha command to DSP to de-assert the GPIO pin and again start self-monitoring for another change.
    • This method requires customization of DSP code to define the set of checks to be made and to select appropriate GPIO pin for interrupt.

NIC functionaly is used to implement DSP-side part of interrupt method described above.

Control Parameters[edit]

  • NIC Mode
This is to control the overall NIC operation. If NIC Mode is disabled, NIC functionality will not be available.
  • PinInterrupt State
This gives state of the interrupt pin (asserted/de-asserted).
  • PinDeassert
This register is used by micro to indicate to the DSP that it is ready to service more interrupts. If the interrupt pin is already asserted and PinDeassert is set, DSP de-asserts the interrupt pin. DSP looks for changes in the bitstream only if the interrupt pin is de-asserted. If the bitstream information changes, DSP generates interrupt to the micro and also resets PinDeassert register. Thus DSP will not generate any further interrupts until micro sets the PinDeassert register.

Figure1: Flow chart explaining DSP flow for NIC
Nic gpio.png

Customization[edit]

  • In order to integrate NIC functionality to the PA software, add following lines to the configuration file. By default PA SDK has this integrated in pa.cfg.
  var Idle = xdc.useModule ('ti.sysbios.knl.Idle');
  Idle.addFunc ('&customSystemStreamIdleNIC');
  • Customizing nic_gpio.c file (originally present in t:/pa/f/s19).
    • Customize for GPIO pin used
Modify defintions for GP_MOD_NUM and GP_PIN_NUM for GPIO bank and pin used. Eg: for GP0[12] pin define as below:
          #define GP_MOD_NUM 0
          #define GP_PIN_NUM 12
  • Customize for pin assertion method
Modify defintion for ACTIVE_LOW. For active low pin define as below:
          #define ACTIVE_LOW 1
  • Customize for different bit stream information that DSP should look for change.
    • Modify/add nicCheckN (eg: nicCheck3) functions to read desired alpha codes to look for change.
Type 2, type 3 and type 4 alpha commands are supported by NIC.
  • Include necessary alpha header files.
  • Add all nicCheckN functions in *nicChecks[] function pointer array.
  • Add cutomized nic_gpio.c file to PA project
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article DA8xx NIC Customization here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article DA8xx NIC Customization here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article DA8xx NIC Customization here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article DA8xx NIC Customization here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article DA8xx NIC Customization here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article DA8xx NIC Customization here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article DA8xx NIC Customization here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article DA8xx NIC Customization here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article DA8xx NIC Customization here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity