设置DA14683(AQFN) USB引脚P1_1和P2_2为SPI MOSI和MISO引脚

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
2个职位/ 0个新职位
最后发表
kuda
离线
最后看到:3个月2个星期前
加入:2020-03-21 14:58
设置DA14683(AQFN) USB引脚P1_1和P2_2为SPI MOSI和MISO引脚

这就跟你问声好!PM_Dialog,

我有定制DA14683板,关于设置DA14683(AQFN) USB引脚P1_1和P2_2为SPI MOSI和MISO引脚有问题。

对于pcb布局问题,我的定制板需要设置P1_1(USB引脚)和P2_2(USB引脚)作为SPI MOSI和MISO引脚。

我有跟踪SPI MOSI和MISO信号输出和输入示波器。它可以跟踪波形,以验证硬件是否正常工作。

但是我不能从SPI读取函数得到任何数据。

我尝试设置USB引脚P1_1为SPI MOSI, P4_0为SPI MISO引脚。然后我可以从SPI读取函数接收数据。

我的问题是

可以通过调用REG_SET_BIT(CRG_PER, USBPAD_REG, USBPAD_EN)将DA14683 USB引脚P1_1和P2_2设置为SPI MOSI和MISO引脚;.?

我的代码如下。

REG_SET_BIT (CRG_PER USBPAD_REG USBPAD_EN);
/ / SPI
hw_gpio_set_pin_function(HW_GPIO_PORT_MT6381_SPI_CLK, HW_GPIO_PIN_MT6381_SPI_CLK, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_SPI_CLK);

hw_gpio_set_pin_function(HW_GPIO_PORT_MT6381_SPI_DI, HW_GPIO_PIN_MT6381_SPI_DI, HW_GPIO_MODE_INPUT, HW_GPIO_FUNC_SPI_DI);
hw_gpio_set_pin_function(HW_GPIO_PORT_MT6381_SPI_DO, HW_GPIO_PIN_MT6381_SPI_DO, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_SPI_DO);
hw_gpio_set_pin_function(HW_GPIO_PORT_MT6381_SPI_CSN, HW_GPIO_PIN_MT6381_SPI_CSN, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_SPI_EN);
hw_gpio_set_active (HW_GPIO_PORT_MT6381_SPI_CSN HW_GPIO_PIN_MT6381_SPI_CSN);

....

mt6381_spi_handle = ad_spi_open (MT6381_SPI);

spi_tx_buf [0] = SPI_CR_CMD;
spi_tx_buf[1] =注册;
spi_tx_buf [2] = addr;
spi_tx_buf[3] = (data_size & 0xFF) - 1;
spi_tx_buf[4] = (data_size & 0xFF00) >> 8;
spi_tx_buf_data_size = 5;

ad_spi_write (mt6381_spi_handle spi_tx_buf spi_tx_buf_data_size);

memset (spi_tx_buf 0 SPI_BUFFER_LEN);
spi_tx_buf [0] = SPI_RD_CMD;
spi_tx_buf_data_size = 1;
Ad_spi_transact (mt6381_spi_handle, spi_tx_buf, spi_tx_buf_data_size, spi_rx_buf, data_size);
OS_DELAY_MS (SPI_DMA_CALLBACK_IDLE_TIME_MICROSECOND);
memcpy (data_buf_ptr spi_rx_buf data_size);
ad_spi_close (mt6381_spi_handle);

谢谢大家

kuda

设备:
PM_Dialog
离线
最后看到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨kuda,

嗨kuda,

根据DA14683 datasheet和章节特殊的I/O考虑

"要在GPIO模式下使用P1_1或P2_2,必须设置USBPAD_REG[USBPAD_EN]。然而,在这个引脚上的允许水平是0V和V33轨上的电压。如果选择1.8V作为引脚电源,那么预期的电流为150 uA。此外,这些引脚不应该在睡眠模式下使用,因为USBPAD_REG将被关闭(属于外围电源域)。”

两者都只能使用3.3V电源轨,所以不能在睡眠模式下供电。你使用DA14683是处于休眠模式还是处于激活模式?

另外,当这些引脚被用作gpio时,确保USB逻辑被停用。

#define dg_configUSE_USB_ENUMERATION (0) #define dg_configUSE_USB_ENUMERATION (0)

谢谢,PM_Dialog