/********************************************************************* * * Microchip USB C18 Firmware Version 1.2 * ********************************************************************* * FileName: io_cfg.h * Dependencies: See INCLUDES section below * Processor: PIC18 * Compiler: C18 3.11+ * Company: Microchip Technology, Inc. * * Software License Agreement * * The software supplied herewith by Microchip Technology Incorporated * (the 鼎ompany・ for its PICmicroョ Microcontroller is intended and * supplied to you, the Company痴 customer, for use solely and * exclusively on Microchip PICmicro Microcontroller products. The * software is owned by the Company and/or its supplier, and is * protected under applicable copyright laws. All rights are reserved. * Any use in violation of the foregoing restrictions may subject the * user to criminal sanctions under applicable laws, as well as to * civil liability for the breach of the terms and conditions of this * license. * * THIS SOFTWARE IS PROVIDED IN AN 鄭S IS・CONDITION. NO WARRANTIES, * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * * Author Date Comment *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Rawin Rojvanit 11/19/04 Original. * Rawin Rojvanit 05/14/07 Added pin mapping for PIC18F87J50 * FS USB Plug In Module board. ********************************************************************/ #ifndef IO_CFG_H #define IO_CFG_H /** I N C L U D E S *************************************************/ #include "autofiles\usbcfg.h" /** T R I S *********************************************************/ #define INPUT_PIN 1 #define OUTPUT_PIN 0 #if defined(PIC18F4550_PICDEM_FS_USB) /** U S B ***********************************************************/ #define tris_usb_bus_sense TRISAbits.TRISA1 // Input #if defined(USE_USB_BUS_SENSE_IO) #define usb_bus_sense PORTAbits.RA1 #else #define usb_bus_sense 1 #endif #define tris_self_power TRISAbits.TRISA2 // Input #if defined(USE_SELF_POWER_SENSE_IO) #define self_power PORTAbits.RA2 #else #define self_power 1 // Used by USBStdGetStatusHandler() in usb9.c #endif // External Transceiver Interface #define tris_usb_vpo TRISBbits.TRISB3 // Output #define tris_usb_vmo TRISBbits.TRISB2 // Output #define tris_usb_rcv TRISAbits.TRISA4 // Input #define tris_usb_vp TRISCbits.TRISC5 // Input #define tris_usb_vm TRISCbits.TRISC4 // Input #define tris_usb_oe TRISCbits.TRISC1 // Output #define tris_usb_suspnd TRISAbits.TRISA3 // Output /** L E D ***********************************************************/ //#define mInitAllLEDs() LATD &= 0xF0; TRISD &= 0xF0; #define mInitAllLEDs() LATC &= 0xF0; TRISC &= 0xF0; // 18F2550用に修正 //#define mLED_1 LATDbits.LATD0 // PIC 18F4550用 //#define mLED_2 LATDbits.LATD1 //#define mLED_3 LATDbits.LATD2 //#define mLED_4 LATDbits.LATD3 #define mLED_1 LATCbits.LATC0 // 18F2550用に修正 #define mLED_2 LATCbits.LATC1 #define mLED_3 LATCbits.LATC2 //#define mLED_4 LATCbits.LATC3 // 18F2550用はLATC3は無い。 #define mLED_1_On() mLED_1 = 1; #define mLED_2_On() mLED_2 = 1; #define mLED_3_On() mLED_3 = 1; //#define mLED_4_On() mLED_4 = 1; // 18F2550用はLED4は使わない。 #define mLED_1_Off() mLED_1 = 0; #define mLED_2_Off() mLED_2 = 0; #define mLED_3_Off() mLED_3 = 0; //#define mLED_4_Off() mLED_4 = 0; // 18F2550用はLED4は使わない。 #define mLED_1_Toggle() mLED_1 = !mLED_1; #define mLED_2_Toggle() mLED_2 = !mLED_2; #define mLED_3_Toggle() mLED_3 = !mLED_3; //#define mLED_4_Toggle() mLED_4 = !mLED_4; // 18F2550用はLED4は使わない。 /** S W I T C H *****************************************************/ #define mInitAllSwitches() TRISBbits.TRISB4=1;TRISBbits.TRISB5=1; #define mInitSwitch2() TRISBbits.TRISB4=1; #define mInitSwitch3() TRISBbits.TRISB5=1; #define sw2 PORTBbits.RB4 #define sw3 PORTBbits.RB5 /** P O T ***********************************************************/ #define mInitPOT() TRISAbits.TRISA0=1;ADCON0=0x01;ADCON2=0x3C; /** S P I : Chip Select Lines ***************************************/ #define tris_cs_temp_sensor TRISBbits.TRISB2 // Output #define cs_temp_sensor LATBbits.LATB2 #define tris_cs_sdmmc TRISBbits.TRISB3 // Output #define cs_sdmmc LATBbits.LATB3 /** S D M M C *******************************************************/ #define TRIS_CARD_DETECT TRISBbits.TRISB4 // Input #define CARD_DETECT PORTBbits.RB4 #define TRIS_WRITE_DETECT TRISAbits.TRISA4 // Input #define WRITE_DETECT PORTAbits.RA4 /********************************************************************/ /********************************************************************/ /********************************************************************/ #elif defined(PIC18F87J50_FS_USB_PIM) /** U S B ***********************************************************/ // Bus sense pin is RB5 on PIC18F87J50 FS USB Plug-In Module. // Must put jumper JP1 in R-U position to use bus sense feature. #define tris_usb_bus_sense TRISBbits.TRISB5 // Input #if defined(USE_USB_BUS_SENSE_IO) #define usb_bus_sense PORTBbits.RB5 #else #define usb_bus_sense 1 #endif #define self_power 0 /** L E D ***********************************************************/ #define mInitAllLEDs() LATE &= 0xFC; TRISE &= 0xFC; #define mLED_1 LATEbits.LATE1 #define mLED_2 LATEbits.LATE0 #define mLED_1_On() mLED_1 = 1; #define mLED_2_On() mLED_2 = 1; #define mLED_1_Off() mLED_1 = 0; #define mLED_2_Off() mLED_2 = 0; #define mLED_1_Toggle() mLED_1 = !mLED_1; #define mLED_2_Toggle() mLED_2 = !mLED_2; /** S W I T C H *****************************************************/ #define mInitAllSwitches() TRISBbits.TRISB4=1; #define mInitSwitch2() TRISBbits.TRISB4=1; #define sw2 PORTBbits.RB4 /********************************************************************/ /********************************************************************/ /********************************************************************/ //Uncomment below if using the YOUR_BOARD hardware platform #elif defined(YOUR_BOARD) // 2011/12/6 コメントアウトを外す //Add your hardware specific I/O pin mapping here // 2011/12/6 以下に #if defined(PIC18F4550_PICDEM_FS_USB) の記述をコピー /** U S B ***********************************************************/ #define tris_usb_bus_sense TRISAbits.TRISA1 // Input #if defined(USE_USB_BUS_SENSE_IO) #define usb_bus_sense PORTAbits.RA1 #else #define usb_bus_sense 1 #endif #define tris_self_power TRISAbits.TRISA2 // Input #if defined(USE_SELF_POWER_SENSE_IO) #define self_power PORTAbits.RA2 #else #define self_power 1 // Used by USBStdGetStatusHandler() in usb9.c #endif // External Transceiver Interface #define tris_usb_vpo TRISBbits.TRISB3 // Output #define tris_usb_vmo TRISBbits.TRISB2 // Output #define tris_usb_rcv TRISAbits.TRISA4 // Input #define tris_usb_vp TRISCbits.TRISC5 // Input #define tris_usb_vm TRISCbits.TRISC4 // Input #define tris_usb_oe TRISCbits.TRISC1 // Output #define tris_usb_suspnd TRISAbits.TRISA3 // Output /** L E D ***********************************************************/ //#define mInitAllLEDs() LATD &= 0xF0; TRISD &= 0xF0; #define mInitAllLEDs() LATC &= 0xF0; TRISC &= 0xF0; // 18F2550用に修正 //#define mLED_1 LATDbits.LATD0 // PIC 18F4550用 //#define mLED_2 LATDbits.LATD1 //#define mLED_3 LATDbits.LATD2 //#define mLED_4 LATDbits.LATD3 #define mLED_1 LATCbits.LATC0 // 18F2550用に修正 #define mLED_2 LATCbits.LATC1 #define mLED_3 LATCbits.LATC2 //#define mLED_4 LATCbits.LATC3 // 18F2550用はLATC3は無い。 #define mLED_1_On() mLED_1 = 1; #define mLED_2_On() mLED_2 = 1; #define mLED_3_On() mLED_3 = 1; //#define mLED_4_On() mLED_4 = 1; // 18F2550用はLED4は使わない。 #define mLED_1_Off() mLED_1 = 0; #define mLED_2_Off() mLED_2 = 0; #define mLED_3_Off() mLED_3 = 0; //#define mLED_4_Off() mLED_4 = 0; #define mLED_1_Toggle() mLED_1 = !mLED_1; #define mLED_2_Toggle() mLED_2 = !mLED_2; #define mLED_3_Toggle() mLED_3 = !mLED_3; //#define mLED_4_Toggle() mLED_4 = !mLED_4; // 18F2550用はLED4は使わない。 /** S W I T C H *****************************************************/ #define mInitAllSwitches() TRISBbits.TRISB4=1;TRISBbits.TRISB5=1; #define mInitSwitch2() TRISBbits.TRISB4=1; #define mInitSwitch3() TRISBbits.TRISB5=1; #define sw2 PORTBbits.RB4 #define sw3 PORTBbits.RB5 /** P O T ***********************************************************/ #define mInitPOT() TRISAbits.TRISA0=1;ADCON0=0x01;ADCON2=0x3C; /** S P I : Chip Select Lines ***************************************/ #define tris_cs_temp_sensor TRISBbits.TRISB2 // Output #define cs_temp_sensor LATBbits.LATB2 #define tris_cs_sdmmc TRISBbits.TRISB3 // Output #define cs_sdmmc LATBbits.LATB3 /** S D M M C *******************************************************/ #define TRIS_CARD_DETECT TRISBbits.TRISB4 // Input #define CARD_DETECT PORTBbits.RB4 #define TRIS_WRITE_DETECT TRISAbits.TRISA4 // Input #define WRITE_DETECT PORTAbits.RA4 #else #error Not a supported board (yet), add I/O pin mapping in __FILE__, line __LINE__ #endif #endif //IO_CFG_H |