Apollo2’s hidden USB is not a hidden hardware feature, but software bit-banging using Apollo2s flexible GPIOs including the capability to drive 1.5k pullup resistors on special pins used with I2C.The following picture shows the connection between MCU and USB port:
The solution supports low-speed USB for realizing HID USB transfers for example. One idea is to add an USB HID based bootloader.
The demo available on github https://github.com/schreinerman/apollo2_hiddenusb emulates an USB keyboard and is opening the start menu and typing “April Joke” and return (opens Internet Explorer searching for April Joke).
-
Very often MCUs having more features than described in the datasheet. For example @Ambiq_Micro 's Apollo2 MCU has the hidden possibility to drive USB… pic.twitter.com/kBoli1Z1o3
— Manuel Schreiner (@schreinerman) April 1, 2019
These are the instructions how to try the demo:
Download apollo2_hiddenusb.bin to Apollo2 MCU
Do the USB Cable connection:
- Connect D- to AMAPHEVB GPIO8
- Connect D+ to AMAPHEVB GPIO9
- Connect GND to AMAPHEVB GND
- Connect VBUS (5V) to AMAPHEVB 5V (!!not to VCC!!)
Last Step:
- Connect USB to PC.
Wait 15 seconds and see the result on a Windows PC
See also http://shop.feeu.com/Shops/es966226/Products/AMAPHEVB to order a board