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.

[参考译文] Linux/DRA726:SDIO 问题

Guru**** 2943430 points

Other Parts Discussed in Thread: DRA726

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/669860/linux-dra726-sdio-issue

器件型号:DRA726

工具/软件:Linux

我一直在努力弄清楚为什么 u-blox 器件上的蓝牙范围非常差、TX 距离不到5英尺。

我一直在与 u-blox 合作解决此问题。 工程师提到了可能是原因的问题。

"我们注意到、TI 需要特别注意各种 MCU 上的 SDIO 主机控制器。 我们观察到用于 OMAP MCU 的 TI 主机控制器正在将控制器配置为轮询模式。"

我检查了我的板、他是对的、它使用轮询。 如何从轮询切换到中断驱动?

root@activa-global-display:~# cat /sys/kernel/debug/mmc2/regs
mmc2:
SDIO IRQ 模式  轮询
CTX_LOSS:      1.

寄存器:
CON:           0x00000600
PSTATE:        0x01f00000
HCTL:          0x00000f02
SYSCTL:        0x000d0047
IE:            0x00000000
ISE:           0x00000000
CAPA:          0x21e10080

Michel Catudal

ACTIA Corp.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michel、

    我不是 Linux 专家、很抱歉、我不确定这些内容是如何设置的。 希望您能很快得到答案。 如需了解低级寄存器说明、您可以根据需要参阅 TRM 的 MMC/SD/SDIO 一章。

    我很好奇轮询模式为何会影响蓝牙无线电范围? 我同意降低吞吐量(在轮询模式与 IRQ 模式下)、但为什么选择范围?

    此致、

    STAN

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michel、
    DRA726 EVM 具有专用 GPIO - GPIO5-7、可用作 SDIO IRQ 的中断线路、因此至少在 DRA726 EVM 上、它不应处于轮询模式。
    在较旧的 OMAS 上、一些电路板没有专用线路、这就是为什么在轮询模式中使用 SDIO 的原因。
    为此、您是否有任何 GPIO 线路连接到 BT 器件?

    您可以参考 dra7-EVM.dts 中 MMC4下的"wlcore"器件节点作为示例。

    有关详细信息、请在 drivers/MMC/host/omap_hsmmc.c 中查找 WAKE_IRQ。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    RK、

    中断线未连接、我具有的唤醒是 u-blox 器件、 HOST2WL_WAKEUP 和 HOST2BT_WAKEUP 的输入

    我希望 UART 中断用于蓝牙、而 mmc3中断用于 SDIO

    dra7.dtsi

          mmc3:MMC@480ad000{
             兼容="ti、dra7-hsmmc"、"ti、omAP4-hsmmc";
             REG =<0x480ad000 0x400>;
             中断= ;
             ti、hwmds ="mmc3";
             TI,需要特殊重置;
             DMA =<&sdma_Xbar 77>、<&sdma_Xbar 78>;
             dma-names ="TX"、"Rx";
             STATUS ="禁用";
             SD-UHS-SDDR12;
             SD-UHS-SDDR25;
             SD-UHS-SDDR50;
          };

    我的设备树

          wlan_en:fixedregulator@0{
               兼容="稳压器固定";
               reguler-name ="wlan-en-regulator ";
               稳压器最小值微伏=<0x325aa0>;
               稳压器最大值微伏=<0x325aa0>;
               /* wlan_en GPIO */
               GPIO =<&GPIO1 16 GPIO_ACTIVE_HIGH_>;
               启动延迟-us =<0x11170>;
               使能端高电平有效;
       };

           mmc3_PINS_DEFAULT:pinmux_mmc3_PIN_DEFAULT{
                   pinctrl-single、pins =<
             0x37c (PIN_INPUT_PULLUP | MUX_MODE0)/* mmc3_clk.mmc3_clk *
             0x380 (PIN_INPUT_PULLUP | MUX_MODE0)/* mmc3_cmd.mmc3_cmd *
             0x384 (PIN_INPUT_PULLUP | MUX_MODE0)/* mmc3_dat0.mmc3_dat0 *
             0x388 (PIN_INPUT_PULLUP | MUX_MODE0)/* mmc3_dat1.mmc3_dat1 *
             0x38c (PIN_INPUT_PULLUP | MUX_MODE0)/* mmc3_dat2.mmc3_dat2 *
             0x390 (PIN_INPUT_PULLUP | MUX_MODE0)/* mmc3_dat3.mmc3_dat3 *
                   >;
           };

    mmc3{(&M)
           状态="正常";
           pinctrl-names ="default";
           pinctrl-0 =<&mmc3_PINS_DEFAULT>;

           最大频率=<150000000>;
           TI、不可拆卸;
           VMMC-SUPPLY =<&WLAN_en>;
           disable-wp;
           总线宽度=<4>;
           /delete-property/sds-uhs-sdr50;
           /delete-property/sds-uhs-sdr25;
           /delete-property/sds-uhs-sdr12;
    };


    我还没有看到任何有关 wifi 的问题、我确实必须替换 TI 用于 Linux 社区版本的 wpa_supplicant。

    稍后可能会被证明是错误的、但到目前为止、在大约30英尺远的 WiFi TX/RX 器件上工作正常。

    SDIO 似乎工作正常、u-blox 支持工业用 SDIO-SDIO 和汽车用 SDIO-UART。

    我有 u-blox 模块设置、在 SDIO 上使用 WIFI、在 UART 上使用蓝牙。

    那么、中断问题会出现在 UART 上、而不是 SDIO 上、对吧?

    U-blox 确实通过 SDIO 发送命令、但应用的蓝牙通信通过 UART9完成

    root@activa-global-display:~# cat /sys/kernel/debug/mmc2/ios
    时钟:         100000000 Hz
    VDD:           21 (3.3 ~ 3.4V)
    总线模式:      2 (推挽)
    芯片选择:   0 (无关)
    功率模式:    2 (开启)
    总线宽度:     2 (4位)
    时序规格:   0 (传统)
    信号电压:0 (3.30V)
    驱动程序类型:   0 (驱动程序类型 B)

    root@activa-global-display:~# cat /sys/kernel/debug/mmc2/regs
    mmc2:
    SDIO IRQ 模式  轮询
    CTX_LOSS:      1.

    寄存器:
    CON:           0x00000600
    PSTATE:        0x01f00000
    HCTL:          0x00000f02
    SYSCTL:        0x000d0047
    IE:            0x00000000
    ISE:           0x00000000
    CAPA:          0x21e10080

    root@activa-global-display:~# cat /proc/interrupts       
              CPU0       
     16:         0     CBAR 32级别    gp_timer
     17:         0      GIC 29 Edge     ARCH_TIMER
     18:     36366      GIC 30 Edge     ARCH_TIMER
     22:         0     CBAR  4级    L3-dbg-IRQ
     23:         0    WUGEN 10级别    L3-APP-IRQ
     25:         1     CBAR 121液位    警报器
     27:      1179     CBAR  8级    OMAP-DMA-引擎
     30:       580     CBAR 361级别    43300000。EDMA_ccint
     32:         0     CBAR 359级别    43300000。EDMA_cerrint
     35:         0     CBAR 24级别    4ae1000.GPIO
     68:         0     CBAR 25电平    48055000。GPIO
    101:         0     CBAR 26电平    48057000.GPIO
    134:  18229018     CBAR 27电平    480590.GPIO
    139:  18229018 480590.GPIO  4级    egalax_i2c
    167:         0     CBAR 28电平    4805b000.GPIO
    200:         0     CBAR 29电平    4805d000.GPIO
    233:         0     CBAR 30电平    480510.GPIO
    266:         0     CBAR 116级别    480530.GPIO
    301:       689     CBAR 69 Level    48020000.serial
    306:         3     CBAR 251 Level    mbox_ippu1_ipc3x
    310:        35     CBAR 255 Level    mbox_ippu2_ipc3x
    328:         9     CBAR 108级    OMAP-DMM_IRQ_handler
    329:       283     CBAR 16级    SGX ISR
    331:       332     CBAR 51电平    48070000.i2c
    332:         0     CBAR 56电平    48060000.i2c
    333:         0     CBAR 57电平    4807a000.i2c
    334:       341     CBAR 78液位    mmc0
    335:      4847     CBAR 81级    mmc1
    336:     45518     CBAR 89 Level    mmc2
    337:         0     CBAR 395级    588820.MMU
    338:         0     CBAR 396等级    55082000.MMU
    341:         5     CBAR 72级别    dwc3-OMAP
    342:         5     CBAR 87电平    dwc3-OMAP
    343:         0     CBAR 149电平    48464000.McASP_TX
    344:         0     CBAR 148电平    48464000.McASP_Rx
    346:      9912     CBAR 335级别    48484000以太网
    347:       123     CBAR 336级    48484000以太网
    349:         0     CBAR 354级别    VPE
    353:        20     CBAR 46 Level    4b101000.sham
    354:         0     CBAR 47层    48090000.rng
    356:     21031     CBAR 20级    OMAP DISPC
    421:         0     CBAR  2 Edge     tps65917
    423:         0  pinctrl 584 Edge     48020000.serial
    424:        27     CBAR 71层    xhci-hcd:USB1
    425:         0     CBAR 73级别    xhci-hcd:USB3
    IPI0:         0 个 CPU 唤醒中断
    IPI1:         0 定时器广播中断
    IPI2:         0 重新安排中断
    IPI3:         0 函数调用中断
    IPI4:         0 个单功能调用中断
    IPI5:         0 个 CPU 停止中断
    IPI6:         0 IRQ 工作中断
    IPI7:         0 个完成中断
    错误:         0

    米歇尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michel、
    如果 SDIO 通信似乎正常、那么我不确定为什么您在原始帖子中提到了 SDIO 问题。

    如果通过 UART9进行蓝牙通信、那么中断只会在 UART 上发生。

    我认为 UART 控制器在 BT 范围问题上没有任何作用。 UART 控制器甚至不知道什么是连接的设备功能。

    -连接到 dra726的 BT 设备是什么?

    我过去使用 TI WiLink 8组合卡验证过 UART3的 BT 功能、范围相当好。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RK、

    该模块同时具有 WiFi 和蓝牙。 初始化通过 SDIO 完成。 当使用 SDIO-UART 驱动程序进行蓝牙通信时、使用两种可能的驱动程序。

    器件是 u-blox 的 Emmy-W1

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michel、
    根据我在网络上了解到的内容、范围是 BT 器件中发送器电源的函数。
    发送器有不同的类别、但即使是最低类别也应支持长达10m 的距离、如以下文章所述
    www.sans.edu/.../bluetooth

    如果 SDIO 仅在器件配置期间使用、那么我认为它与范围问题没有任何关系。

    您可以在不连接 WiFi 或 BT 的情况下尝试独立测试、以查看 UART 是否是问题、或者如果可能、尝试使用其他器件来查看是否存在相同的问题。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RK、

    我对这一问题得出了与你相同的结论。 UART 工作正常、我有一个装满这些器件的盒子、完全一样。
    似乎无法更改功率。 当我尝试获得高于4的电压时、它会在下一次检查时告诉我电源为0。 除非我 roboot、否则它不会返回到4。 范围是多少?提高功率级别的方法是什么?

    我在识别几米之外的电话时没有问题、因此这只是器件上的 TX 问题。 我有一个外接天线、它可以在 WiFi 和蓝牙接收时正常工作。

    此致、
    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米歇尔
    我不知道如何增加发送器功率。
    供应商说什么?

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RK、

    他们还没有给出答案。 我要问、u-blox 工程师告诉我、他们已经向零件制造商询问了信息。

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michel、
    我将此标记为"Resolved from TI"。

    如果您有其他信息、请随时打开新 TT。

    此致、
    RK