EDF - OnePIC MCU  v1.1.0
source/32bit/include/HardwareProfile.h
00001 /********************************************************************
00002 * FileName:     HardwareProfile.h
00003 * Dependencies: See INCLUDES section
00004 * Processor:    PIC32MXF795F512
00005 * Hardware:
00006 * Complier:     Microchip C32
00007 * Company:       Microchip Technology, Inc.
00008 *
00009 * Software License Agreement
00010 *
00011 * Copyright © 2011 Microchip Technology Inc.
00012 * Microchip licenses this software to you solely for use with Microchip
00013 * products, according to the terms of the accompanying click-wrap software
00014 * license. Microchip and its licensors retain all right, title and interest in
00015 * and to the software.  All rights reserved. This software and any accompanying
00016 * information is for suggestion only. It shall not be deemed to modify
00017 * Microchip’s standard warranty for its products.  It is your responsibility to
00018 * ensure that this software meets your requirements.
00019 *
00020 * SOFTWARE IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
00021 * IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
00022 * NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL
00023 * MICROCHIP OR ITS LICENSORS BE LIABLE FOR ANY DIRECT OR INDIRECT DAMAGES OR
00024 * EXPENSES INCLUDING BUT NOT LIMITED TO INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
00025 * OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF
00026 * SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, OR ANY CLAIMS BY THIRD PARTIES
00027 * (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
00028 *
00029 * The aggregate and cumulative liability of Microchip and its licensors for
00030 * damages related to the use of the software will in no event exceed $1000 or
00031 * the amount you paid Microchip for the software, whichever is greater.
00032 *
00033 * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
00034 * TERMS AND THE TERMS OF THE ACCOMPANYING CLICK-WRAP SOFTWARE LICENSE.
00035 *
00036 *
00037 ********************************************************************
00038  File Description:
00039 
00040  Change History:
00041   Rev   Date         Description
00042   1.0   11/19/2004   Initial release
00043   2.1   02/26/2007   Updated for simplicity and to use common
00044                      coding style
00045   2.2    04/01/08    cleaned up hardware profile selection for PKS24
00046 --------------------------------------------------------------------
00047 NMS/NK   10-Feb-2009 Folder/Files restructuring
00048 NK       24-Apr-2009 Porting for 18F46J50 Eval Board
00049 MC       22-Ian-2010 Porting for PIC32MX795F512H
00050 MWM      38 Mar 2011 Added defines for all buttons/sliders so that
00051                      this file can be used for all hardware configs
00052 MWM      12 Sep 2011 Added board defines for multiple board support
00053 ********************************************************************/
00054 
00055 #ifndef __HARDWARE_PROFILE_H
00056 #define __HARDWARE_PROFILE_H
00057 
00058 #include "GenericTypeDefs.h"
00059 #include "mTouchCapPhy.h"
00060 
00061 //==========================================================
00062 //--- HARDWARE PROFILE:
00063 //==========================================================
00064 //#define PIC24HJ128_CAP_TOUCH_EVAL_BOARD
00065 //#define DSPIC33FJ128_CAP_TOUCH_EVAL_BOARD
00066 //#define PIC32MC764F128_EXPLORER_16_BOARD
00067 //#define PIC32MX795_CAP_TOUCH_EVAL_BOARD
00068 #  define PIC32MX795_ONE_PIC_MICRO_DEMO_BOARD
00069 //#define PIC32MX220_CAP_TOUCH_EVAL_BOARD
00070 //#define PIC32MX220_STARTER_KIT_BOARD
00071 
00072 #if   defined( PIC24HJ128_CAP_TOUCH_EVAL_BOARD )
00073 
00074 
00075 #elif defined( DSPIC33FJ128_CAP_TOUCH_EVAL_BOARD )
00076 
00077 
00078 #elif defined( PIC32MC764F128_EXPLORER_16_BOARD )
00079 
00080 
00081 #elif defined( PIC32MX795_CAP_TOUCH_EVAL_BOARD )
00082     // Clocks
00083     #define GetSystemClock()     80000000UL
00084     #define SYS_FREQ            (80000000UL)
00085     #define GetPeripheralClock()        (GetSystemClock())
00086     #define GetInstructionClock()       (GetSystemClock())
00087 
00088     // ADC channels available
00089     #define MAX_ADC_CHANNELS 16
00090 
00091     // Key to ADC Channel assignment
00092     #define DIRECTKEY1_CHANNEL  CHANNEL_AN8
00093     #define DIRECTKEY2_CHANNEL  CHANNEL_AN9
00094     #define DIRECTKEY3_CHANNEL  CHANNEL_AN10
00095     #define DIRECTKEY4_CHANNEL  CHANNEL_AN11
00096     #define DIRECTKEY5_CHANNEL  CHANNEL_AN12
00097     #define DIRECTKEY6_CHANNEL  CHANNEL_AN13
00098     #define DIRECTKEY7_CHANNEL  CHANNEL_AN14
00099     #define DIRECTKEY8_CHANNEL  CHANNEL_AN15
00100 
00101     // GPIO initialization values
00102     #define INIT_TRISB_VALUE 0x0000
00103     #define INIT_TRISC_VALUE 0x0000
00104     #define INIT_TRISD_VALUE 0x0000
00105     #define INIT_TRISE_VALUE 0x0000
00106     #define INIT_TRISF_VALUE 0x0000
00107     #define INIT_TRISG_VALUE 0x0000
00108 
00109     #define INIT_PORTB_VALUE 0x0000
00110     #define INIT_PORTC_VALUE 0x0000
00111     #define INIT_PORTD_VALUE 0x0000
00112     #define INIT_PORTE_VALUE 0x0000
00113     #define INIT_PORTF_VALUE 0x0000 // Not used
00114     #define INIT_PORTG_VALUE 0x0000
00115 
00116 #elif defined( PIC32MX795_ONE_PIC_MICRO_DEMO_BOARD )
00117     // Clocks
00118     #define GetSystemClock()     20000000UL
00119     #define SYS_FREQ            (20000000UL)
00120     #define GetPeripheralClock()        (GetSystemClock())
00121     #define GetInstructionClock()       (GetSystemClock())
00122 
00123     // ADC channels available
00124     #define MAX_ADC_CHANNELS 16
00125 
00126     // Key to ADC Channel assignment
00127     #define DIRECTKEY1_CHANNEL  CHANNEL_AN0
00128     #define DIRECTKEY2_CHANNEL  CHANNEL_AN1
00129     #define DIRECTKEY3_CHANNEL  CHANNEL_AN2
00130     #define DIRECTKEY4_CHANNEL  CHANNEL_AN3
00131     #define DIRECTKEY5_CHANNEL  CHANNEL_AN4
00132 
00133     // GPIO initialization values
00134     #define INIT_TRISB_VALUE 0x0000
00135     #define INIT_TRISC_VALUE 0x0000
00136     #define INIT_TRISD_VALUE 0x0000
00137     #define INIT_TRISE_VALUE 0x0000
00138     #define INIT_TRISF_VALUE 0x0000
00139     #define INIT_TRISG_VALUE 0x0000
00140 
00141     #define INIT_PORTB_VALUE 0x0000
00142     #define INIT_PORTC_VALUE 0x0000
00143     #define INIT_PORTD_VALUE 0x0000
00144     #define INIT_PORTE_VALUE 0x0000
00145     #define INIT_PORTF_VALUE 0x0000 // Not used
00146     #define INIT_PORTG_VALUE 0x0000
00147 
00148 #elif defined( PIC32MX220_CAP_TOUCH_EVAL_BOARD )
00149     // Clocks
00150     #define GetSystemClock()       40000000UL
00151     #define SYS_FREQ              (40000000UL)
00152     #define GetPeripheralClock()  (GetSystemClock())
00153     #define GetInstructionClock() (GetSystemClock())
00154 
00155     // ADC channels available
00156     #define MAX_ADC_CHANNELS 13
00157 
00158     // Key to ADC channel assignment
00159     #define DIRECTKEY1_CHANNEL   CHANNEL_AN0
00160     #define DIRECTKEY2_CHANNEL   CHANNEL_AN1
00161     #define DIRECTKEY3_CHANNEL   CHANNEL_AN4
00162     #define DIRECTKEY4_CHANNEL   CHANNEL_AN5
00163     #define DIRECTKEY5_CHANNEL   CHANNEL_AN6
00164     #define DIRECTKEY6_CHANNEL   CHANNEL_AN7
00165     #define DIRECTKEY7_CHANNEL   CHANNEL_AN8
00166     #define DIRECTKEY8_CHANNEL   CHANNEL_AN9
00167 
00168     // LED configuration on board
00169     //Rows: pin high to light LED
00170     #define PORTB_ROW_NIL (  0 )
00171     #define PORTC_ROW_NIL (  0 )
00172 
00173     #define PORTB_ROW_1   (1<<9)
00174     #define PORTC_ROW_1   (  0 )
00175 
00176     #define PORTB_ROW_2   (  0 )
00177     #define PORTC_ROW_2         (1<<6)
00178 
00179     #define PORTB_ROW_3   (  0 )
00180     #define PORTC_ROW_3                (1<<7)
00181 
00182     #define PORTB_ROW_4   (  0 )
00183     #define PORTC_ROW_4                       (1<<8)
00184 
00185     #define PORTB_ROW_ALL (1<<9)
00186     #define PORTC_ROW_ALL       (1<<6)|(1<<7)|(1<<8)
00187 
00188     //Columns: ground pin to light LED.
00189     #define PORTB_COL_NIL       (1<<5|1<<7|1<<8)
00190     #define PORTC_COL_NIL (1<<9)
00191 
00192     #define PORTB_COL_1         (1<<5|1<<7|1<<8)
00193     #define PORTC_COL_1   (0<<9)
00194 
00195     #define PORTB_COL_2         (1<<5|1<<7|0<<8)
00196     #define PORTC_COL_2   (1<<9)
00197 
00198     #define PORTB_COL_3         (1<<5|0<<7|1<<8)
00199     #define PORTC_COL_3   (1<<9)
00200 
00201     #define PORTB_COL_4         (0<<5|1<<7|1<<8)
00202     #define PORTC_COL_4   (1<<9)
00203 
00204     #define PORTB_COL_ALL       (0<<5|0<<7|0<<8)
00205     #define PORTC_COL_ALL (0<<9)
00206 
00207     // GPIO initialization values
00208     #define INIT_TRISA_VALUE  (0xFFFF)
00209     #define INIT_TRISB_VALUE  (0xFFFF & ~( (1<<5)|(1<<7)|(1<<8)|(1<<9) ) )
00210     #define INIT_TRISC_VALUE  (0xFFFF & ~( (1<<6)|(1<<7)|(1<<8)|(1<<9) ) )
00211 
00212     #define INIT_PORTA_VALUE  0x0000
00213     #define INIT_PORTB_VALUE  PORTB_ROW_NIL | PORTB_COL_NIL
00214     #define INIT_PORTC_VALUE  PORTC_ROW_NIL | PORTC_COL_NIL
00215 
00216 #elif defined( PIC32MX220_STARTER_KIT_BOARD )
00217     // Clocks
00218     #define GetSystemClock()       40000000UL
00219     #define SYS_FREQ              (40000000UL)
00220     #define GetPeripheralClock()  (GetSystemClock())
00221     #define GetInstructionClock() (GetSystemClock())
00222 
00223     // ADC channels available
00224     #define MAX_ADC_CHANNELS 13
00225 
00226     // Key to ADC channel assignment
00227     #define DIRECTKEY1_CHANNEL    CHANNEL_AN6
00228     #define DIRECTKEY2_CHANNEL    CHANNEL_AN7
00229     #define DIRECTKEY3_CHANNEL    CHANNEL_AN8
00230     #define DIRECTKEY4_CHANNEL    CHANNEL_AN12
00231 
00232     // GPIO Initialization values
00233     #define     INIT_TRISA_VALUE        (1<<7) | (1<<9) //Switch 1 on A9, Switch 3 on RA7
00234     #define     INIT_TRISB_VALUE        1<<4 //Switch 2 on RB4
00235     //#define   INIT_TRISB_VALUE        0x0000 //Switch 2 disabled for UART
00236     #define     INIT_TRISC_VALUE        0x0000
00237 
00238     #define     INIT_PORTA_VALUE        0x0000
00239     #define     INIT_PORTB_VALUE        0x0000
00240     #define     INIT_PORTC_VALUE        0x0000
00241 
00242 #endif
00243 
00244 #endif  // __HARDWARE_PROFILE_H