[RISC-V MCU 应用开发] 关于全志D1的SPI通讯问题

[复制链接]
 楼主| 神棍地海棠 发表于 2023-1-9 09:45 | 显示全部楼层 |阅读模式
本帖最后由 神棍地海棠 于 2023-1-9 09:46 编辑

D1的SPI,空闲的时候是低电平,而且每个字节CLK 有9个脉冲,如图所示:
69ab0e53-0a81-4e5a-a933-baa35996319c-b13f59eea207603814d7c6f7735be58.png

以下是SPI的配置
dae63afb-5f04-4996-b19f-fd202fc04632-c0bfef175b8bd85d82ae30f8648acf0.png

如果想将空闲时变成高电平,以及每个字节的CLK设为8个,可以尝试通过一下两个角度去分析。

SPI通讯的问题首先考虑是不是 spi_dbi_enable 的问题,目前 spi_dbi_enable 设置的是1,在将 spi_dbi_enable 设置为0后CLK,MOSI都没有数据了。
161515ee-caa4-443c-b47f-1af17c829fd8-081233f73223eb243d302328402d957.png

其实spi_dbi_enable是spi lcd显示屏专用的驱动,配置两个逻辑不太一样

配置lcd屏幕需要单独写lcd的配置

  1. <pre class="markdown-highlight" style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; font-size: 13px; padding: 9.5px; margin-top: 1rem; margin-bottom: 10px; line-height: 1.42857; word-break: break-all; color: rgb(51, 51, 51); background-color: rgb(255, 255, 255); border: none; border-radius: 0px; max-height: 350px;"><code class="hljs xml" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; font-size: inherit; padding: 0.5em; color: rgb(230, 225, 220); background: rgb(35, 35, 35); border-radius: 0px; display: inline-block; overflow-x: auto; overflow-wrap: normal; min-width: 100%;">&lcd_fb0 {
  2.         lcd_used = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  3.         lcd_driver_name = "kld2844b";
  4.         lcd_if = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  5.         lcd_dbi_if = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">4</span>></span>;
  6.         lcd_data_speed = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">60</span>></span>;
  7.         lcd_spi_bus_num = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  8.         lcd_x = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">240</span>></span>;
  9.         lcd_y = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">320</span>></span>;
  10.         lcd_width = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">60</span>></span>;
  11.         lcd_height = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">95</span>></span>;
  12.         lcd_pwm_used = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  13.         lcd_pwm_ch = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">7</span>></span>;
  14.         lcd_pwm_freq = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">5000</span>></span>;
  15.         lcd_pwm_pol = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">0</span>></span>;
  16.         lcd_pixel_fmt = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">0</span>></span>;
  17.         lcd_dbi_fmt = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">3</span>></span>;
  18.         lcd_rgb_order = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">0</span>></span>;
  19.         lcd_frm = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  20.         lcd_gamma_en = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  21.         fb_buffer_num = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">2</span>></span>;
  22.         lcd_backlight = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">100</span>></span>;
  23.         lcd_dbi_te = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">1</span>></span>;
  24.         lcd_fps = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">60</span>></span>;
  25.         lcd_gpio_0 = <span class="hljs-tag" style="box-sizing: border-box; color: rgb(232, 191, 106);"><<span class="hljs-name" style="box-sizing: border-box;">&pio</span> <span class="hljs-attr" style="box-sizing: border-box; color: rgb(109, 156, 190);">PC</span> <span class="hljs-attr" style="box-sizing: border-box; color: rgb(109, 156, 190);">0</span> <span class="hljs-attr" style="box-sizing: border-box; color: rgb(109, 156, 190);">GPIO_ACTIVE_HIGH</span>></span>;  // reset
  26.         status = "okay";
  27. };</code></pre>


另外检查一下,spi-rx-bus-width=<0x04>是四线spi驱动,需要确认从机是4bit SPI <D0 D1 D2 D3 CLK CS>,否则请改成 spi-rx-bus-width=<0x01>;

您需要登录后才可以回帖 登录 | 注册

本版积分规则

284

主题

292

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部