Table of Contents

Majenko SDXL

Standalone

AD 12 Solderless Breadboard

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=-1
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

Resources

Manual