This is an old revision of the document!
Table of Contents
Majenko SDXL
This is a clone of the TCHIP010 Fubarino SD 1.5 from Microchip with a PIC32MX795F512H processor and micro SD card slot.
A popular use of this board and the original is to run RetroBSD.
Since this is such a large device I chose to mount it adjacent to a solder-less breadboard rather than acquire a breadboard capable of housing it. This is something to consider before attaching the headers.
It must be pointed out that the PIC32MX795F512H only has a guaranteed cell endurance of 1000 erase/write cycles. It's hard to recommend this device for development work.
Pinout
+-----------MINI-USB------------+ 5V VIN GND GND 3V3P 3V3 0 RD8 RF5 29-TX TX2 RX4 1 RD9 RF4 28-RX RX2 2 RD10 RB15 A0 3 RD11 RB14 A1 TX5 4 RD0 RB13 A2 5 RC13 RB12 A3 6 RC14 RB11 A4 TX4 7 RD1 RB10 A5 RX1 8-RX RD2 RB9 A6 TX1 9-TX RD3 RB8 A7 RX5 10 RD4 RB6 A8 PGC 11 RD5 RB7 A9 PGD 12 RD6 GND VSS 13 RD7 3V3 VDD 14 RF0 !MCLR RST VPP 15 RF1 RB0 A10 16 RE0 RB1 A11 17 RE1 RB2 A12 18 RE2 P R RB3 A13 19 RE3 R E RB4 A14 20 RE4 O S RG9 27-SS RX6 21 RE5 G E RG8 26-SDO TX3 22 RE6 T RG7 25-SDI RX3 LED 23 RE7 RG6 24-SCK TX6 GND GND +-----------MICRO-SD------------+ PROG RB5 CTRL RC15
Pickle Microchip PIC ICSP
Using Pickle on a Raspberry Pi we may perform ICSP (see either photo).
Configuration
The device configuration will vary depending on what version of a RPi you have, here is an example for my RPi 2B (see bottom photo).
DEVICE=RPI2 SLEEP=2 BITRULES=0x1000 VPP=26 PGC=19 PGD=13 PGM=255
Program Executive
It is a good idea to fetch the programming executive for this device which is the following.
RIPE_06_000201.hex
See this for more information about installing the PE.
Test
Testing ICSP by querying the device identify will produce something similar to this.
p32 i [1D000000] [PROGRAM] 00020000 WORDS [1F80F220] [DEVICEID] 5430E053 PIC32MX795F512H [1FC00000] [BOOT] 00000C00 WORDS [1FC02FF0] [DEVCFG3] 3FFFFFFF [1FC02FF4] [DEVCFG2] FFF879D9 [1FC02FF8] [DEVCFG1] FF6A0C5B [1FC02FFC] [DEVCFG0] 7FFFFFFF [PE] RIPE_06_000201.hex
Boot loader
USB boot loader firmware can be built with the MPIDE compiler and the build process is documented here.
Here we program the loader then verify it.
p32 program firmware/MAJENKO_SDXL.hex Total: 5648 Time: 0:00.60s p32 verify firmware/MAJENKO_SDXL.hex Total: 5648 Fail: 0 Time: 0:00.47s
Standalone
If you program this board without a boot loader you can use the following configuration which is the default used by this device.
/* DEVCFG3 */ #pragma config FVBUSONIO = OFF #pragma config FUSBIDIO = OFF #pragma config FCANIO = ON #pragma config FETHIO = ON #pragma config FMIIEN = ON #pragma config FSRSSEL = PRIORITY_7 #pragma config USERID = 0x0000 /* DEVCFG2 */ #pragma config FPLLODIV = DIV_1 #pragma config UPLLEN = ON #pragma config UPLLIDIV = DIV_2 #pragma config FPLLMUL = MUL_20 #pragma config FPLLIDIV = DIV_2 /* DEVCFG1 */ #pragma config FWDTEN = OFF #pragma config WDTPS = PS1024 #pragma config FCKSM = CSECME #pragma config FPBDIV = DIV_1 #pragma config OSCIOFNC = OFF #pragma config POSCMOD = EC #pragma config IESO = OFF #pragma config FSOSCEN = OFF #pragma config FNOSC = PRIPLL /* DEVCFG0 */ #pragma config CP = OFF #pragma config BWP = OFF #pragma config PWP = OFF #pragma config ICESEL = ICS_PGx2 #pragma config DEBUG = OFF