My Project
Loading...
Searching...
No Matches
PIC32MZ-serial.h
1void _mon_putc(char c);
2
3#define BAUD_GEN(sysclk, baud) ((sysclk / (16 * baud)) - 1)
4
5#ifdef MICROCHIP_PIC32
6#if defined (__32MZ2048ECH144__) || defined(__32MZ2048ECM144__) || defined(__32MZ2048EFM144__)
7 /* Code generated from Harmony example then exported using Window -> PIC32 Memory View -> Configuration Bits into system_config.h */
8 #define SYS_CLK_FREQ 200000000ul
9 #define SYS_CLK_BUS_PERIPHERAL_2 100000000ul
10
11 /* PIC32MZ2048EFM144 Configuration Bit Settings */
12
13 /*** DEVCFG0 ***/
14 #pragma config DEBUG = OFF
15 #pragma config JTAGEN = OFF
16 #pragma config ICESEL = ICS_PGx2
17 #pragma config TRCEN = OFF
18 #pragma config BOOTISA = MIPS32
19 #pragma config FECCCON = OFF_UNLOCKED
20 #pragma config FSLEEP = OFF
21 #pragma config DBGPER = PG_ALL
22 #pragma config SMCLR = MCLR_NORM
23 #pragma config SOSCGAIN = GAIN_2X
24 #pragma config SOSCBOOST = ON
25 #pragma config POSCGAIN = GAIN_2X
26 #pragma config POSCBOOST = ON
27 #pragma config EJTAGBEN = NORMAL
28 #pragma config CP = OFF
29
30 /*** DEVCFG1 ***/
31 #pragma config FNOSC = SPLL
32 #pragma config DMTINTV = WIN_127_128
33 #pragma config FSOSCEN = OFF
34 #pragma config IESO = OFF
35 #pragma config POSCMOD = EC
36 #pragma config OSCIOFNC = OFF
37 #pragma config FCKSM = CSECME
38 #pragma config WDTPS = PS1048576
39 #pragma config WDTSPGM = STOP
40 #pragma config FWDTEN = OFF
41 #pragma config WINDIS = NORMAL
42 #pragma config FWDTWINSZ = WINSZ_25
43 #pragma config DMTCNT = DMT31
44 #pragma config FDMTEN = OFF
45
46 /*** DEVCFG2 ***/
47 #pragma config FPLLIDIV = DIV_3
48 #pragma config FPLLRNG = RANGE_5_10_MHZ
49 #pragma config FPLLICLK = PLL_POSC
50 #pragma config FPLLMULT = MUL_50
51 #pragma config FPLLODIV = DIV_2
52 #pragma config UPLLFSEL = FREQ_24MHZ
53
54 /*** DEVCFG3 ***/
55 #pragma config USERID = 0xffff
56 #pragma config FMIIEN = ON
57 #pragma config FETHIO = ON
58 #pragma config PGL1WAY = ON
59 #pragma config PMDL1WAY = ON
60 #pragma config IOL1WAY = ON
61 #pragma config FUSBIDIO = ON
62
63 /*** BF1SEQ0 ***/
64 #pragma config TSEQ = 0x0000
65 #pragma config CSEQ = 0xffff
66
67 /* #pragma config statements should precede project file includes. */
68 /* Use project enums instead of #define for ON and OFF. */
69
70 #include <xc.h>
71#endif
72#endif
73
74static void init_serial(unsigned int sysClk) {
75#ifdef MICROCHIP_PIC32
76#if defined (__32MZ2048ECH144__) || defined(__32MZ2048ECM144__) || defined(__32MZ2048EFM144__)
77 /* This is for pin B14 which is connected to the USB to UART connector J11 located under Ethernet connector */
78
79 /* Setup UART2 */
80#ifdef SYS_CLK_BUS_PERIPHERAL_2
81 U2BRG = BAUD_GEN(SYS_CLK_BUS_PERIPHERAL_2, 115200);
82#else
83 if (sysClk > 100000000)
84 sysClk /= 2;
85 U2BRG = BAUD_GEN(sysClk, 115200);
86#endif
87 ANSELBCLR = 0x4000;
88 ANSELGCLR = 0x0040;
89 RPB14R = 0x02;
90 U2RXR = 0x01;
91 U2MODE = 0x8000;
92 U2STA = 0x400;
93#endif
94#endif
95 (void)sysClk;
96}