USB mouse works!
This commit is contained in:
parent
d0a29092b6
commit
6c18cee5ec
7 changed files with 40 additions and 7 deletions
6
.gitmodules
vendored
6
.gitmodules
vendored
|
|
@ -4,3 +4,9 @@
|
|||
[submodule "external/no-OS-FatFS-SD-SPI-RPi-Pico"]
|
||||
path = external/no-OS-FatFS-SD-SPI-RPi-Pico
|
||||
url = https://github.com/evansm7/no-OS-FatFS-SD-SPI-RPi-Pico.git
|
||||
[submodule "lib/tinyusb"]
|
||||
path = lib/tinyusb
|
||||
url = https://github.com/hathach/tinyusb
|
||||
[submodule "lib/Pico-PIO-USB"]
|
||||
path = lib/Pico-PIO-USB
|
||||
url = https://github.com/tannewt/Pico-PIO-USB
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ cmake_minimum_required(VERSION 3.13)
|
|||
# Note: to build for fruit jam:
|
||||
# cmake -DPICO_BOARD=pico2 -DUSE_HSTX=1 -S . -B build_hstx -DPICO_SDK_PATH=../pico-sdk
|
||||
|
||||
set(PICO_TINYUSB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib/tinyusb)
|
||||
set(PIOUSB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib/Pico-PIO-USB)
|
||||
|
||||
option(USE_SD "Build in SD support" OFF)
|
||||
set(SD_TX 3 CACHE STRING "SD SPI TX pin")
|
||||
set(SD_RX 4 CACHE STRING "SD SPI RX pin")
|
||||
|
|
@ -71,8 +74,6 @@ pico_sdk_init()
|
|||
set(FAMILY rp2040)
|
||||
set(BOARD raspberry_pi_pico)
|
||||
|
||||
set(TINYUSB_PATH ${PICO_SDK_PATH}/lib/tinyusb)
|
||||
|
||||
# umac subproject (and Musashi sub-subproject)
|
||||
set(UMAC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/umac)
|
||||
set(UMAC_MUSASHI_PATH ${UMAC_PATH}/external/Musashi)
|
||||
|
|
@ -128,6 +129,8 @@ endif()
|
|||
|
||||
add_compile_definitions(PIN_USB_HOST_DP=${PIN_USB_HOST_DP})
|
||||
add_compile_definitions(PIN_USB_HOST_DM=${PIN_USB_HOST_DM})
|
||||
add_compile_definitions(PICO_DEFAULT_PIO_USB_DP_PIN=${PIN_USB_HOST_DP})
|
||||
add_compile_definitions(PICO_DEFAULT_PIO_USB_DM_PIN=${PIN_USB_HOST_DM})
|
||||
|
||||
if (TARGET tinyusb_device)
|
||||
add_executable(firmware
|
||||
|
|
@ -137,6 +140,11 @@ if (TARGET tinyusb_device)
|
|||
src/hid.c
|
||||
${EXTRA_SD_SRC}
|
||||
|
||||
${PICO_TINYUSB_PATH}/src/portable/raspberrypi/pio_usb/hcd_pio_usb.c
|
||||
${PIOUSB_PATH}/src/pio_usb.c
|
||||
${PIOUSB_PATH}/src/pio_usb_host.c
|
||||
${PIOUSB_PATH}/src/usb_crc.c
|
||||
|
||||
${UMAC_SOURCES}
|
||||
)
|
||||
|
||||
|
|
@ -163,10 +171,12 @@ if (TARGET tinyusb_device)
|
|||
|
||||
target_include_directories(firmware PRIVATE
|
||||
${CMAKE_CURRENT_LIST_DIR}/include
|
||||
${TINYUSB_PATH}/hw
|
||||
${TINYUSB_PATH}/src
|
||||
${PICO_TINYUSB_PATH}/hw
|
||||
${PICO_TINYUSB_PATH}/src
|
||||
${UMAC_INCLUDE_PATHS}
|
||||
${PIOUSB_PATH}/src
|
||||
incbin
|
||||
${CMAKE_CURRENT_LIST_DIR}
|
||||
)
|
||||
|
||||
pico_enable_stdio_uart(firmware 1)
|
||||
|
|
|
|||
|
|
@ -89,6 +89,10 @@
|
|||
#define CFG_TUH_HID_EPIN_BUFSIZE 64
|
||||
#define CFG_TUH_HID_EPOUT_BUFSIZE 64
|
||||
|
||||
#ifndef BOARD_TUH_RHPORT
|
||||
#define BOARD_TUH_RHPORT 1
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
1
lib/Pico-PIO-USB
Submodule
1
lib/Pico-PIO-USB
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 1862cc008e026cbd07b97b28e29eafb5f38b35fb
|
||||
1
lib/tinyusb
Submodule
1
lib/tinyusb
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 5333d042f9384ec1cc0663a2708c0ca7cb5cdc32
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "bsp/rp2040/board.h"
|
||||
#include "bsp/rp2040/boards/adafruit_fruit_jam/board.h"
|
||||
#include "tusb.h"
|
||||
|
||||
#include "kbd.h"
|
||||
|
|
|
|||
15
src/main.c
15
src/main.c
|
|
@ -40,7 +40,8 @@
|
|||
#include "video.h"
|
||||
#include "kbd.h"
|
||||
|
||||
#include "bsp/rp2040/board.h"
|
||||
#include "pio_usb_configuration.h"
|
||||
#include "bsp/rp2040/boards/adafruit_fruit_jam/board.h"
|
||||
#include "tusb.h"
|
||||
|
||||
#include "umac.h"
|
||||
|
|
@ -275,9 +276,19 @@ int main()
|
|||
printf("Starting, init usb\n");
|
||||
|
||||
pio_usb_configuration_t pio_cfg = PIO_USB_DEFAULT_CONFIG;
|
||||
pio_cfg.tx_ch = 2;
|
||||
pio_cfg.pin_dp = PICO_DEFAULT_PIO_USB_DP_PIN;
|
||||
|
||||
//#ifdef PICO_DEFAULT_PIO_USB_VBUSEN_PIN
|
||||
gpio_init(PICO_DEFAULT_PIO_USB_VBUSEN_PIN);
|
||||
gpio_set_dir(PICO_DEFAULT_PIO_USB_VBUSEN_PIN, GPIO_OUT);
|
||||
gpio_put(PICO_DEFAULT_PIO_USB_VBUSEN_PIN, PICO_DEFAULT_PIO_USB_VBUSEN_STATE);
|
||||
//#endif
|
||||
|
||||
#if 0
|
||||
_Static_assert(PIN_USB_HOST_DP + 1 == PIN_USB_HOST_DM || PIN_USB_HOST_DP - 1 == PIN_USB_HOST_DM, "Permitted USB D+/D- configuration");
|
||||
pio_cfg.pinout = PIN_USB_HOST_DP + 1 == PIN_USB_HOST_DM ? PIO_USB_PINOUT_DPDM : PIO_USB_PINOUT_DMDP;
|
||||
pio_cfg.pin_dp = PIN_USB_HOST_DP;
|
||||
#endif
|
||||
tuh_configure(BOARD_TUH_RHPORT, TUH_CFGID_RPI_PIO_USB_CONFIGURATION, &pio_cfg);
|
||||
|
||||
tuh_init(BOARD_TUH_RHPORT);
|
||||
|
|
|
|||
Loading…
Reference in a new issue