|
- #include "BoardCfg.h"
-
- int InitBoard()
- {
-
- DDPCONbits.JTAGEN = 0;
-
- HEARTBEAT_LED_1_PIN_DIR = PIN_OUTPUT;
- HEARTBEAT_LED_2_PIN_DIR = PIN_OUTPUT;
-
- HEARTBEAT_LED_2_PIN = LED_OFF;
- HEARTBEAT_LED_1_PIN = LED_ON;
-
- // LORA_ACTIVITY_LED_PIN_DIR = PIN_OUTPUT;
- // LORA_ACTIVITY_LED_PIN = LED_OFF;
-
- // GP_DEBUG_1_PIN_DIR = PIN_OUTPUT;
- // GP_DEBUG_1_PIN = 0;
- // GP_DEBUG_2_PIN_DIR = PIN_OUTPUT;
- // GP_DEBUG_2_PIN = 0;
-
-
- SPI_SDI_PIN_DIR = PIN_INPUT;
- SD_SPI_SS_PIN_DIR = PIN_OUTPUT;
- SPI_SDO_PIN_DIR = PIN_OUTPUT;
- SPI_SCK_PIN_DIR = PIN_OUTPUT;
-
-
- //////////////// SPI FLASH //////////////////
-
- FLASH_SS_PIN_DIR = PIN_OUTPUT;
- FLASH_SS_PIN = 1;
-
- /////////////////////////// WIFI ///////////////////
- //Wifi (WINC1500 module)
- WIFI_SPI_SS_PIN_DIR = PIN_OUTPUT;
- WIFI_SPI_SS_PIN = 1;
- WIFI_IRQ_PIN_DIR = PIN_INPUT;
- // WIFI_SPI_CFG_PIN_DIR = PIN_OUTPUT;
- // WIFI_SPI_CFG_PIN = 0;
- WIFI_CHP_EN_PIN_DIR = PIN_OUTPUT;
- WIFI_CHP_EN_PIN = 0;
- WIFI_CHP_RST_PIN_DIR = PIN_OUTPUT;
- WIFI_CHP_RST_PIN = 0;
-
- //Wifi chip IRQ
- IEC0bits.INT0IE = 0;
- IFS0bits.INT0IF = 0;
- INTCONbits.INT0EP = 0; //Falling edge
- IPC0bits.INT0IP = 3;
- IPC0bits.INT0IS = 0;
- IEC0bits.INT0IE = 1;
-
- //Wifi chip SPI
- SPI2CON = 0;
- SPI2CONbits.MSTEN = 1;
- SPI2CONbits.CKE = 1;
- SPI2CONbits.SMP = 0;
- SPI2CONbits.CKP = 0;
- SPI2BRG = SPICalculateBRG(PERIPHERAL_FREQ, 1000000);
- // SPI2BRG = SPICalculateBRG(PERIPHERAL_FREQ, 50000);
- SPI2CONbits.ON = 1;
-
-
-
-
- //ADC Config
-
- AD1PCFG = 0xFFFF; //Sart with I/O pins configured as digital I/O
- AD1PCFGbits.PCFG1 = 0;
- AD1PCFGbits.PCFG2 = 0;
- // TRISBbits.TRISB1 = PIN_INPUT;
- //TRISBbits.TRISB2 = PIN_INPUT;
-
- AD1CON1 = 0;
- AD1CON2 = 0;
- AD1CON3 = 0;
-
- // AD1CHS = 0;
- // AD1CHSbits.CH0SA = 1; //AN1
- // AD1CON3bits.ADCS = 0xF0;
- // AD1CON3bits.SAMC = 0x01;
- // AD1CON1bits.ON = 1;
- // AD1CON1bits.SAMP = 1;
-
- ONBOARD_LED1_PIN_DIR = PIN_OUTPUT;
- ONBOARD_LED1_PIN = LED_OFF;
- ONBOARD_LED2_PIN_DIR = PIN_OUTPUT;
- ONBOARD_LED2_PIN = LED_OFF;
- ONBOARD_LED3_PIN_DIR = PIN_OUTPUT;
- ONBOARD_LED3_PIN = LED_OFF;
- ONBOARD_LED7_PIN_DIR = PIN_OUTPUT;
- ONBOARD_LED7_PIN = LED_OFF;
-
- PUSH_BUTTON_LED1_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED1_PIN = LED_OFF;
- PUSH_BUTTON_LED2_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED2_PIN = LED_OFF;
- PUSH_BUTTON_LED3_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED3_PIN = LED_OFF;
- PUSH_BUTTON_LED4_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED4_PIN = LED_OFF;
- PUSH_BUTTON_LED5_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED5_PIN = LED_OFF;
- PUSH_BUTTON_LED6_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED6_PIN = LED_OFF;
- PUSH_BUTTON_LED7_PIN_DIR = PIN_OUTPUT;
- PUSH_BUTTON_LED7_PIN = LED_OFF;
-
- PUSH_BUTTON_INPUT1_PIN_DIR = PIN_INPUT;
- PUSH_BUTTON_INPUT2_PIN_DIR = PIN_INPUT;
- PUSH_BUTTON_INPUT3_PIN_DIR = PIN_INPUT;
- PUSH_BUTTON_INPUT4_PIN_DIR = PIN_INPUT;
- PUSH_BUTTON_INPUT5_PIN_DIR = PIN_INPUT;
- PUSH_BUTTON_INPUT6_PIN_DIR = PIN_INPUT;
- PUSH_BUTTON_INPUT7_PIN_DIR = PIN_INPUT;
-
-
- VU1_DAC_SYNC_PIN_DIR = PIN_OUTPUT;
- TRISGbits.TRISG2 = PIN_INPUT; //Force high impedance
- VU1_DAC_SYNC_PIN = 1;
- VU1_BACKLIGHT_PIN_DIR = PIN_OUTPUT;
- VU1_BACKLIGHT_PIN = LED_OFF;
- VU1_ANALOG_FEEDBACK_PIN_DIR = PIN_INPUT;
-
- VU2_DAC_SYNC_PIN_DIR = PIN_OUTPUT;
- TRISGbits.TRISG3 = PIN_INPUT; //Force high impedance
- VU2_DAC_SYNC_PIN = 1;
- VU2_BACKLIGHT_PIN_DIR = PIN_OUTPUT;
- VU2_BACKLIGHT_PIN = LED_OFF;
- VU2_ANALOG_FEEDBACK_PIN_DIR = PIN_INPUT;
-
- BUREAU_VOL_POT_CW_PIN_DIR = PIN_INPUT;
- BUREAU_VOL_POT_CCW_PIN_DIR = PIN_INPUT;
-
- BUREAU_VOL_POT_CCW_PIN_DIR = PIN_INPUT;
- BUREAU_VOL_POT_CCW_PIN_DIR = PIN_INPUT;
-
- ////// MISC UNUSED STUFF ///////////
- // IEC0bits.INT1IE = 0;
- // IFS0bits.INT1IF = 0;
- // INTCONbits.INT1EP = 1; //Rising edge
- // IPC1bits.INT1IP = 2;
- // IPC1bits.INT1IS = 1;
- // IEC0bits.INT1IE = 1;
-
-
- // OC3CON = 0;
- // OC3R = 0;
- // OC3RS = 2000; //50% PWM
- // OC3CONbits.OCTSEL = 0;
- // OC3CONbits.OCM = 0b110; //PWM mode, no fault protection
-
- //#ifdef __32MX330F064H__
- // RPD2Rbits.RPD2R = 0b1011; //RD2 peripheral selection = OC3
- //#endif
- //
- // T2CONbits.TON = 0; // Disable Timer
- // // T2CONbits.TCS = 0; // Select internal instruction cycle clock
- // T2CONbits.TGATE = 0; // Disable Gated Timer mode
- // T2CONbits.TCKPS = 0b011; // Select 1:1 Prescaler
- // TMR2 = 0x00; // Clear timer register
- //
- //
- // IPC2bits.T2IP = 0x01; // Set Timer 2 Interrupt Priority Level
- // IFS0bits.T2IF = 0; // Clear Timer 2 Interrupt Flag
- // IEC0bits.T2IE = 0; // Disable Timer 2 interrupt
- // T2CONbits.TON = 1; // Start Timer
- //
- // OC3CONbits.ON = 1;
-
-
- RTCCONbits.ON = 1;
-
- return RET_OK;
- }
|