0

我正在使用 SAM3S-EK 演示板开发我的项目。我使用带有示例代码和 ASF 的 USB CDC 和 MSC 驱动程序,一切正常。现在我想将代码放入我的自定义卡中(使用 SAM3S1B)。但这是我的问题。我已经分配了引脚并更改了时钟配置,但 Windows 无法识别该设备。所有描述符都等于 0(根据 USBLyser)。

有人能帮我吗 ?

那是我的时钟配置文件(我有一个 16MHz 晶体):

// ===== System Clock (MCK) Source Options
#define CONFIG_SYSCLK_SOURCE        SYSCLK_SRC_PLLACK

// ===== System Clock (MCK) Prescaler Options   (Fmck = Fsys / (SYSCLK_PRES))
#define CONFIG_SYSCLK_PRES          SYSCLK_PRES_4

// ===== PLL0 (A) Options   (Fpll = (Fclk * PLL_mul) / PLL_div)
// Use mul and div effective values here.
#define CONFIG_PLL0_SOURCE          PLL_SRC_MAINCK_XTAL
#define CONFIG_PLL0_MUL             32
#define CONFIG_PLL0_DIV             2

// ===== PLL1 (B) Options   (Fpll = (Fclk * PLL_mul) / PLL_div)
// Use mul and div effective values here.
#define CONFIG_PLL1_SOURCE          PLL_SRC_MAINCK_12M_RC
#define CONFIG_PLL1_MUL             16
#define CONFIG_PLL1_DIV             2

// ===== USB Clock Source Options   (Fusb = FpllX / USB_div)
// Use div effective value here.
//#define CONFIG_USBCLK_SOURCE        USBCLK_SRC_PLL0
#define CONFIG_USBCLK_SOURCE        USBCLK_SRC_PLL1
#define CONFIG_USBCLK_DIV           2

// ===== Target frequency (System clock)
// - XTAL frequency: 16MHz
// - System clock source: PLLA
// - System clock prescaler: 4 (divided by 4)
// - PLLA source: XTAL
// - PLLA output: XTAL * 32 / 3
// - System clock is: 16 * 32 / 4 / 2 = 64MHz
// ===== Target frequency (USB Clock)
// - USB clock source: PLLB
// - USB clock divider: 2 (divided by 2)
// - PLLB output: XTAL * 12 / 2
// - USB clock: 16 * 12 / 2 / 2 = 48MHz

4

2 回答 2

0

仔细检查您的时钟频率。我正在使用 SAM4L 部件,它需要 PLL 从 OSC0 运行以生成 48 MHz 时钟。我有一段时间遇到同样的问题,因为我的 ABDACB 使用相同的时钟并改变了速率。据我了解,插入 USB 设备会根据速度感测引脚 DP 或 DN 上的单个上拉电阻。这就是告诉 Windows(主机)尝试通信的原因。如果时钟频率错误,windows中的属性都显示为0。

于 2015-09-15T17:24:13.740 回答
0

与 Windows 下使用的所有 USB 设备一样,您需要首先安装特定于您要连接的设备的 Windows 端 USB 驱动程序。

当您安装 Atmel Studio 6.2 或更高版本时,它会为您在固件中使用的 Atmel ASF USB 驱动程序安装 Windows 端 USB 驱动程序。该 Windows 驱动程序适用于我的 SAM4E 目标处理器。请注意,在 Windows 中加载驱动程序需要很长时间。它似乎已挂起。只要给它时间,它最终会安装驱动程序。您可能必须响应弹出警告以允许安装未签名的驱动程序。

Windows 驱动程序也可以单独下载和安装。使用此链接:

https://gallery.atmel.com/Products/Details/6272a8fd-68fe-43d8-a990-741878cfe7b6

于 2015-08-01T14:14:11.920 回答