Search

Technical Discussion Group Forum

This forum is provided for user discussion. While Beacon EmbeddedWorks support staff and engineers participate, Beacon EmbeddedWorks does not guarantee the accuracy of all information within in the Technical Discussion Group (TDG).

The "Articles" forums provide brief Articles written by Beacon EmbeddedWorks engineers that address the most frequently asked technical questions.

To receive email notifications when updates are posted for a Beacon EmbeddedWorks product download, please subscribe to the TDG Forum of interest.

TDG Forum

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 23 Jan 2014 03:57 PM by  steven.eckhoff
Using µSD Connector?
 3 Replies
Sort:
You are not authorized to post a reply.
Author Messages
steven.eckhoff
Basic Member
Basic Member
Posts:192


--
22 Jan 2014 03:02 PM

    Q:

    DM3730 / AM3703 SOM-LV
    Software OS    
    Linux
    Part Number    
    1017451
    Description    
    I have designed an electronic board to interface with a SOM LV board.
    Originally, on the development kit, a SD interface is present. For the need of my project, I had to use a µSD connector. I paid attention to have the correct pinout (which is different from a SD interface) but when using the Teraterm software, it seems that the insertion of a µSD Card isn't detected (although other peripherals like USB are detected when they are plugged)

    Is there something to setup in the SOM LV board?

    A:  If you are not using the card detect signal or the write protect signal, then you will need to make several modifications in the board file. The following diff shows the changes:

    --- arch/arm/mach-omap2/board-omap3logic.c.orig    2014-01-22 14:56:32.616383999 -0600
    +++ arch/arm/mach-omap2/board-omap3logic.c    2014-01-23 13:45:26.614619292 -0600
    @@ -1116,20 +1116,21 @@
     };
     #endif
     
     static struct omap2_hsmmc_info __initdata board_mmc_info[] = {
         {
             .name        = "external",
             .mmc        = 1,
             .caps        = MMC_CAP_4_BIT_DATA,
             .gpio_cd    = -EINVAL,
             .gpio_wp    = -EINVAL,
    +        .cover_only    = 1,
         },
         {
             .name        = "wl1271",
             .mmc        = 3,
             .caps        = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
             .gpio_cd    = -EINVAL,
             .gpio_wp    = -EINVAL,
             .nonremovable    = true,
         },
         {}      /* Terminator */
    @@ -1328,25 +1329,25 @@
     }
     
     static void __init board_mmc_init(void)
     {
         int ret;
     
         omap3torpedo_fix_pbias_voltage();
     
         if (machine_is_omap3530_lv_som() || machine_is_dm3730_som_lv()) {
             /* OMAP35x/DM37x LV SOM board */
    -        board_mmc_info[0].gpio_cd = OMAP3530_LV_SOM_MMC_GPIO_CD;
    -        board_mmc_info[0].gpio_wp = OMAP3530_LV_SOM_MMC_GPIO_WP;
    +        //board_mmc_info[0].gpio_cd = OMAP3530_LV_SOM_MMC_GPIO_CD;
    +        //board_mmc_info[0].gpio_wp = OMAP3530_LV_SOM_MMC_GPIO_WP;
             /* gpio_cd for MMC wired to CAM_STROBE; cam_strobe and
              * another pin share GPIO_126. Mux CAM_STROBE as GPIO. */
    -        omap_mux_init_signal("cam_strobe.gpio_126", OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP);
    +        //omap_mux_init_signal("cam_strobe.gpio_126", OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP);
         } else if (machine_is_omap3_torpedo() || machine_is_dm3730_torpedo()) {
             /* OMAP35x/DM37x Torpedo board */
             board_mmc_info[0].gpio_cd = OMAP3_TORPEDO_MMC_GPIO_CD;
         } else {
             /* unsupported board */
             printk(KERN_ERR "%s(): unknown machine type\n", __func__);
             return;
         }
     
         /* Check the SRAM for valid product_id data(put there by u-boot). */

    After making this change you will need to edit the /etc/fstab file for your SD card and mount and umount from the command line.

     


     

    steven.eckhoff
    Basic Member
    Basic Member
    Posts:192


    --
    22 Jan 2014 03:23 PM
    Another option would be pulling the GPIO used for the CD signal to ground rather than VCC. With this solution, you would still need to edit the fstab and mount and umout from the command line.
    Bastien RENIN
    New Member
    New Member
    Posts:1


    --
    23 Jan 2014 10:58 AM
    Hello,
    Thank you for your answer. Now that the pin J1.113 is grounded, the read mode works.
    I now have problems when trying to write data on the µSD.

    In the document "1020172D_AN490_DM3730-AM3703_SOM-LV_Design_Checklist", it can be read:
    "J1.115 (uP_nIRQC) is also designated as an SD write-protection signal when SD is used; this signal must be grounded on the custom baseboard for writes to work properly in LogicLoader."

    and in the SOM LV spec "1020150D_DM3730-AM3703_SOM-LV_HW_Spec", it can be read about J1.115:
    "Active low. Software can use as a hardware interrupt. NOTE: This is also designated as a SD write protection signal when SD is used; therefore, this signal must be left floating and not grounded to prevent any possible issues."

    Does the pin J1.115 have to be grounded or not on a custom baseboard?

    Thank you.




    steven.eckhoff
    Basic Member
    Basic Member
    Posts:192


    --
    23 Jan 2014 03:57 PM
    Bastien,

    I corrected my initial post. It seems that the comment in that code is incorrect. The wp signal is on GPIO126. Make the above changes and you should be able to write to the SD card.

    If you just want to ground the the wp signal on the board then do not comment out the line that sets up the mux for GPIO126 and do not comment out the line that points the WP, structure member to GPIO126.
    You are not authorized to post a reply.