SAM7-P64 Dev Board Rev E. Possible ERRATA and ISSUES

I’m currently trying to implement a keyboard matrix controller that will communicate with a host via USB (I won’t go into why…yes, I know you can just buy a USB keyboard these days.)

My dev environment is Eclipse 3.2 with Yagarto tools, OpenOCD supporting the Olimex Arm-Usb-OCD jtag pod (though I also use an Amontec JtagKey)

I have revision E of the SAM7-P64 board

Here are some issues I’ve run into:

  1. The schematic on the sparkfun site seems to be wrong. Other than some small labeling errors on components (Q2 in schem seems to be FET1 on the silkscreen), there is one big one:

DP_PUP, the pull-up for the D+ USB line (that would allow the host to detect a plugged-in device) is noted on the schematic as going to Pin 25, which is PA25. However, doing a DMM test trace on the PCB itself reveals that this line actually goes to Pin 19 , which is PA16. I confirmed this as well with code, and toggled this line high/low by writing to the PIO reg for PA16.

  1. I can’t seem to get past the first step on enumeration with this board; it just won’t send anything back to the host. Has anyone had any success with the sample Mouse_driver HID code? (i have tried both the Atmel variants and the modified code available at Techtoys.hk)

Do I need to drop the D+ line somehow and let the host drive it? There is a pull-up on it (R15 on the board; 1.5kOhm) so the host should technically be able to drive this low with no problem. Turning the AT91’s output open-collector won’t do anything because it only drives an NPN transistor which in turn puts/cuts power on the D+ line

Any help and pointers are appreciated, especially from people that have successfully run HID code on either the P64 or H64 boards.

I would even consider PayPal paying out a modest bounty for a fully working solution. Effort should be appreciated =)

Thanks in advance.