Subversion Repositories Code-Repo

Rev

Rev 216 | Blame | Last modification | View Log | RSS feed

// PIC32MX795F512L

// Uncomment ONE of the following:
//#define CEREBOT_32MX7
 #define CEREBOT_MX7CK

// Power supply must be 5V for proper operation of the board!

#define CPU_CLOCK_HZ    80000000UL
#define PERIPHERAL_CLOCK_HZ 80000000UL
#define CPU_CT_HZ       (CPU_CLOCK_HZ/2UL)
#define MS_TO_CT_TICKS  (CPU_CLOCK_HZ/2000UL)
#define US_TO_CT_TICKS  (CPU_CLOCK_HZ/2000000UL)

#define ADDRESS_EEPROM 0x50

// LED1 = G12, LED2 = G13, LED3 = G14, LED4 = G15 (active high)
#define LED1_TRIS TRISGbits.TRISG12
#define LED1_PORT PORTGbits.RG12
#define LED2_TRIS TRISGbits.TRISG13
#define LED2_PORT PORTGbits.RG13
#define LED3_TRIS TRISGbits.TRISG14
#define LED3_PORT PORTGbits.RG14
#define LED4_TRIS TRISGbits.TRISG15
#define LED4_PORT PORTGbits.RG15

void Delay_MS(unsigned int delay_ms);
void Delay_US(unsigned int delay_us);

