diff options
Diffstat (limited to 'firmware/src/system_config/default')
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();
|