1. 首页
  2. 编程语言
  3. 硬件开发
  4. USB设备控制器的初始化-docker部署python爬虫项目的方法步骤

USB设备控制器的初始化-docker部署python爬虫项目的方法步骤

上传者: 2024-07-22 01:34:58上传 PDF文件 10.65MB 热度 16次

表11.67清空缓冲区寄存器位描述:

| 位 | 符号 | 值 | 描述 | 复位值 |

|------|------|----|-------------------------------------------------|--------|

| 0 | PO | 1 | 之前接收到的信息包被后面的SETUP包覆盖 | 0 |

| 7:1 | - | - | 保留,用户软件不应向保留位写入。从保留位读出的值未被定义。 | NA |

11.12.14确认缓冲区(命令:0xFA,数据:无):当CPU已将数据写入IN缓冲区时,软件应发出一个确认缓冲区命令。该命令告知硬件,缓冲区准备在USB总线上进行发送操作。当接收到下一个IN令牌包时,硬件将会发送缓冲区中的内容。在内部有一个称作Buffer_Full的硬件FIFO状态标志。该标志由确认缓冲区命令置位并当数据已在USB总线上发送完成时清零,缓冲区为空。当控制IN端点对应的OUT缓冲区的Packet Over-written(PO)位置位,或者包含一个挂起的SETUP包时,不能确认控制IN缓冲区有效。对于控制端点,已确认的缓冲区将在接收到SETUP包时无效。该命令使用情况的详细描述请参考“从模式操作”。

11.13 USB设备控制器的初始化:

LPC1700系列Cortex-M3微控制器USB设备控制器的初始化步骤如下所示:

a)通过置位PCONP的PCUSB位来使能设备控制器;

b)配置和使能PLL和时钟分频器以提供48MHz的usbclk和所需的cclk频率。为了使设备控制器中的同步逻辑能够正确操作,最小的cclk频率为18MHz。确定PLL设置和配置的步骤请参考“确定PLL0设置的过程”;

c)通过置位USBClkCtrl寄存器中DEV_CLK_EN和AHB_CLK_EN位来使能设备控制器时钟。查询USBClkSt寄存器中对应的时钟位直到它们被置位;

d)通过向对应的PINSEL寄存器执行写操作来使能USB管脚功能;

e)使用对应的PINMODE寄存器将VBUS管脚上的上拉电阻禁能;

f)针对EP0和EP1设置USBEpIn和USBMaxPSize寄存器,并等待直到USBDevIntSt寄存器中的EP_RLZED位置位,表示端点EP0和EP1已实现;

g)使能端点中断(从模式):

  • 使用USBEpIntClr将所有端点中断清零;

  • 使用USBDevIntClr将所有设备中断清零;

  • 通过置位USBEpIntEn中的对应位,使能所需端点的从模式操作。

要了解更多关于USB设备控制器端点缓冲区的优化设计,可以参考这篇文章:USB设备控制器端点缓冲区的优化设计。对于时钟中断的进一步细节,您也可以查看这篇详细的说明:时钟中断

希望这些资源能够帮助您更好地理解和实现相关的功能!您是否想知道更多关于设备初始化的细节呢?

下载地址
用户评论