// <editor-fold desc="PMOD to MCU Pinouts">
/*
JA-01   AN2/C2IN-/CN4/RB2                               RB02
JA-02   AN3/C2IN+/CN5/RB3                               RB03
JA-03   AN4/C1IN-/CN6/RB4                               RB04
JA-04   PGEC2/AN6/OCFA/RB6                              RB06
JA-07   PGED2/AN7/RB7                                   RB07
JA-08   AN8/C1OUT/RB8                                   RB08
JA-09   AN9/C2OUT/RB9                                   RB09
JA-10   CVrefout/PMA13/AN10/RB10                        RB10
 *
JB-01   PMD0/RE0                                        RE00
JB-02   PMD1/RE1                                        RE01
JB-03   PMD2/RE2                                        RE02
JB-04   PMD3/RE3                                        RE03
JB-07   PMD4/RE4                                        RE04
JB-08   PMD5/RE5                                        RE05
JB-09   PMD6/RE6                                        RE06
JB-10   PMD7/RE7                                        RE07
 *
JC-01   T2CK/RC1                                        RC01
JC-02   C2RX/PMD8/RG0                                   RG00
JC-03   C2TX/ETXERR/PMD9/RG1                            RG01
JC-04   ETXCLK/PMD15/CN16/RD7                           RD07
JC-07   AN15/ERXD3/AETXD2/OCFB/PMALL/PMA0/CN12/RB15     RB15    (SFT_D)
JC-08   PMRD/CN14/RD5                                   RD05    (SFT_S)
JC-09   OC5/PMWR/CN13/RD4                               RD04    (SFT_K)
JC-10   AN14/ERXD2/AETXD3/PMALH/PMA1/RB14               RB14    (SFT_R)
 *
JD-01   SS1/IC2/RD9                                     RD09    (GSLAT)
JD-02   SDO1/OC1/INT0/RD0                               RD00    (GSSIN)
JD-03   T5CK/SDI1/RC4                                   RC04    (GSSOUT)
JD-04   SCK1/IC3/PMCS2/PMA15/RD10                       RD10    (GSSCK)
JD-07   OC2/RD1                                         RD01    (PWMCK)
JD-08   OC3/RD2                                         RD02    (XBLNK)
JD-09   OC4/RD3                                         RD03    
JD-10   ETXD2/IC5/PMD12/RD12                            RD12    
 *
JE-01   AETXD0/SS3/U4RX/U1CTS/CN20/RD14                 RD14
JE-02   SCL3/SDO3/U1TX/RF8                              RF08
JE-03   SDA3/SDI3/U1RX/RF2                              RF02
JE-04   AETXD1/SCK3/U4TX/U1RTS/CN21/RD15                RD15
JE-07   TRCLK/RA6                                       RA06 on 32MX7 or INT1/RF8 on MX7CK
JE-08   TRD3/RA7                                        RA07
JE-09   Vref-/CVref-/AERXD2/PMA7/RA9                    RA09
JE-10   Vref+/CVref+/AERXD3/PMA6/RA10                   RA10
 *
JF-01   AC1RX/SS4/U5RX/U2CTS/RF12                       RF12    shared with CAN1 Transceiver (JP-1)
JF-02   SCL5/SDO4/U2TX/PMA8/CN18/RF5                    RF05
JF-03   SDA5/SDI4/U2RX/PMA9/CN17/RF4                    RF04
JF-04   AC1TX/SCK4/U5TX/U2RTS/RF13                      RF13    shared with CAN1 Transceiver (JP-2)
JF-07   TMS/RA0                                         RA00 on 32MX7 or INT2/RF9 on MX7CK
JF-08   TCK/RA1                                         RA01
JF-09   TDI/RA4                                         RA04
JF-10   TDO/RA5                                         RA05

N/A SCL2/RA2                                                        RA02    I2C bus #2, not shared with Pmod connector
N/A SDA2/RA3                                                        RA03    I2C bus #2, not shared with Pmod connector
N/A AETXCLK/SCL1/INT3/RA14                                          RA14    I2C Bus #1, not shared with Pmod connector
N/A AETXEN/SDA1/INT4/RA15                                           RA15    I2C Bus #1, not shared with Pmod connector
N/A PGED1/AN0/CN2/RB0                                               RB00    Used by debug circuit, PGC
N/A PGEC1/AN1/CN3/RB1                                               RB01    Used by debug circuit, PGD
N/A AN5/C1IN+/VBUSON/CN7/RB5                                        RB05    USB VBUSON
N/A AN11/ERXERR/AETXERR/PMA12/RB11                                  RB11    Ethernet PHY
N/A AN12/ERXD0/AECRS/PMA11/RB12                                     RB12    Ethernet PHY
N/A AN13/ERXD1/AECOL/PMA10/RB13                                     RB13    Ethernet PHY
N/A OSC1/CLKI/RC12                                                  RC12    Primary Oscillator Crystal
N/A SOSCI/CN1/RC13                                                  RC13    Secondary Oscillator Crystal
N/A SOSCO/T1CK/CN0/RC14                                             RC14    Secondary Oscillator Crystal
N/A OSC2/CLKO/RC15                                                  RC15    Primary Oscillator Crystal
N/A ETXEN/PMD14/CN15/RD6                                            RD06    Ethernet PHY
N/A RTCC/EMDIO/AEMDIO/IC1/RD8                                       RD08    Ethernet PHY
N/A EMDC/AEMDC/IC4/PMCS1/PMA14/RD11                                 RD11    Ethernet PHY
N/A ETXD3/PMD13/CN19/RD13                                           RD13    BTN3
N/A AERXD0/INT1/RE8                                                 RE08    USB Overcurrent detect
N/A AERXD1/INT2/RE9                                                 RE09    Ethernet PHY Reset
N/A C1RX/ETXD1/PMD11/RF0                                            RF00    Ethernet PHY
N/A C1TX/ETXD0/PMD10/RF1                                            RF01    Ethernet PHY
N/A USBID/RF3                                                       RF03    USBID (USB-4)
N/A D+/RG2                                                          RG02    D+ (USB-3)
N/A D-/RG3                                                          RG03    D- (USB-2)
N/A ECOL/SCK2/U6TX/U3RTS/PMA5/CN8/RG6                               RG06    BTN1
N/A ECRS/SDA4/SDI2/U3RX/PMA4/CN9/RG7                                RG07    BTN2
N/A ERXDV/AERXDV/ECRSDV/AECRSDV/SCL4/SDO2/U3TX/PMA3/CN10/RG8        RG08    Ethernet PHY
N/A ERXCLK/AERXCLK/EREFCLK/AEREFCLK/SS2/U6RX/U3CTS/PMA2/CN11/RG9    RG09    Ethernet PHY
N/A TRD1/RG12                                                       RG12    LED1
N/A TRD0/RG13                                                       RG13    LED2
N/A TRD2/RG14                                                       RG14    LED3
N/A AERXERR/RG15                                                    RG15    LED4
 */
// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Connectors">
/*
J1 - Serial USB Misc Connections (MX7CK only)
 * This header contains other FTDI UART function pins (CTS, DSR, DCD, RI)
J2 - Serial USB Connector (MX7CK only)
 * This connector is connected to UART1 or PMOD JE
J7 - I2C port daisy chain connector
 * On the Cerebot 32MX7, this connector provides access to the I2C signals, power and ground for I2C2.
 * On the Cerebot MX7CK, this connector provides access to the I2C signals, power and ground for I2C1 + INT3/4.
J8 - I2C port daisy chain connector
 * On the Cerebot 32MX7, this connector provides access to the I2C signals, power and ground for I2C1.
 * On the Cerebot MX7CK, this connector provides access to the I2C signals, power and ground for I2C2.
    EEPROM is changed to this port on the MX7CK
J9 - CAN #1 Connector
 * This connector is used to access the signals for CAN #1.
J10 - CAN #2 Connector
 * This connector is used to access the signals for CAN #2.
J11 - Ethernet Connector
 * This connector provides access to the 10/100 Ethernet port.
J12-J14
 * Do Not Use.
J15 - Debug USB Connector
 * This connector is used to connect the on-board programming and
    debug circuit to the PC for use with the MPLAB IDE.
J16 - Power supply source select
 * This jumper is used to select the source of main board power.
    Place a shorting block in the upper, ?USB? position to have the
            board powered from the USB device connector, J19.
    Place a shorting block in the center, ?EXT? position to have the
            board powered from one of the external power connectors, J17 or J18.
    Place a shorting block in the lower, ?DBG? position to have the
            board powered from the debug USB connector, J15.
J17 - External Power Connector
 * This is a 2.5mm x 5.5mm, center positive, coax power connector used to
    provide external power to the board. The optional Digilent 5V Switching
    Power Supply is connected here.
J18 - External Power Connector
 * This is a screw terminal connector used to provide external power to
    the board. Be sure to observe proper polarity (marked near the connector)
    when providing power via this connector, or damage to the board and/or
    connected devices may result.
J19 - USB Device / OTG Connector
 * This is a USB micro-AB connector. It is used when using the PIC32MX795
    microcontroller to implement a USB device or OTG Host/Device.
J20 - USB Host Connector
 * This is a standard sized USB type A connector. This connector is used to
    connect USB devices to the board when using the PIC32MX795 microcontroller
    to implement an embedded USB host.
 */
// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Jumpers">
/*
JP1 & JP2 - CAN or Pmod Select
 * These jumpers select microcontroller signals RF12 and RF13 for use with CAN
    #1 or Pmod connector JF. Place these jumpers in the CAN position to use CAN
    #1. Place the jumpers in the PMOD position to use then with Pmod connector JF.
JP3 & JP4 - Pull-up enable for I2C port #2
 * These two jumpers are used to enable/disable the pull-up resistors on I2C
    port #2. Insert shorting blocks on these two jumpers to enable the pull-up
    resistors. Remove the shorting blocks to disable the pull-up resistors. Only
    a single device on the I2C bus should have the pull-up resistors enabled.
JP5 - CAN #1 Termination
 * This jumper is used to enable/disable the 120 ohm termination resistor for
    CAN #1. Insert the shorting block to enable the termination resistor, remove
    it to disable the termination resistor.
JP6 - CAN #1 5V0 Enable
 * This jumper is used to enable/disable providing 5V to the CAN #1 connector.
    Insert the shorting block to connect the board 5V0 supply to pins 9 & 10 of
    CAN #1 connector. Remove the shorting block to disconnect the 5V0 supply.
JP7 - CAN #2 Termination
 * This jumper is used to enable/disable the 120 ohm termination resistor for
    CAN #2. Insert the shorting block to enable the termination resistor, remove
    it to disable the termination resistor.
JP8 - CAN #1 5V0 Enable
 * This jumper is used to enable/disable providing 5V to the CAN #1 connector.
    Insert the shorting block to connect the board 5V0 supply to pins 9 & 10 of
    CAN #1 connector. Remove the shorting block to disconnect the 5V0 supply.
JP9 - Do Not Use
JP10 - USB Host Power Select
 * This jumper is used to select which host connector is powered when host power
    is enabled. Place the shorting block in the ?MICRO? position to supply power
    to the USB micro-AB OTG Connector, J19. Place the shorting block in the ?A?
    position to supply power to the USB type A Host Connector, J20.
JP11 - Programmer Serial Select (MX7CK only)
 * Remove the jumper to disconnect the USB serial converter's connection to the
    MCLR pin. Disconnecting this when using the built in debugger is recommended.
JP17 - Do Not Use
 */
// </editor-fold>