summaryrefslogtreecommitdiff
path: root/firmware/src/system_config/default
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src/system_config/default')
-rw-r--r--firmware/src/system_config/default/configuration.xml140
-rw-r--r--firmware/src/system_config/default/default.mhc65
-rw-r--r--firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c7
-rw-r--r--firmware/src/system_config/default/system_config.h119
-rw-r--r--firmware/src/system_config/default/system_definitions.h17
-rw-r--r--firmware/src/system_config/default/system_init.c147
-rw-r--r--firmware/src/system_config/default/system_interrupt.c17
-rw-r--r--firmware/src/system_config/default/system_tasks.c12
8 files changed, 469 insertions, 55 deletions
diff --git a/firmware/src/system_config/default/configuration.xml b/firmware/src/system_config/default/configuration.xml
index 4606dcc..7ba7ae5 100644
--- a/firmware/src/system_config/default/configuration.xml
+++ b/firmware/src/system_config/default/configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<configuration version="1.0.6.12">
+<configuration version="1.0.7.9">
<General>
<HarmonyPath path="../../../../opt/microchip/harmony/v1_06"/>
<ForceOptimization flag="false"/>
@@ -7,79 +7,153 @@
<Manifest>
<Files>
<File>
- <Name>sys_devcon_cache_pic32mz.S</Name>
+ <Name>drv_tmr.h</Name>
+ <Path>Header Files/framework/driver/tmr</Path>
+ </File>
+ <File>
+ <Name>sys_devcon.c</Name>
<Path>Source Files/framework/system/devcon/src</Path>
</File>
<File>
- <Name>sys_module.h</Name>
- <Path>Header Files/framework/system/common</Path>
+ <Name>sys_tmr.h</Name>
+ <Path>Header Files/framework/system/tmr</Path>
</File>
<File>
- <Name>sys_devcon.c</Name>
- <Path>Source Files/framework/system/devcon/src</Path>
+ <Name>usb_host.h</Name>
+ <Path>Header Files/framework/usb</Path>
</File>
<File>
- <Name>sys_devcon_cache.h</Name>
- <Path>Header Files/framework/system/devcon</Path>
+ <Name>sys_tmr.c</Name>
+ <Path>Source Files/framework/system/tmr/src</Path>
</File>
<File>
- <Name>sys_common.h</Name>
- <Path>Header Files/framework/system/common</Path>
+ <Name>drv_usbhs.c</Name>
+ <Path>Source Files/framework/driver/usb/usbhs/src/dynamic</Path>
+ </File>
+ <File>
+ <Name>usb_host_hub_interface.h</Name>
+ <Path>Header Files/framework/usb</Path>
+ </File>
+ <File>
+ <Name>usb_host_hid.c</Name>
+ <Path>Source Files/framework/usb/src/dynamic</Path>
</File>
<File>
<Name>sys_ports.h</Name>
<Path>Header Files/framework/system/ports</Path>
</File>
<File>
- <Name>system.h</Name>
- <Path>Header Files/framework/system</Path>
+ <Name>driver.h</Name>
+ <Path>Header Files/framework/driver</Path>
+ </File>
+ <File>
+ <Name>sys_common.h</Name>
+ <Path>Header Files/framework/system/common</Path>
+ </File>
+ <File>
+ <Name>usb_host.c</Name>
+ <Path>Source Files/framework/usb/src/dynamic</Path>
+ </File>
+ <File>
+ <Name>sys_int_pic32.c</Name>
+ <Path>Source Files/framework/system/int/src</Path>
+ </File>
+ <File>
+ <Name>drv_usbhs_host.c</Name>
+ <Path>Source Files/framework/driver/usb/usbhs/src/dynamic</Path>
+ </File>
+ <File>
+ <Name>sys_devcon_cache_pic32mz.S</Name>
+ <Path>Source Files/framework/system/devcon/src</Path>
+ </File>
+ <File>
+ <Name>drv_tmr.c</Name>
+ <Path>Source Files/framework/driver/tmr/src/dynamic</Path>
</File>
<File>
<Name>sys_ports.c</Name>
<Path>Source Files/framework/system/ports/src</Path>
</File>
<File>
+ <Name>usb_host_hid.h</Name>
+ <Path>Header Files/framework/usb</Path>
+ </File>
+ <File>
+ <Name>sys_devcon_cache.h</Name>
+ <Path>Header Files/framework/system/devcon</Path>
+ </File>
+ <File>
<Name>sys_devcon.h</Name>
<Path>Header Files/framework/system/devcon</Path>
</File>
<File>
+ <Name>system.h</Name>
+ <Path>Header Files/framework/system</Path>
+ </File>
+ <File>
+ <Name>sys_module.h</Name>
+ <Path>Header Files/framework/system/common</Path>
+ </File>
+ <File>
<Name>sys_devcon_pic32mz.c</Name>
<Path>Source Files/framework/system/devcon/src</Path>
</File>
+ <File>
+ <Name>usb_host_hid_keyboard.c</Name>
+ <Path>Source Files/framework/usb/src/dynamic</Path>
+ </File>
+ <File>
+ <Name>sys_int.h</Name>
+ <Path>Header Files/framework/system/int</Path>
+ </File>
+ <File>
+ <Name>drv_usb.h</Name>
+ <Path>Header Files/framework/driver/usb</Path>
+ </File>
</Files>
<Templates>
<Template>
+ <Name>system_init.c</Name>
+ <Path>Source Files/app/system_config/default</Path>
+ <Checksum>AB64567D43967E351B3AE21A3512770A</Checksum>
+ </Template>
+ <Template>
+ <Name>sys_ports_static.c</Name>
+ <Path>Source Files/app/system_config/default/framework/system/ports/src</Path>
+ <Checksum>5F2394E93856B6D50B7274ADB5A4FF75</Checksum>
+ </Template>
+ <Template>
<Name>main.c</Name>
<Path>Source Files/app</Path>
</Template>
<Template>
+ <Name>system_tasks.c</Name>
+ <Path>Source Files/app/system_config/default</Path>
+ <Checksum>06DAEF54F88A42FADBE944B8C42A9A8E</Checksum>
+ </Template>
+ <Template>
<Name>system_exceptions.c</Name>
<Path>Source Files/app/system_config/default</Path>
<Checksum>C111969CA43D6CEA1E9E33A6164E7AE0</Checksum>
</Template>
<Template>
- <Name>app.c</Name>
- <Path>Source Files/app</Path>
+ <Name>system_config.h</Name>
+ <Path>Header Files/app/system_config/default</Path>
+ <Checksum>2E2753D416790B8746872ED19CBD7EBD</Checksum>
</Template>
<Template>
- <Name>system_config.h</Name>
+ <Name>system_definitions.h</Name>
<Path>Header Files/app/system_config/default</Path>
- <Checksum>AACDE55E44291B8ECCFF86EB2C6D3F1B</Checksum>
+ <Checksum>311DEBE3E7CC645F2B04685A22F1A574</Checksum>
</Template>
<Template>
- <Name>system_init.c</Name>
- <Path>Source Files/app/system_config/default</Path>
- <Checksum>A20E6051172F14BA64FD464630B2D979</Checksum>
+ <Name>app.h</Name>
+ <Path>Header Files/app</Path>
</Template>
<Template>
<Name>system_interrupt.c</Name>
<Path>Source Files/app/system_config/default</Path>
- <Checksum>9AC33B2960C8DF72C5EB0E3662303FF4</Checksum>
- </Template>
- <Template>
- <Name>sys_ports_static.c</Name>
- <Path>Source Files/app/system_config/default/framework/system/ports/src</Path>
- <Checksum>5F2394E93856B6D50B7274ADB5A4FF75</Checksum>
+ <Checksum>A9E8E9E6AB62025075023812C9644167</Checksum>
</Template>
<Template>
<Name>sys_clk_static.h</Name>
@@ -87,23 +161,13 @@
<Checksum>999179DADE9ECD59953526F5E9F83ACC</Checksum>
</Template>
<Template>
- <Name>app.h</Name>
- <Path>Header Files/app</Path>
- </Template>
- <Template>
<Name>sys_clk_static.c</Name>
<Path>Source Files/app/system_config/default/framework/system/clk/src</Path>
- <Checksum>58CE0B253D4367C188EB62895C501C46</Checksum>
+ <Checksum>AD2A48FC4F748121617EE487C9AD8911</Checksum>
</Template>
<Template>
- <Name>system_tasks.c</Name>
- <Path>Source Files/app/system_config/default</Path>
- <Checksum>BE644D0142ACA48D9CA2E6255A02CDBA</Checksum>
- </Template>
- <Template>
- <Name>system_definitions.h</Name>
- <Path>Header Files/app/system_config/default</Path>
- <Checksum>08B5EB4F7D9B07DBF06AD124A3AC99C1</Checksum>
+ <Name>app.c</Name>
+ <Path>Source Files/app</Path>
</Template>
</Templates>
<Libraries>
diff --git a/firmware/src/system_config/default/default.mhc b/firmware/src/system_config/default/default.mhc
index 94fdc77..bb5dcaa 100644
--- a/firmware/src/system_config/default/default.mhc
+++ b/firmware/src/system_config/default/default.mhc
@@ -1,6 +1,6 @@
#
-# Configuration generated by Microchip Harmony Configurator (MHC) v1.0.6.12
-# Project name: PIC32MZ_harmony_tryout
+# Configuration generated by Microchip Harmony Configurator (MHC) v1.0.7.9
+# Project name: CText
# Configuration: default
# Device: PIC32MZ2048ECG064
# Harmony version: 1.06
@@ -147,7 +147,23 @@ CONFIG_USE_DRV_SST25VF064C=n
#
# from $HARMONY_VERSION_PATH/framework/driver/tmr/config/drv_tmr.hconfig
#
-CONFIG_USE_DRV_TMR=n
+CONFIG_USE_DRV_TMR=y
+CONFIG_DRV_TMR_DRIVER_MODE="DYNAMIC"
+CONFIG_DRV_TMR_CLIENTS_NUMBER=1
+CONFIG_DRV_TMR_INTERRUPT_MODE=y
+CONFIG_DRV_TMR_INSTANCES_NUMBER=1
+#
+# from $HARMONY_VERSION_PATH/framework/driver/tmr/config/drv_tmr_idx.ftl
+#
+CONFIG_DRV_TMR_INST_0=y
+CONFIG_DRV_TMR_PERIPHERAL_ID_IDX0="TMR_ID_1"
+CONFIG_DRV_TMR_INTERRUPT_PRIORITY_IDX0="INT_PRIORITY_LEVEL1"
+CONFIG_DRV_TMR_INTERRUPT_SUB_PRIORITY_IDX0="INT_SUBPRIORITY_LEVEL0"
+CONFIG_DRV_TMR_CLOCK_SOURCE_IDX0="DRV_TMR_CLKSOURCE_INTERNAL"
+CONFIG_DRV_TMR_PRESCALE_IDX0="TMR_PRESCALE_VALUE_256"
+CONFIG_DRV_TMR_OPERATION_MODE_IDX0="DRV_TMR_OPERATION_MODE_16_BIT"
+CONFIG_DRV_TMR_ASYNC_WRITE_ENABLE_IDX0=n
+CONFIG_DRV_TMR_POWER_STATE_IDX0="SYS_MODULE_POWER_RUN_FULL"
#
# from $HARMONY_VERSION_PATH/framework/driver/touch/adc10bit/config/drv_adc10bit.hconfig
#
@@ -199,7 +215,8 @@ CONFIG_SYS_CLK_PBCLK2_ENABLE=y
CONFIG_SYS_CLK_PBDIV2=2
CONFIG_SYS_CLK_PBCLK3_ENABLE=y
CONFIG_SYS_CLK_PBDIV3=2
-CONFIG_SYS_CLK_PBCLK4_ENABLE=n
+CONFIG_SYS_CLK_PBCLK4_ENABLE=y
+CONFIG_SYS_CLK_PBDIV4=1
CONFIG_SYS_CLK_PBCLK6_ENABLE=y
CONFIG_SYS_CLK_PBDIV6=1
CONFIG_SYS_CLK_PBCLK7_ENABLE=n
@@ -213,6 +230,7 @@ CONFIG_SYS_CLK_FREQ="80000000"
CONFIG_SYS_CLK_PBCLK0_FREQ="40000000"
CONFIG_SYS_CLK_PBCLK2_FREQ="40000000"
CONFIG_SYS_CLK_PBCLK3_FREQ="40000000"
+CONFIG_SYS_CLK_PBCLK4_FREQ="80000000"
CONFIG_SYS_CLK_PBCLK6_FREQ="80000000"
#
# from $HARMONY_VERSION_PATH/framework/system/command/config/sys_command.hconfig
@@ -249,7 +267,7 @@ CONFIG_USE_SYS_FS=n
#
# from $HARMONY_VERSION_PATH/framework/system/int/config/sys_int.hconfig
#
-CONFIG_USE_SYS_INT=n
+CONFIG_USE_SYS_INT=y
CONFIG_USE_EXT_INT=n
#
# from $HARMONY_VERSION_PATH/framework/system/msg/config/sys_msg.hconfig
@@ -265,8 +283,8 @@ CONFIG_USE_SYS_PORTS_CN_INTERRUPT=n
# from $HARMONY_VERSION_PATH/framework/system/ports/config/sys_ports_idx.ftl
#
CONFIG_USE_PORT_B=y
-CONFIG_SYS_PORT_B_ANSEL=0x0
-CONFIG_SYS_PORT_B_TRIS=0x0
+CONFIG_SYS_PORT_B_ANSEL=0x7020
+CONFIG_SYS_PORT_B_TRIS=0x7020
CONFIG_SYS_PORT_B_LAT=0x0
CONFIG_SYS_PORT_B_ODC=0x0
CONFIG_SYS_PORT_B_CNPU=0x0
@@ -327,7 +345,15 @@ CONFIG_USE_SYS_TOUCH=n
#
# from $HARMONY_VERSION_PATH/framework/system/tmr/config/sys_tmr.hconfig
#
-CONFIG_USE_SYS_TMR=n
+CONFIG_USE_SYS_TMR=y
+CONFIG_SYS_TMR_POWER_STATE="SYS_MODULE_POWER_RUN_FULL"
+CONFIG_SYS_TMR_DRIVER_INDEX="DRV_TMR_INDEX_0"
+CONFIG_SYS_TMR_MAX_CLIENT_OBJECTS=5
+CONFIG_SYS_TMR_FREQUENCY=1000
+CONFIG_SYS_TMR_FREQUENCY_TOLERANCE=10
+CONFIG_SYS_TMR_UNIT_RESOLUTION=10000
+CONFIG_SYS_TMR_CLIENT_TOLERANCE=10
+CONFIG_SYS_TMR_INTERRUPT_NOTIFICATION=n
#
# from $HARMONY_VERSION_PATH/framework/system/wdt/config/sys_wdt.hconfig
#
@@ -339,7 +365,26 @@ CONFIG_USE_TCPIP_STACK=n
#
# from $HARMONY_VERSION_PATH/framework/usb/config/usb.hconfig
#
-CONFIG_USE_USB_STACK=n
+CONFIG_USE_USB_STACK=y
+CONFIG_DRV_USB_INTERRUPT_MODE=y
+CONFIG_DRV_USB_DEVICE_SUPPORT=n
+CONFIG_DRV_USB_HOST_SUPPORT=y
+CONFIG_DRV_USB_BETA_SW_HOST_SUPPORT=n
+CONFIG_USB_HOST_SPEED_HS_IDX0="USB_SPEED_HIGH"
+CONFIG_USB_HOST_DEVICE_NUMBER=1
+CONFIG_USB_HOST_TPL_ENTRY_NUMBER=1
+CONFIG_USB_HOST_MAX_INTERFACES=5
+CONFIG_USB_HOST_USE_HUB=n
+CONFIG_USB_HOST_USE_CDC=n
+CONFIG_USB_HOST_USE_HID=y
+CONFIG_USB_HOST_USE_MOUSE=n
+CONFIG_USB_HOST_USE_KEYBOARD=y
+CONFIG_USB_HOST_HID_NUMBER_OF_INSTANCES=1
+CONFIG_USB_HOST_HID_INTERRUPT_IN_ENDPOINTS_NUMBER=1
+CONFIG_USB_HID_TOTAL_USAGE_DRIVER_INSTANCES=1
+CONFIG_USB_HID_GLOBAL_PUSH_POP_STACK_SIZE=1
+CONFIG_USB_HOST_USE_AUDIO=n
+CONFIG_USB_HOST_USE_MSD=n
#
# from $HARMONY_VERSION_PATH/framework/sample/config/sample_module.hconfig
#
@@ -399,7 +444,7 @@ CONFIG_FPLLRNG="RANGE_5_10_MHZ"
CONFIG_FPLLICLK="PLL_FRC"
CONFIG_FPLLMULT="MUL_80"
CONFIG_FPLLODIV="DIV_8"
-CONFIG_UPLLFSEL="FREQ_12MHZ"
+CONFIG_UPLLFSEL="FREQ_24MHZ"
CONFIG_UPLLEN="OFF"
CONFIG_FNOSC="SPLL"
CONFIG_DMTINTV="WIN_127_128"
diff --git a/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c b/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c
index 06a146b..7f01b06 100644
--- a/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c
+++ b/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c
@@ -104,9 +104,9 @@ void SYS_CLK_Initialize( const SYS_CLK_INIT const * clkInit )
/* Enable Peripheral Bus 4 */
PLIB_OSC_PBClockDivisorSet (OSC_ID_0, 3, 2 );
PLIB_OSC_PBOutputClockEnable (OSC_ID_0, 3 );
- /* Disable Peripheral Bus 5 */
- PLIB_OSC_PBOutputClockDisable (OSC_ID_0, 4 );
-
+ /* Enable Peripheral Bus 5 */
+ PLIB_OSC_PBClockDivisorSet (OSC_ID_0, 4, 1 );
+ PLIB_OSC_PBOutputClockEnable (OSC_ID_0, 4 );
/* Enable Peripheral Bus 7 */
PLIB_OSC_PBClockDivisorSet (OSC_ID_0, 6, 1 );
PLIB_OSC_PBOutputClockEnable (OSC_ID_0, 6 );
@@ -219,6 +219,7 @@ inline uint32_t SYS_CLK_PeripheralFrequencyGet ( CLK_BUSES_PERIPHERAL peripheral
freq = SYS_CLK_BUS_PERIPHERAL_4;
break;
case CLK_BUS_PERIPHERAL_5:
+ freq = SYS_CLK_BUS_PERIPHERAL_5;
break;
case CLK_BUS_PERIPHERAL_7:
freq = SYS_CLK_BUS_PERIPHERAL_7;
diff --git a/firmware/src/system_config/default/system_config.h b/firmware/src/system_config/default/system_config.h
index a8faed8..2f506cc 100644
--- a/firmware/src/system_config/default/system_config.h
+++ b/firmware/src/system_config/default/system_config.h
@@ -85,14 +85,18 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define SYS_CLK_BUS_PERIPHERAL_1 40000000ul
#define SYS_CLK_BUS_PERIPHERAL_3 40000000ul
#define SYS_CLK_BUS_PERIPHERAL_4 40000000ul
+#define SYS_CLK_BUS_PERIPHERAL_5 80000000ul
#define SYS_CLK_BUS_PERIPHERAL_7 80000000ul
#define SYS_CLK_CONFIG_PRIMARY_XTAL 24000000ul
#define SYS_CLK_CONFIG_SECONDARY_XTAL 32768ul
+/*** Interrupt System Service Configuration ***/
+#define SYS_INT true
+
/*** Ports System Service Configuration ***/
-#define SYS_PORT_B_ANSEL 0x0
-#define SYS_PORT_B_TRIS 0x0
+#define SYS_PORT_B_ANSEL 0x7020
+#define SYS_PORT_B_TRIS 0x7020
#define SYS_PORT_B_LAT 0x0
#define SYS_PORT_B_ODC 0x0
#define SYS_PORT_B_CNPU 0x0
@@ -137,6 +141,15 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define SYS_PORT_G_CNPU 0x0
#define SYS_PORT_G_CNPD 0x0
#define SYS_PORT_G_CNEN 0x0
+/*** Timer System Service Configuration ***/
+#define SYS_TMR_POWER_STATE SYS_MODULE_POWER_RUN_FULL
+#define SYS_TMR_DRIVER_INDEX DRV_TMR_INDEX_0
+#define SYS_TMR_MAX_CLIENT_OBJECTS 5
+#define SYS_TMR_FREQUENCY 1000
+#define SYS_TMR_FREQUENCY_TOLERANCE 10
+#define SYS_TMR_UNIT_RESOLUTION 10000
+#define SYS_TMR_CLIENT_TOLERANCE 10
+#define SYS_TMR_INTERRUPT_NOTIFICATION false
// *****************************************************************************
@@ -145,13 +158,113 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
// *****************************************************************************
// *****************************************************************************
-
+/*** Timer Driver Configuration ***/
+#define DRV_TMR_INSTANCES_NUMBER 1
+#define DRV_TMR_CLIENTS_NUMBER 1
+#define DRV_TMR_INTERRUPT_MODE true
+
+/*** Timer Driver 0 Configuration ***/
+#define DRV_TMR_PERIPHERAL_ID_IDX0 TMR_ID_1
+#define DRV_TMR_INTERRUPT_SOURCE_IDX0 INT_SOURCE_TIMER_1
+#define DRV_TMR_INTERRUPT_VECTOR_IDX0 INT_VECTOR_T1
+#define DRV_TMR_ISR_VECTOR_IDX0 _TIMER_1_VECTOR
+#define DRV_TMR_INTERRUPT_PRIORITY_IDX0 INT_PRIORITY_LEVEL1
+#define DRV_TMR_INTERRUPT_SUB_PRIORITY_IDX0 INT_SUBPRIORITY_LEVEL0
+#define DRV_TMR_CLOCK_SOURCE_IDX0 DRV_TMR_CLKSOURCE_INTERNAL
+#define DRV_TMR_PRESCALE_IDX0 TMR_PRESCALE_VALUE_256
+#define DRV_TMR_OPERATION_MODE_IDX0 DRV_TMR_OPERATION_MODE_16_BIT
+#define DRV_TMR_ASYNC_WRITE_ENABLE_IDX0 false
+#define DRV_TMR_POWER_STATE_IDX0 SYS_MODULE_POWER_RUN_FULL
+
+
+
// *****************************************************************************
// *****************************************************************************
// Section: Middleware & Other Library Configuration
// *****************************************************************************
// *****************************************************************************
+/*** USB Driver Configuration ***/
+
+
+/* Disable Device Support */
+#define DRV_USBHS_DEVICE_SUPPORT false
+
+/* Enables Device Support */
+#define DRV_USBHS_HOST_SUPPORT true
+
+/* Maximum USB driver instances */
+#define DRV_USBHS_INSTANCES_NUMBER 1
+
+
+/* Interrupt mode enabled */
+#define DRV_USBHS_INTERRUPT_MODE true
+
+
+/* Number of Endpoints used */
+#define DRV_USBHS_ENDPOINTS_NUMBER 1
+
+
+
+
+
+
+
+#define DRV_USBHS_HOST_NAK_LIMIT 2000
+/* Provides Host pipes number */
+#define DRV_USBHS_HOST_PIPES_NUMBER 10
+#define DRV_USBHS_HOST_ATTACH_DEBOUNCE_DURATION 500
+#define DRV_USBHS_HOST_RESET_DURATION 100
+// *****************************************************************************
+// *****************************************************************************
+// Section: USB Device Layer Configuration
+// *****************************************************************************
+// *****************************************************************************
+/* Provides Host pipes number */
+#define USB_HOST_PIPES_NUMBER 10
+/* NAK Limit for Control transfer data stage and Status Stage */
+#define DRV_USB_HOST_NAK_LIMIT 200
+
+// *****************************************************************************
+// *****************************************************************************
+// Section: USB Host Layer Configuration
+// *****************************************************************************
+// **************************************************************************
+
+/* Total number of devices to be supported */
+#define USB_HOST_DEVICES_NUMBER 1
+
+/* Target peripheral list entries */
+#define USB_HOST_TPL_ENTRIES 1
+
+/* Maximum number of configurations supported per device */
+#define USB_HOST_DEVICE_INTERFACES_NUMBER 5
+
+#define USB_HOST_CONTROLLERS_NUMBER 1
+
+#define USB_HOST_TRANSFERS_NUMBER 10
+
+/* Number of Host Layer Clients */
+#define USB_HOST_CLIENTS_NUMBER 1
+
+
+/* Number of HID Client driver instances in the application */
+#define USB_HOST_HID_INSTANCES_NUMBER 1
+
+/* Maximum number of INTERRUPT IN endpoints supported per HID interface */
+#define USB_HOST_HID_INTERRUPT_IN_ENDPOINTS_NUMBER 1
+
+/* Number of total usage driver instances registered with HID client driver */
+#define USB_HOST_HID_USAGE_DRIVER_SUPPORT_NUMBER 1
+
+/* Maximum number PUSH items that can be saved in the Global item queue per field
+ * per HID interface */
+#define USB_HID_GLOBAL_PUSH_POP_STACK_SIZE 1
+
+
+
+
+
diff --git a/firmware/src/system_config/default/system_definitions.h b/firmware/src/system_config/default/system_definitions.h
index 5bc5468..5a20414 100644
--- a/firmware/src/system_config/default/system_definitions.h
+++ b/firmware/src/system_config/default/system_definitions.h
@@ -55,9 +55,18 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#include "system/clk/sys_clk.h"
#include "system/clk/sys_clk_static.h"
#include "system/devcon/sys_devcon.h"
+#include "system/int/sys_int.h"
+#include "system/tmr/sys_tmr.h"
+#include "driver/tmr/drv_tmr.h"
#include "system/ports/sys_ports.h"
+#include "driver/usb/usbhs/drv_usbhs.h"
+#include "usb/usb_host.h"
+#include "usb/usb_host_hub.h"
+#include "usb/usb_host_hub_interface.h"
+#include "usb/usb_host_hid.h"
+#include "usb/usb_host_hid_keyboard.h"
#include "app.h"
@@ -93,6 +102,13 @@ extern "C" {
typedef struct
{
SYS_MODULE_OBJ sysDevcon;
+ SYS_MODULE_OBJ sysTmr;
+ SYS_MODULE_OBJ drvTmr0;
+ SYS_MODULE_OBJ drvUSBObject;
+
+
+ SYS_MODULE_OBJ usbHostObject0;
+
} SYSTEM_OBJECTS;
@@ -106,6 +122,7 @@ typedef struct
extern SYSTEM_OBJECTS sysObj;
+
//DOM-IGNORE-BEGIN
#ifdef __cplusplus
}
diff --git a/firmware/src/system_config/default/system_init.c b/firmware/src/system_config/default/system_init.c
index 9c69c4e..7a25752 100644
--- a/firmware/src/system_config/default/system_init.c
+++ b/firmware/src/system_config/default/system_init.c
@@ -95,7 +95,7 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#pragma config FPLLICLK = PLL_FRC
#pragma config FPLLMULT = MUL_80
#pragma config FPLLODIV = DIV_8
-#pragma config UPLLFSEL = FREQ_12MHZ
+#pragma config UPLLFSEL = FREQ_24MHZ
#pragma config UPLLEN = OFF
/*** DEVCFG3 ***/
@@ -121,6 +121,96 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
// *****************************************************************************
// *****************************************************************************
+//<editor-fold defaultstate="collapsed" desc="USB Stack Initialization Data">
+
+// </editor-fold>
+
+//<editor-fold defaultstate="collapsed" desc="USB Host Initialization Data">
+
+
+
+/****************************************************
+ * Endpoint Table needed by the controller driver .
+ ****************************************************/
+
+
+
+DRV_USBHS_INIT drvUSBHSInit =
+{
+ .moduleInit = {SYS_MODULE_POWER_RUN_FULL},
+ .interruptSource = INT_SOURCE_USB_1,
+ .interruptSourceUSBDma = INT_SOURCE_USB_1_DMA,
+ .operationMode = DRV_USBHS_OPMODE_HOST,
+ .operationSpeed = USB_SPEED_HIGH,
+ .portIndication = NULL,
+ .portPowerEnable = BSP_USBVBUSPowerEnable,
+ .portOverCurrentDetect = BSP_USBVBUSSwitchOverCurrentDetect,
+ .rootHubAvailableCurrent = 500,
+ .stopInIdle = false,
+ .suspendInSleep = false,
+ .usbID = USBHS_ID_0
+
+};
+
+
+
+USB_HOST_HID_USAGE_DRIVER_INTERFACE usageDriverInterface =
+{
+ .initialize = NULL,
+ .deinitialize = NULL,
+ .usageDriverEventHandler = _USB_HOST_HID_KEYBOARD_EventHandler,
+ .usageDriverTask = _USB_HOST_HID_KEYBOARD_Task
+};
+
+USB_HOST_HID_USAGE_DRIVER_TABLE_ENTRY usageDriverTableEntry[1] =
+{
+ {
+ .usage = USB_HID_GENERIC_DESKTOP_KEYBOARD,
+ .initializeData = NULL,
+ .interface = &usageDriverInterface
+ }
+};
+
+
+USB_HOST_HID_INIT hidInitData =
+{
+ .nUsageDriver = 1,
+ .usageDriverTable = usageDriverTableEntry
+};
+const USB_HOST_TPL_ENTRY USBTPList[ 1 ] =
+{
+
+
+
+ TPL_INTERFACE_CLASS_SUBCLASS_PROTOCOL(0x03, 0x01, 0x01, &hidInitData, USB_HOST_HID_INTERFACE) ,
+
+
+
+
+};
+
+
+const USB_HOST_HCD hcdTable =
+{
+ .drvIndex = DRV_USBHS_INDEX_0,
+ .hcdInterface = DRV_USBHS_HOST_INTERFACE
+};
+
+const USB_HOST_INIT usbHostInitData =
+{
+ .nTPLEntries = 1 ,
+ .tplList = (USB_HOST_TPL_ENTRY *)USBTPList,
+ .hostControllerDrivers = (USB_HOST_HCD *)&hcdTable
+
+};
+
+
+
+
+
+
+// </editor-fold>
+
// *****************************************************************************
@@ -129,6 +219,33 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
// *****************************************************************************
// *****************************************************************************
+//<editor-fold defaultstate="collapsed" desc="DRV_Timer Initialization Data">
+
+/*** TMR Driver Initialization Data ***/
+
+const DRV_TMR_INIT drvTmr0InitData =
+{
+ .moduleInit.sys.powerState = DRV_TMR_POWER_STATE_IDX0,
+ .tmrId = DRV_TMR_PERIPHERAL_ID_IDX0,
+ .clockSource = DRV_TMR_CLOCK_SOURCE_IDX0,
+ .prescale = DRV_TMR_PRESCALE_IDX0,
+ .mode = DRV_TMR_OPERATION_MODE_IDX0,
+ .interruptSource = DRV_TMR_INTERRUPT_SOURCE_IDX0,
+ .asyncWriteEnable = false,
+};
+// </editor-fold>
+//<editor-fold defaultstate="collapsed" desc="SYS_TMR Initialization Data">
+/*** TMR Service Initialization Data ***/
+const SYS_TMR_INIT sysTmrInitData =
+{
+ .moduleInit = {SYS_MODULE_POWER_RUN_FULL},
+ .drvIndex = DRV_TMR_INDEX_0,
+ .tmrFreq = 1000,
+};
+
+// </editor-fold>
+//<editor-fold defaultstate="collapsed" desc="DRV_USB Initialization Data">
+// </editor-fold>
// *****************************************************************************
// *****************************************************************************
@@ -195,10 +312,38 @@ void SYS_Initialize ( void* data )
/* Initialize Drivers */
+ sysObj.drvTmr0 = DRV_TMR_Initialize(DRV_TMR_INDEX_0, (SYS_MODULE_INIT *)&drvTmr0InitData);
+
+ SYS_INT_VectorPrioritySet(INT_VECTOR_T1, INT_PRIORITY_LEVEL1);
+ SYS_INT_VectorSubprioritySet(INT_VECTOR_T1, INT_SUBPRIORITY_LEVEL0);
+
+
+
/* Initialize System Services */
+ SYS_INT_Initialize();
+
+ /*** TMR Service Initialization Code ***/
+ sysObj.sysTmr = SYS_TMR_Initialize(SYS_TMR_INDEX_0, (const SYS_MODULE_INIT * const)&sysTmrInitData);
/* Initialize Middleware */
+
+ sysObj.usbHostObject0 = USB_HOST_Initialize ((SYS_MODULE_INIT *)& usbHostInitData );
+ sysObj.drvUSBObject = DRV_USBHS_Initialize (DRV_USBHS_INDEX_0, (SYS_MODULE_INIT *) &drvUSBHSInit);
+
+ SYS_INT_VectorPrioritySet(INT_VECTOR_USB1, INT_PRIORITY_LEVEL4);
+ SYS_INT_VectorSubprioritySet(INT_VECTOR_USB1, INT_SUBPRIORITY_LEVEL0);
+
+ /* Set the priority of the USB DMA Interrupt */
+ SYS_INT_VectorPrioritySet(INT_VECTOR_USB1_DMA, INT_PRIORITY_LEVEL4);
+ /* Set Sub-priority of the USB DMA Interrupt */
+ SYS_INT_VectorSubprioritySet(INT_VECTOR_USB1_DMA, INT_SUBPRIORITY_LEVEL0);
+
+
+
+ /* Enable Global Interrupts */
+ SYS_INT_Enable();
+
/* Initialize the Application */
APP_Initialize();
}
diff --git a/firmware/src/system_config/default/system_interrupt.c b/firmware/src/system_config/default/system_interrupt.c
index a676c11..0d0c030 100644
--- a/firmware/src/system_config/default/system_interrupt.c
+++ b/firmware/src/system_config/default/system_interrupt.c
@@ -70,6 +70,23 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
// Section: System Interrupt Vector Functions
// *****************************************************************************
// *****************************************************************************
+void __ISR(_TIMER_1_VECTOR, ipl1AUTO) _IntHandlerDrvTmrInstance0(void)
+{
+
+ DRV_TMR_Tasks_ISR(sysObj.drvTmr0);
+
+}
+ void __ISR( _USB_VECTOR , IPL4AUTO)_IntHandler_USB_stub ( void )
+{
+ DRV_USBHS_Tasks_ISR(sysObj.drvUSBObject);
+}
+void __ISR ( _USB_DMA_VECTOR, IPL4AUTO) _IntHandlerUSBInstance0_USBDMA ( void )
+{
+ DRV_USBHS_Tasks_ISR_USBDMA(sysObj.drvUSBObject);
+
+}
+
+
/*******************************************************************************
End of File
diff --git a/firmware/src/system_config/default/system_tasks.c b/firmware/src/system_config/default/system_tasks.c
index 14c834d..1ae8a24 100644
--- a/firmware/src/system_config/default/system_tasks.c
+++ b/firmware/src/system_config/default/system_tasks.c
@@ -74,11 +74,23 @@ void SYS_Tasks ( void )
{
/* Maintain system services */
SYS_DEVCON_Tasks(sysObj.sysDevcon);
+ SYS_TMR_Tasks(sysObj.sysTmr);
/* Maintain Device Drivers */
+ DRV_TMR_Tasks(sysObj.drvTmr0);
/* Maintain Middleware & Other Libraries */
+
+ /* USBHS Driver Task Routine */
+ DRV_USBHS_Tasks(sysObj.drvUSBObject);
+
+
+ /* USB Host layer task routine.*/
+ USB_HOST_Tasks(sysObj.usbHostObject0);
+
+
+
/* Maintain the application's state machine. */
APP_Tasks();