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.
Dear TI Employees,
I have this problem for like a year !
So could you help me we this ?
I guess I 'm so close to it with the helps I could get from DSPRELATED website, but I couldn't make it yet !
I just wanna use my EMIF 80 pins as an output , to write a value into EMIF address .
As you may already know, we have LVTH16245A just before EMIF connector on the 6713 Spectrum Digital DSK, and I used 74HC244 as a buffer for my interfaced board to turn on 32 LEDs on output. (Just as considered in Rulph Chassing's book ! )
So please tell me that this code as below would be enough to do so, or we may need some headers or gel files to config the EMIF regiters via either CSL functions or assembly source codes.
Well, I guess the main concern for programming is the I/0 address (either
0x90000000 or 0xa0000000) , right ?!
Thank you in advance.
Best Regards,
rafi3e@ieee.org
// main.c *******************
#include "dsk6713.h"
#include "DSK6713_AIC23.h" //codec-DSK support file
Uint32 fs=DSK6713_AIC23_FREQ_48KHZ; //set sampling rate
#define DSK6713_AIC23_INPUT_MIC 0x0015
#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_MIC;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define OUTPUT 0xA0000000 //0x90000000 or maybe 0x80000000 (EMIF ADDRESS )
int *output = (int*)OUTPUT; // Declare a pointer to EMIF's address
void main()
{
While (1)
{
// Write a 32-bit digital value to the pins
*output = 0xA0A0A0A0; // Test value
}
}
Saadeq,
Welcome to the TI E2E forum. Like many other E2E Community members, we hope you will contribute your experiences here by answering questions that you have already dealt with during the successes you have had during the past "year" of struggling with this particular issue. This site is not just about getting answers from TI employees, but also getting answers from the TI User Community, a much broader society than just our employees.
Possibly when you originally posted your question, the formatting looked better than it does above. A feature that I use often is to click the Preview link next to Compose and Options. This will show you what the post will look like when you click Post. You have to go back to the Compose link to edit after that, but this feature helps when pasting text from another source. What I do is to copy text from some source, paste it into a simple text editor like notepad (I use PFE) and then copy from there into E2E. But that is just how I do it, other people may not have issues or may understand the editing buttons better than I do.
Now to your actual question.
To get your LEDs to light up, you will need the following to be done:
Regards,
RandyP
If this answers your question, please click the Verify Answer button below. If not, please reply back with more information.
· Dear RandyP,
I thank you so very much for your time, your considerations and your help.
But I should let you know that I'm a professional web designer as well. so I knew about "preview" story about my post, I just did not know that TI E2E Forum has many problems with Google Chrome browser. So I've just edited my previous post and from now on, I'll just use IE browser.
thanks a lot anyway :)
Now to my actual question:
As you may see now in my updated code, I put my main function code in an infinite loop (while (1)), so I guess we don't need to change the hardware now, right ?
I also made another hardware, only for this problem which is by a microcontroller to get those 32-bit data , directly from that EMIF 80-pin connector and I can pull up or down any CE or other pins in this interfaced board. So could tell me which pins should exactly become pull up or down ?
Furthermore, I have only one default gel file for the start up, do I have to add more gel files to my project or add some lines to the one I already have ? what should I add exactly ?
If I understood your statements well, I do not need to use CSL functions or Micros or assembly code to config the EMIF registers, right ?!
I will test anything you say, so please just feel free and give some options to test and be more specific.
Thank you so much,
Best Regards,
rafi3e@ieee.org
saadeq rafieee said:I just did not know that TI E2E Forum has many problems with Google Chrome browser.
Please post your problems with Chrome to the E2E News and Site Support Forum (bottom of the list under Support at the E2E home page). Chrome is a popular browser and we intend that it is fully supported.
saadeq rafieee said:I put my main function code in an infinite loop (while (1)), so I guess we don't need to change the hardware now, right ?
I expect you will change your mind later, but it is your engineering decision to implement your board how you wish. You still need to make the analysis and changes to make it work, below.
saadeq rafieee said:I also made another hardware, only for this problem which is by a microcontroller to get those 32-bit data , directly from that EMIF 80-pin connector and I can pull up or down any CE or other pins in this interfaced board. So could tell me which pins should exactly become pull up or down ?
This is an interesting new development. I definitely do not understand your motivation for this. But for both hardware implementations, you will need to look at the schematic or tech ref to find out the pin that needs to be pulled. If you were to purchase an interface card from one of our 3rd parties, like Spectrum Digital and Link-Research, those boards would already be designed to work correctly with the DSK. Perhaps someone else on the forum will have those schematics and can analyze them for you, or you might find this already answered by doing a search through the E2E search tool.
saadeq rafieee said:I have only one default gel file for the start up, do I have to add more gel files to my project or add some lines to the one I already have ? what should I add exactly ?
Since you are trying to customize your board, you need to do some engineering analysis and design. You also need to understand how to use and program the DSK. There are tutorials in CCS that help to explain the use of GEL files, and there are User's Guides that help to explain how the EMIF operates and gets configured. Your default GEL file may have some good examples that you can use to get started.
saadeq rafieee said:If I understood your statements well, I do not need to use CSL functions or Micros or assembly code to config the EMIF registers, right ?!
In your code, you can use CSL functions as a convenient way to configure the EMIF and to do other functions in your code. I do not know how you would use Micros in your code, but it does sound like you have one on your new interface board. I am a bit confused.
We may need someone else to jump in here and tell you all your answers. Sorry I do not have them all for you.
Regards,
RandyP
Dear RandyP,
Excellent !
Congratulations :)
Well done !
I thank you so very much for your helps as well as other guys from DSP-related groups who helped me to success in this project.
Tonight is one of the best nights of my life !
I feel like I'm in the air :))
I'm working on different DSP projects via TMS320C6713-DSK for like 2 years, but I had a little problem with this project which was unbelievable !
I feel like a weight has been lifted off my shoulders and I can put my mental and physical energy into some huge steps instead.
It was very odd how I could make it ! but I thank you all so much :)
As matter of fact, It's no Nobel, but to me ; it was a gift from heaven the way I could afford this problem :)
Eventually, it occurred to me that my code must be true and sufficient; my hardware was authentic as well, so I just found out that I should check only CE1, CE2, CE3 and other read/write/output pins of my DSK. I've read all EMIF manuals of TI Inc, and I've tested about 4-5 hundreds of lines for configuring EMIF registers, but I wasn't right ! It was all wrong !
Anyway, I've tested my whole interfaced board and my connections, my whole design, from software to hardware, then I found out it will work
just by pulling down (connect the pin to GND) the Pin-75 of (peripheral expansion interface)PCI (NOT EMIF) connector.
then both of my hardwares (the one with 74ls244 and LEDs, and the one with microcontroller directly interfaced to EMIF without any buffer or latch)
will work perfectly. And of course If do not put your main function in an infinite loop, you should hold the data by a latch or flip-flop.
To sum up, I should state that you do not need any gel file (except the default one for startup) or CSL function or ... to config EMIF registers individually. The headers I've included are enough for a complete signal processing project using codec (for analog inputs and outputs), EMIF expansion (as digital output), etc. So notice that this code is very short but much more clever than what brilliant minds might think !
Thank you TI,
Best Regards,
This code is 100 % demonstrated and is an adequetly tested code on C6713 Spectrum Digital DSK :
// main.c ******************* rafi3e@ieee.org
#include "dsk6713.h"
#include "DSK6713_AIC23.h" //codec-DSK support file
Uint32 fs=DSK6713_AIC23_FREQ_48KHZ; //set sampling rate
#define DSK6713_AIC23_INPUT_MIC 0x0015
#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_MIC;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define OUTPUT 0xA0000000 // EMIF ADDRESS for CE2 which will be enabled by pin 78 of EMIF connector
int *output = (int*)OUTPUT; // Declare a pointer to EMIF's address
void main()
{
while (1)
{
// Write a 32-bit digital value to the pins
*output = 0xF001100F; // Test value
}
}