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.

TMS320C6748: TMS320C6748

Guru 13485 points
Part Number: TMS320C6748
Other Parts Discussed in Thread: OMAP-L138, AM1808, SYSBIOS, OMAPL138

Got below/attached question:

am trying to use the TI example for MMCSD on the C6748 LCDK. With a kingston mmc chip

The example fails in the attached function underlined in yellow, (inside ff.c file)

Attached is the whole project

Need your help

 

BYTE check_fs ( /* 0:The FAT BR, 1:Valid BR but not an FAT, 2:Not a BR, 3:Disk error */

        FATFS *fs,      /* File system object */

        DWORD sect      /* Sector# (lba) to check if it is an FAT boot record or not */

)

{

        if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK)     /* Load boot record */

                return 3;

        if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55)               /* Check record signature (always placed at offset 510 even if the sector size is >512) */

                return 2;

 

        if ((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146) /* Check "FAT" string */

                return 0;

        if ((LD_DWORD(&fs->win[BS_FilSysType32]) & 0xFFFFFF) == 0x544146)

                return 0;

 

        return 1;

starterware_c6748_mmcsd.zip

  • Hi eli,

    Just a note, Starterware is legacy software for this device, so there won't be any planned updates or bug fixes for it. For new development, we recommend Processor SDK RTOS. It is our latest software offering and will be supported moving forward. Are you able to upgrade to this platform?

    Within the SDK we have multiple MMCSD examples that you may use as reference. More info can be found at the wiki linked below. 

    For building the examples, you may refer to the wiki linked below.

  • Thank you for your answer.

    Nevertheless how can they get help with their  project?

  • eli,

    If they have any specific question on porting their project to the Processor SDK, they can open new e2e threads anytime.

    Regards,
    Garrett
  • I have downloaded the example projects for mmcsd for omap138 (see pic)

    I need an imported project for ti c6748lcdk board

    Will it be possible for a conference call for next week?

     

  • I believe that code is from my port of the AM335x StarterWare SD Card example to the C6748. The official C6748 StarterWare did not have a SD Card example. As such, it has all the limitations of the AM335x example. That example implements only read functionality for the fatfs library. This requires that the SD card be initialized with a FAT16 file system away from the target. That error is probably from unformatted MMC memory contents.

    So in the case of a MMC chip connected to the processor, you would have to format it first but since write functionality is not implemented, you cannot format the chip with the C6748. Others have connected in write code to fatfs.

    Also, the example code is written for SD cards. Barely. The MMC standard is sufficiently different that the example code might not work.

    It is unfortunate that TI has abandoned StarterWare. The PSDK examples that much more complicated and tied into the TI's "managed" project architecture. So much is done outside the source code. Not as easy to understand or modify.
  • Hello Norman
    Can we contact you directly not via the E2E?
    Please advise your e-mail address
    Thanks
  • I communicate only in posts. No email or forum conversations. I have not worked with the C6748 for several years and can only offer somewhat dated comments.
  • Thanks,so who is the right contact for technical support??????

  • Did you try the MMCSD_FatfsConsole_lcdkOMAPL138_c674xExampleProject? The LCDKC6748 and LCDK138 boards are identical and differ only with the processors. The C6748 is just the DSP of the OMAP-L138. Similarly the AM1808 is the just the ARM of the OMAP-L138. That name of that project would suggest the DSP side.

    Sahin Okur did reply to your post and is your official TI technical support. In other threads, it has been noted that he will be out of the office till next week.
  • Hi

    Yes I tried I get a line on the console " [C674X_0] ti.sysbios.family.c64p.Hwi: line 189: E_invalidIntNum: Invalid interrupt number: intr# 0"

    On the UART I get " please insert a card"

    When I compile to lcdk6748 instead of a generic c6748 I get the following error:

    <Linking>

    "configPkg/linker.cmd", line 34: error #10264: IROM memory range overlaps existing memory range SHDSPL2ROM "configPkg/linker.cmd", line 35: error #10264: IRAM memory range overlaps existing memory range SHDSPL2RAM "configPkg/linker.cmd", line 36: error #10264: L3_CBA_RAM memory range overlaps existing memory range SHRAM "configPkg/linker.cmd", line 37: error #10264: DDR memory range overlaps existing memory range DDR2 "../C6748.cmd", line 37: error #10099-D: program will not fit into available memory. placement with alignment fails for section ".text" size 0x22860 . Available memory ranges:

       SHRAM       size: 0x20000     unused: 0x1628a     max hole: 0x16284  

    error #10010: errors encountered during linking; "MMCSD_FatfsConsole_lcdkOMAPL138_c674xExampleProject.out" not built

     

    >> Compilation failure

    makefile:145: recipe for target 'MMCSD_FatfsConsole_lcdkOMAPL138_c674xExampleProject.out' failed

    gmake[1]: *** [MMCSD_FatfsConsole_lcdkOMAPL138_c674xExampleProject.out] Error 1

    makefile:141: recipe for target 'all' failed

    gmake: *** [all] Error 2

  • Any feedback?
  • Hi eli,

    Sorry for the delay in getting back to you. I ran the example on both the lcdk6748 and lcdkl138 and see the same error you are seeing. The test passes if the SD card is inserted prior to running, but hangs otherwise and doesn't detect that the SD card has been inserted. I am working internally to figure out why this is happening. I'll post a reply here as soon as we understand the issue.
  • Helloo Shain,

    Any news

    B.Regards

    Eli

  • Hi Eli,

    We were able to trace the interrupt error to a GPIO_init call in the example that tries to register the GPIO interrupt for detecting the sd card. We have filed this as a bug and plan to fix it in the Processor SDK release.

    The test passes as long as the SD card is inserted prior to running the example. Can you try this and see if it works?
  • Hello Shain
    Thanks for your help.Currently they dont have EVM with SD for checking.
    Will it be possible to have a conference call?
    where are you located?
    Please advise your e-mail for the invitation
  • Hi Eli,

    Do you have a local TI contact you can get in touch with?
  • Yes, Yaron Kagan
  • Eli

    Standard engagement model for support is via E2E. We will not be able support any conference calls directly with your end customer or you. These are usually reserved for exceptional situations.

    Please continue to work with the team over E2E and I am hoping we are able to provide you guidance to get over this issue.

    Regards
    Mukul
  • Sorry for that .
    Its the first time for me that I got refused for a conference call with customer,when he faced technical issue over the weeks.
  • Eli
    I understand the challenges you maybe facing. However requests for direct support via conf call are usually not scale able.
    Thank you for supporting our devices - if it helps, please encourage your customer to engage with us directly on the forum, so that we can further help them on this as needed.
    Appreciate your patience.

    Regards
    Mukul
  • Hello
    Our project tries to use MMC card soldered directly to the C6748 directly to the SD card lines of the LCDK6748 board.

    1) The first sample code we tried to use is: " starterware_c6748_mmcsd" By Norman Wong In this sample we fail in the disk_read function inside ff.c Attached the function:

    BYTE check_fs ( /* 0:The FAT BR, 1:Valid BR but not an FAT, 2:Not a BR, 3:Disk error */

    FATFS *fs, /* File system object */

    DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */

    )

    {

    if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK) /* Load boot record */

    return 3;

    if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always placed at offset 510 even if the sector size is >512) */

    return 2;



    if ((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146) /* Check "FAT" string */

    return 0;

    if ((LD_DWORD(&fs->win[BS_FilSysType32]) & 0xFFFFFF) == 0x544146)

    return 0;



    return 1;

    2) The second sample code we tried is "MMCSD_FatfsConsole_lcdkOMAPL138_c674xExampleProject" recommended by Sahin Okur This example fails in the function if(FR_OK == f_opendir(&gFsShellAppUtilsDirObj, gFsShellAppUtilsCwd)) Inside fs_shell_app_utils.c

    At this point we need help to figure out how to continue.
  • Hi Eli,

    Currently there is a limitation with the MMCSD driver which only allows for MMC cards of 512 byte block size. MMC cards of 1024 byte block size are not yet supported. This is being tracked and is planned to be fixed in the next Processor SDK release. Can you clarify which size you are testing with?
  • Hi Eli,

    The MMCSD_FatfsConsole example I recommended earlier only supports SD mode at the moment, I'm sorry for the mix-up. We do not have any examples for verifying MMC mode of operation on the lcdkC6748/OMAP-L138 out of the box since these boards only have a microSD slot. MMC mode was verified on the evmOMAPL137 using MMCSD_evmOMAPL137_MMC_c674xTestProject. This example should be used as reference or ported to the OMAPL138/C6748 platform. Please note the block size limitation that I mentioned above still needs to be accounted for.

  • I was not able to find "MMCSD_evmOMAPL137_MMC_c674xTestProject. " source Can you send them