嗨!PM_DIALOG,
我有自定义DA14683板,并在SPI MOSI和MISO引脚设置DA14683(AQFN)USB引脚P1_1和P2_2时出现问题。
对于PCB布局问题,我的定制板需要将P1_1(USB引脚)和P2_2(USB PIN)设置为SPI MOSI和MISO引脚。
我有跟踪SPI MOSI和MISO信号输出和示波器输入。它可以跟踪波形以验证硬件是工作。
但我无法从SPI读取功能中获取任何数据。
我试图将USB引脚P1_1设置为SPI MOSI和P4_0作为SPI MISO引脚。然后我可以从SPI读取功能接收数据。
我的问题是
CAN14683 USB PIN P1_1&P2_2设置为SPI MOSI和MISO引脚通过呼叫REG_SET_BIT(CRG_PER,USBPAD_REG,USBPAD_EN);。?
我的代码,如下所示。
REG_SET_BIT(CRG_PER,USBPAD_REG,USBPAD_EN);
// spi.
hw_gpio_set_pin_function(hw_gpio_port_mt6381_pi_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_pi_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] = reg;
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);
TKS
kuda.
嗨Kuda,
根据DA14683数据表和部分32.5特殊I / O考虑因素:
“要在GPIO模式下使用P1_1或P2_2,必须设置USBPAD_REG [USBPAD_EN]。但是,此引脚上的允许电平为0V,V33导轨上的电压。如果选择1.8V作为引脚电源,则为150的电流。UA是预期的。此外,这些引脚不应在睡眠模式下使用,因为USBPAD_REG将被关闭(属于外围电源域)。“
两者都可以使用3.3V电源轨,因此两者都不能以睡眠模式供电。您是否在睡眠中或在活动模式下使用DA14683?
此外,当这些引脚用作GPIO时,请确保取消激活USB逻辑。
谢谢,PM_DIALOG.