Spi2总线时钟和mosi引脚不输出信号。

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

你好,

我正在与DA14683 Development Kit中的液晶显示和生物传感器ST7735进行通信。

ST7735和生物传感器都是SPI总线协议。我想在spi 2上设置ST7735,在spi 1上设置生物传感器。

我在spi1上测试了ST7735,它是工作。

然而,我修改st7735从spi 1到spi2, csn引脚是工作,但时钟和mosi引脚不输出信号。

测量结果如附件。

是否有任何参数或api需要设置?

//*************修改st7735从spi 1到spi2

SPI_BUS (SPI1)

# ifdef CONFIG_SPI_DISPLAY
// spi_slave_device (spi1, display_spi, hw_gpio_port_display_spi_csn, hw_gpio_pin_display_spi_csn, hw_spi_word_8bit, hw_spi_pol_low, hw_spi_pha_mode_0, hw_spi_freq_div_2, hw_dma_channel_0);
# endif
SPI_BUS_END

SPI_BUS (SPI2)
# ifdef CONFIG_SPI_DISPLAY
Spi_slave_device (spi2, display_spi, hw_gpio_port_display_spi_csn, hw_gpio_pin_display_spi_csn, hw_spi_word_8bit, hw_spi_pol_low, hw_spi_pha_mode_0, hw_spi_freq_div_2, hw_dma_channel_6);
# endif
SPI_BUS_END

谢谢

kuda

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

嗨kuda,

能否分享一下peripher_init()函数中的GPIO配置?

谢谢,PM_Dialog

kuda
离线
最后看到:5个月1个星期前
加入:2020-03-21 14:58
#定义HW_GPIO_PORT_UART2_TX

这就跟你问声好!

附加的文件是我的项目,——> ble_peripheral与spi函数测试。

谢谢大家。

kuda

#定义HW_GPIO_PORT_UART2_TX HW_GPIO_PORT_1
#定义HW_GPIO_PIN_UART2_TX HW_GPIO_PIN_3

#定义HW_GPIO_PORT_UART2_RX HW_GPIO_PORT_2
#定义HW_GPIO_PIN_UART2_RX HW_GPIO_PIN_3

#定义HW_GPIO_PORT_DISPLAY_SPI_CLK HW_GPIO_PORT_3
#定义HW_GPIO_PIN_DISPLAY_SPI_CLK HW_GPIO_PIN_1

#定义HW_GPIO_PORT_DISPLAY_SPI_DI HW_GPIO_PORT_2
#定义HW_GPIO_PIN_DISPLAY_SPI_DI HW_GPIO_PIN_2

#定义HW_GPIO_PORT_DISPLAY_SPI_DO HW_GPIO_PORT_1
#定义HW_GPIO_PIN_DISPLAY_SPI_DO HW_GPIO_PIN_1

#定义HW_GPIO_PORT_DISPLAY_SPI_CSN HW_GPIO_PORT_3
#定义HW_GPIO_PIN_DISPLAY_SPI_CSN HW_GPIO_PIN_2

#定义HW_GPIO_PORT_DISPLAY_RESET HW_GPIO_PORT_1
#定义HW_GPIO_PIN_DISPLAY_RESET HW_GPIO_PIN_0

#定义HW_GPIO_PORT_DISPLAY_DC HW_GPIO_PORT_1
#定义HW_GPIO_PIN_DISPLAY_DC HW_GPIO_PIN_7

空白displayGpioInit(空白)

# ifdef CONFIG_SPI_DISPLAY

REG_SET_BIT (CRG_PER USBPAD_REG USBPAD_EN);

/ / SPI
hw_gpio_set_pin_function(HW_GPIO_PORT_DISPLAY_SPI_CLK, HW_GPIO_PIN_DISPLAY_SPI_CLK, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_SPI_CLK);
hw_gpio_set_pin_function(HW_GPIO_PORT_DISPLAY_SPI_DI, HW_GPIO_PIN_DISPLAY_SPI_DI, HW_GPIO_MODE_INPUT, HW_GPIO_FUNC_SPI_DI);
hw_gpio_set_pin_function(HW_GPIO_PORT_DISPLAY_SPI_DO, HW_GPIO_PIN_DISPLAY_SPI_DO, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_SPI_DO);
hw_gpio_set_pin_function(HW_GPIO_PORT_DISPLAY_SPI_CSN, HW_GPIO_PIN_DISPLAY_SPI_CSN, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_SPI_EN);

hw_gpio_set_active (HW_GPIO_PORT_DISPLAY_SPI_CSN HW_GPIO_PIN_DISPLAY_SPI_CSN);

/ /显示复位
hw_gpio_set_pin_function(HW_GPIO_PORT_DISPLAY_RESET, HW_GPIO_PIN_DISPLAY_RESET, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO);
hw_gpio_set_active (HW_GPIO_PORT_DISPLAY_RESET HW_GPIO_PIN_DISPLAY_RESET);

/ /显示D / C
hw_gpio_set_pin_function(HW_GPIO_PORT_DISPLAY_DC, HW_GPIO_PIN_DISPLAY_DC, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO);
hw_gpio_set_active (HW_GPIO_PORT_DISPLAY_DC HW_GPIO_PIN_DISPLAY_DC);
# endif

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

嗨kuda,

如果您想将SPI1块更改为SPI2块,还应该更改引脚的配置。为此,您需要配置哪个GPIO具有SPI2的哪个功能。在hw_gpio.h中你会发现:

HW_GPIO_FUNC_SPI_DI = 11, / * * < GPIO SPI DI * / HW_GPIO_FUNC_SPI_DO = 12 / * * < GPIO SPI一样* / HW_GPIO_FUNC_SPI_CLK = 13, / * * < GPIO SPI CLK * / HW_GPIO_FUNC_SPI_EN = 14日/ * * < GPIO SPI EN * / HW_GPIO_FUNC_SPI2_DI = 15 / * * < GPIO SPI2 DI * / HW_GPIO_FUNC_SPI2_DO = 16, / * * < GPIO SPI2一样* / HW_GPIO_FUNC_SPI2_CLK = 17,/**< GPIO as SPI2 CLK */ HW_GPIO_FUNC_SPI2_EN = 18, /**< GPIO as SPI2 EN */

如果您正在使用SPI2块,而gpio仍然配置为SPI1的yuncionality,这将永远不会工作,因为您“说话”到一个不同的HW块。

您应该相应地更改hw_gpio_set_pin_function()。你也可以看看SPI适配器的概念教程来自DA1468x产品页面,您将找到使用SPI适配器的详细指南。

谢谢,PM_Dialog