diff --git a/cores/piduino/raspberry_pi_revision.c b/cores/piduino/raspberry_pi_revision.c index aa4179cc..7627e06e 100644 --- a/cores/piduino/raspberry_pi_revision.c +++ b/cores/piduino/raspberry_pi_revision.c @@ -147,6 +147,15 @@ // E - Memory - 2 (1024 MB) // F - Endcoded flag - 1 (encoded cpu info) // +// Revision : A020D3 +// +// A - PCB Revision - 3 (first revision) +// B - Model Name - D (Model B Pi 3) +// C - Processor - 0 (BCM2835) +// D - Manufacturer - 0 (Sony) +// E - Memory - 2 (1024 MB) +// F - Endcoded flag - 1 (encoded cpu info) +// //------------------------------------------------------------------------- static RASPBERRY_PI_MEMORY_T revisionToMemory[] = @@ -235,7 +244,8 @@ static RASPBERRY_PI_MODEL_T bitFieldToModel[] = RPI_MODEL_ZERO, // 9 RPI_COMPUTE_MODULE_3, // A RPI_MODEL_UNKNOWN, // B - RPI_MODEL_ZERO_W // C + RPI_MODEL_ZERO_W, // C + RPI_MODEL_B_PI_3_PLUS // D }; static RASPBERRY_PI_MODEL_T revisionToModel[] = @@ -734,6 +744,11 @@ raspberryPiModelToString( string = "Model Zero W"; break; + case RPI_MODEL_B_PI_3_PLUS: + + string = "Model B Pi 3+"; + break; + default: break; diff --git a/cores/piduino/raspberry_pi_revision.h b/cores/piduino/raspberry_pi_revision.h index 3ec707a7..9b4e8b6c 100644 --- a/cores/piduino/raspberry_pi_revision.h +++ b/cores/piduino/raspberry_pi_revision.h @@ -84,7 +84,8 @@ typedef enum RPI_MODEL_ZERO, RPI_MODEL_B_PI_3, RPI_COMPUTE_MODULE_3, - RPI_MODEL_ZERO_W + RPI_MODEL_ZERO_W, + RPI_MODEL_B_PI_3_PLUS } RASPBERRY_PI_MODEL_T; diff --git a/cores/piduino/wiring.c b/cores/piduino/wiring.c index 8c6af2b8..9b73c94c 100644 --- a/cores/piduino/wiring.c +++ b/cores/piduino/wiring.c @@ -178,7 +178,7 @@ int init(){ uint32_t offset = info.peripheralBase - 0x20000000; - if (info.model == RPI_MODEL_B_PI_3 || info.model == RPI_MODEL_B_PI_2 || info.model == RPI_MODEL_ZERO || info.model == RPI_MODEL_ZERO_W) { + if (info.model == RPI_MODEL_B_PI_3 || info.model == RPI_MODEL_B_PI_2 || info.model == RPI_MODEL_ZERO || info.model == RPI_MODEL_ZERO_W || info.model == RPI_MODEL_B_PI_3_PLUS) { info.revisionNumber = 0x10; } if(info.revisionNumber >= PINMASKS_LEN || !rpi_model_pinmasks[info.revisionNumber]){