This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to start my work if I want to let my C6678 DSP communicate with a PC via EMAC

Hello,everyone!

  Recently I want to connect my 6678evm to a PC via EMAC module(but I find EMAC is not mentioned in 6678 datasheet anymore?or it changes its name?please tell me if I'm wrong),and I have collected some datasheets about Network Coprocessor (NETCP) ,Packet Accelerator (PA) ,Gigabit Ethernet (GbE) Switch Subsys tem and Multicore Navigator,but I don't know which one is the right one to start with.

  I am also confused about the relationship between multicore navigator and emac.

  Since there are a lot of examples in 6678 pdk and ndk,could someone recommend me some examples that suits a guy like me. Although I've spent some time using my 6678evm,but I still don't have a clear idea about keystone architecture.

  Could someone spare me some time to provide me some guide about how to start my work?Thank you very much.

Zhao

  • Hi Zhao,

    If you have time and want to learn background technologies, my (personal) recommendation is you should learn Multicore Navigator (especially Queue Manager Subsystem) first by the User Guide SPRUGR9 (http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprugr9).  You will find small sample code (or subroutines) in the manual.  My understanding is, direct operation to hardware registers will give you better understanding and insight.  LLD (Low Level Driver) in the MCSDK is trying to hide detail of hardware, but my suggestion is to learn hardware detail first.

    After that, you should read the sample code in MCSDK PDK (pdk_C6678_1_1_2_5/packages/ti/drv/pa/example/emacExample) and run it.  Especially packet transmit to the Ethernet switch (not PA) part will help your better understanding.  PA is slightly difficult compared to other parts and you can transmit and receive packets without PA in anyway if you don't need the maximum performance of C6678.

    You will find relationship between Queue Manager, PKTDMA, NETCP, PA and GbE Switch in the emacExample code.  In addition, following manuals help you to understand them much better.

    Understanding of the above peripherals is one of the most important key to get better understanding of KeyStone architecture.  If you have any questions, please don't hesitate to post in the forum.

    I hope it helps.

    Best Regards,
    Atsushi

  • Hi, Atsushi

     Thank you for your great patience and detailed instruction,I'll follow your advice and have a try.^_^

    Best Regards,

    Zhao

  • Zhao,

    The Multicore Navigator User Guide has so much contents, but regarding the Queue Manager Subsystem, the following is the essential and required initialization.

    • A linking RAM
    • A descriptor memory region

    After the initialization, you can push or pop a descriptor to/from a queue by hardware registers.  You can play around the Queue Manager. :)

    Regards,
    Atsushi

  • Hi,Atsushi

      Thank you for pointing out the important cotents in Multicore Navigator User Guide for me,I believe my efficiency will improve a lot because of your instruction.^_^

    Best Regards,

    Zhao