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.
Part Number: XTCIEVMK2LX
I'm still struggling for getting an ADC board (DEV-ADC34J22) work with XTCIEVMK2LX. (Refer this.)
According to the user guide of the ADC board, it has two chips that can be configured via SPI interface: ADC34J22 and LMK04828B.
The board is connected to XTCIEVMK2LX with FMC1, but not directly, through an adapter board (FMC to HSMC) because the ADC board has an HSMC connector only.
It seems there are three SPI interfaces on XTCIEVMK2LX, and the SPI1 seems to be the one that connects to FMC according to the data sheet.
I don't know how to select a chip I want to configure on the ADC board, but anyway I decided to send the default data (provided in the user guide) to the board over FMC using SPI communication in C.
I found the driver library for SPI, and confirmed it works well by running the test application that writes some data to the NOR flash. Referring the example code, I wrote my own code as follows (some code is omited):
/* Get the default SPI init configurations */
SPI_socGetInitCfg(SPI_PORT, &spi_cfg); // SPI_PORT = 1
/* Modify the default SPI configurations if necessary */
spi_cfg.intNum = 10; // Set this to avoid the 'Hwi already defined' error.
/* Set the default SPI init configurations */
boardCfg = BOARD_INIT_PINMUX_CONFIG |
void send_config(UArg arg0, UArg arg1)
spiParams.transferTimeout = 10;
spiHandle = SPI_open(SPI_PORT, &spiParams);
spiTransactionAdc.count = sizeof(adcDefaultData);
spiTransactionAdc.txBuf = adcDefaultData;
spiTransactionAdc.rxBuf = NULL;
if (!SPI_transfer(spiHandle, &spiTransactionAdc))
System_printf("Sending ADC default data failed.\n");
spiTransactionLmk.count = sizeof(lmkDefaultData);
spiTransactionLmk.txBuf = lmkDefaultData;
spiTransactionLmk.rxBuf = NULL;
if (!SPI_transfer(spiHandle, &spiTransactionLmk))
System_printf("Sending LMK default data failed.\n");
* ======== main ========
void AtExit(Int stat)
The cfg file is as follows:
var Settings = xdc.useModule('ti.board.Settings');
var BIOS = xdc.useModule('ti.sysbios.BIOS');
var ti_drv_spi_Settings = xdc.useModule('ti.drv.spi.Settings');
var ti_drv_uart_Settings = xdc.useModule('ti.drv.uart.Settings');
var ti_osal_Settings = xdc.useModule('ti.osal.Settings');
var ti_csl_Settings = xdc.useModule('ti.csl.Settings');
var Task = xdc.useModule('ti.sysbios.knl.Task');
var System = xdc.useModule('xdc.runtime.System');
var SysStd = xdc.useModule('xdc.runtime.SysStd');
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
var Memory = xdc.useModule('xdc.runtime.Memory');
var HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
System.SupportProxy = SysStd;
var CpIntc = xdc.useModule('ti.sysbios.family.c66.tci66xx.CpIntc');
Settings.boardName = "evmK2L";
ti_drv_spi_Settings.socType = "k2l";
ti_drv_uart_Settings.socType = "k2l";
ti_osal_Settings.osType = "tirtos";
ti_osal_Settings.socType = "k2l";
ti_csl_Settings.deviceType = "k2l";
var task0Params = new Task.Params();
task0Params.instance.name = "task0";
task0Params.stackSize = 4096;
Program.global.task0 = Task.create("&send_config", task0Params);
Task.numPriorities = 4;
var heapMem0Params = new HeapMem.Params();
heapMem0Params.instance.name = "heapMem0";
heapMem0Params.size = 204800;
Program.global.heapMem0 = HeapMem.create(heapMem0Params);
Memory.defaultHeapInstance = Program.global.heapMem0;
There's no problem to build and launch the code, but when I click the "Resume" button on CCS, it's hung. The status of the debug probe shows "Running." The output is as follows:
entering Board_initSPI()...exiting Board_initSPI()...entering SPI_init()...exiting SPI_init()...entering BIOS...SPI_open success.
It seems the program is hung when trying SPI_transfer().
I'm not sure whether it's a correct way to configure the chips on the ADC board or not, actually. If I'm doing it in totally wrong way, please teach me what's the correct way. The ultimate goal is to get data from the ADC board in a programmatic way. I'm still not sure if I can make it with the hardware configuration, but anyway I thought the ADC board must be configured first before using RF SDK tools to access it.
Thank you very much!
Please make sure you read the forum guidelines first.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Yordan Kovachev:
On the FMC connector for the EVM, there are two SPI connections. Since there are 2 FMC connectors, there are 2 SPI instances that directly connect to the 66AK2L06/TCI6630K2L SOC. On the FMC connector, the SPI_XXX_LMK is controlled by the FPGA. The SPI_XXXX is controlled through the SOC. A software control example would only work with using H8 from both FMC connectors. To get the specific FPGA control routing, you could modify the FPGA to use a GPIO location on the first FMC. You need to contact eInfoChips the EVM provider, and get a copy of the Xilinx FPGA source code, and DSP programming project to utilize two SOC SPI ports on one FMC connector.
Note: Utilizing the RFSDK, normally the SPI_XXXX is used to control the AFE750x device on the AFE750x EVM. The SPI_XXX_LMK is used to control an LM04828 devuce on the AFE750x EVM. There are no other provided software examples for SPI control. The RFSDK has a Linux ARM driver for the SPI communication through SOC SPI. The FPGA version has fixed power on time, SPI programmation for the LMK04828.
I have included an IO table, which is extracted from the eInfoChips schematic diagram.
In reply to Radio-Joe:
Thank you for your kind and detail answer! It sounds like, however, what I'm trying to do is almost impossible to achieve for me. So, could you please suggest any other convenient and easy way to achieve my ultimate goal, which is to get converted data by ADC on XTCIEVMK2LX in a programmatic way? This is related to my another question I recently posted in this forum (link). I want to get data from ADC and analyze it on XTCIEVMK2LX for high speed data transfer and analysis. The data size is big enough and real-time analysis is a matter of importance, so I need/want to utilize the DSP EVM. Could you tell me if I can achieve this goal with ADC34J22EVM? If so, I may want to purchase it.
In reply to Huioon Kim:
Is this Design 5?: http://www.ti.com/tool/TIDEP0034
I'm sorry I couldn't see any number among the list under the TI Designs section of the 66AK2L06 page. Actually I don't even know why you call TIDEP0081 "Design 4," too. :)
Anyway there are three designs under the TI Designs section of 66AK2L06 as follows:
- Optimized Radar System Reference Design Using a DSP+ARM SoC- Wideband Receiver Design Using 66AK2L06 JESD204B Attach to ADC32RF80 Reference Design- 66AK2L06 DSP+ARM Processor with JESD204B Attach to Wideband ADCs and DACs
You denoted the second one as Design 4 and first one as Design 2, so I guessed the third one is the Design 5. Am I right?
Anyway I'm reading its reference guide now (tidu946a.pdf). I want to try to connect the ADC34J22EVM to XTCIEVMK2LX directly without a DLC card. Can I do that for my purpose?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.