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.
Hello all,
I'm using the eZdsp F28335, and I want to learn how to initialize the XINTF using gel files provided by TI. In the GEL drop down menu, there is a XINTF_Enable function, but it's unclear how to use it. Whenever I press this drop down menu to confirm that I want to enable the XINTF, nothing happens (I was hoping that a checkmark would appear next to the XINTF_Enable to confirm that it's been turned on, but it does not).
I've tried loading the F28335.gel file to my project get this function to work, but again, nothing happens.
Do I need to #include other files in my .c file where I call main()? Do I need supporting XINTF header or .c files add to my CCS project?
Thanks for the help,
John
Jonathan Lee87033 said:I'm using the eZdsp F28335, and I want to learn how to initialize the XINTF using gel files provided by TI. In the GEL drop down menu, there is a XINTF_Enable function, but it's unclear how to use it. Whenever I press this drop down menu to confirm that I want to enable the XINTF, nothing happens (I was hoping that a checkmark would appear next to the XINTF_Enable to confirm that it's been turned on, but it does not).
I've tried loading the F28335.gel file to my project get this function to work, but again, nothing happens.
If you use the pulldown for gel functions and run the enable XINTF, it will output some text to the console. I'm running CCS 5.2 and the funciton output the following:
NOTES:
To configure the XINTF automatically on reset:
uncomment the XINTF_Enable call in the OnReset function of the GEL file.C28xx: GEL Output:
NOTES:
Gel will enable XINTFx16 during Debug only.
Enable XINTF in code prior to use.
The function just writes to some registers, the same as your could would do. GEL is a very basic scripting language and there is no real feedback mechanism. After you run the function you should be able to open a memory window to a region in the XINTF, where RAM is connected on the eZdsp, and write a value to memory. If you tried this before running the gel function it would likely return all 0000 no matter what you wrote. After executing the function the write should work properly. The eZdsp ref guide will have information on which zone RAM is connected to on that board.
Jonathan Lee87033 said:Do I need to #include other files in my .c file where I call main()? Do I need supporting XINTF header or .c files add to my CCS project?
No, the gel file is not part of a project or C code. It won't init XINTF when you are running standalone (without a debugger). It is just meant as a helping tool for when you are in early development.
Hope this helps
Regards
Lori
Thank you for the reply. The output text I get from my console is:
"NOTES: Gel will enable XINTFx16 during Debug only. Enable XINTF in code prior to use. FPU Registers can be found via GEL->Watch FPU Registers."
When I use the GEL way for using the XINTF, do I have to bother with enabling the code prior to use? Do I add the f28335.gel file to the project, and make the appropriate changes to the code in this gel, i.e. removing comments for certain lines of code?
Do I just load the f28335.gel file after making the appropriate changes?
How do I know when the XINTF is on? There is no checkmark that appears after I press the XINTF_Enable menu.
Thanks for the help!
John
Jonathan Lee87033 said:When I use the GEL way for using the XINTF, do I have to bother with enabling the code prior to use?
The GEL file is only a debug tool, it doesn't depend on any of your code. Now if you try to load code or data directly to the XINTF after a reset it will not work unless this GEL function is executed first. This is because the XINTF is disabled by default on reset on the 28335 devices.
Jonathan Lee87033 said:Do I add the f28335.gel file to the project, and make the appropriate changes to the code in this gel, i.e. removing comments for certain lines of code?
No the GEL file is used by code composer studio only. It is not part of an application.
Jonathan Lee87033 said:Do I just load the f28335.gel file after making the appropriate changes?
If you want to change the behavior of the gel file, then yes you could modify it and then reload it into code composer.
Jonathan Lee87033 said:How do I know when the XINTF is on?
One way is to open a memory window and attempt to write a value to a memory location. This is probably the easiest.
Jonathan Lee87033 said:There is no checkmark that appears after I press the XINTF_Enable menu.
Yes, GEL is a simple scripting language - no checkmark is the expected behavior.
You may find the information on this wiki page about GEL helpful:
http://processors.wiki.ti.com/index.php/GEL
Regards
Lori
Lori,
Thanks again for your help. The information you provided has been very helpful. I have a couple questions regarding a write to the XINTF.
In my application, I want to integrate the eZdsp with another development board which has a resolver to digital chip on it. I want to use the XINTF as the link to talk between the two boards.
Without the second board connected and with the XINTF_Enable function activated (along with a basic program running on the eZdsp), whenever I write to Zone 0 of the XINTF at 0x4000 using a memory window, it will always produce 0x000 when I press enter. Without external RAM connected to the XINTF, will any of the values I write to the XINTF be held on this bus?
(When I do a similar write to a place in the memory map with RAM, I am able to write a value, and have this value hold after pressing enter.)
I assume, when I connect the two boards together, the values I write to the XINTF will be passed on this bus momentarily and arrive at the desired register on the second board. If I connect a scope to one of the XD pins on the eZdsp could I see the value changes when I write to the XINTF even though the value doesn't stay held in the memory window?
Thanks again,
John
Jonathan Lee87033 said:Without the second board connected and with the XINTF_Enable function activated (along with a basic program running on the eZdsp), whenever I write to Zone 0 of the XINTF at 0x4000 using a memory window, it will always produce 0x000 when I press enter. Without external RAM connected to the XINTF, will any of the values I write to the XINTF be held on this bus?
I would need to check the eZdsp documentation to see where RAM is connected. If I assume no RAM is connected to zone 0, then when CCS tries to refresh its memory window it will issue a 'read' to the XINTF bus zone 0. Because there is nothing to provide data input to the XRD lines, the value could be anything really (the data lines are inputs and floating). Basically you need something on the bus that can respond to a read access.
Jonathan Lee87033 said:(When I do a similar write to a place in the memory map with RAM, I am able to write a value, and have this value hold after pressing enter.)
Excellent!
Jonathan Lee87033 said:I assume, when I connect the two boards together, the values I write to the XINTF will be passed on this bus momentarily and arrive at the desired register on the second board.
When you perform a write, the chip select will go low, address lines will be drive, the write strobe will then go low, the data will go out on the bus, the write strobe will go high and finally the chip select will go high. The data manual has very detailed timing diagrams for all of this. It shows where the data bus is valid/driven and not valid.
Jonathan Lee87033 said:If I connect a scope to one of the XD pins on the eZdsp could I see the value changes when I write to the XINTF even though the value doesn't stay held in the memory window?
You can monitor the bus today and should see the data go out. There is just nothing to answer the read access to populate the watch window.
Regards
Lori
Hello again Lori,
I've been successful in writing to the XINTF. Now, I can monitor the XD lines with a logic analyzer, write to the XINTF, and show on the analyzer that I'm writing the value that I think I am. There is now one control detail I've had trouble in finding documentation on: How do I control the time delay between two successive write events?
When I write two different values to the XINTF back-to-back, I can see that they are correct on the logic analyzer, but there are shorter time period values that show up between the two correct values that I write. These other 'junk' words are due to the XD lines changing values at different times after the first word is written. Is this common? And can including a time delay get rid of these other 'junk' values? What is the code in CCS for a time delay that I can control?
Thanks again for all the great help!
John
Jonathan Lee87033 said:When I write two different values to the XINTF back-to-back, I can see that they are correct on the logic analyzer, but there are shorter time period values that show up between the two correct values that I write. These other 'junk' words are due to the XD lines changing values at different times after the first word is written. Is this common?
Jonathan Lee87033 said:I've been successful in writing to the XINTF.
Yay! Great news.
Yes - refer to the timing diagrams in the data manual.(www.ti.com/lit/SPRS439) I've taken a screenshot of a write access. Notice that after the write strobe goes low (green arrow) the data lines will start transitioning (orange arrow). Only then is it valid data. Likewise at the end of the access the data lines will again transition to their inactive state (other orange arrow).
A receiving device will likely latch the data at the end of the "active' stage - when the write strobe goes high. As you can see the data is valid during this time and into the "trail" portion of the access.
The lead/active/trail time can be configured - this is described in the reference guide www.ti.com/lit/SPRU949 I strongly suggest reading the reference guide descriptions before trying to understand the timing diagrams in the data manual. The reference guide assumes a perfect case (no delays) so it is easier to understand the basic concepts and timings of lead-active-trail.
Jonathan Lee87033 said:And can including a time delay get rid of these other 'junk' values?
No - there is no way to get rid of the transition. There is a time when all of the signals are stable - this is described by the timing diagrams.
Regards
Lori