|
@@ -72,12 +72,18 @@ SdFs SD;
|
|
|
FsFile LOG_FILE;
|
|
|
|
|
|
// Data pins
|
|
|
-// 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
|
|
-static const uint32_t scsiDbOutputRegOr_PDREG = 0b00000000000000000101010101010101;
|
|
|
-static const uint32_t scsiDbInputOutputAnd_PDREG = 0b00000000000000000000000000000000;
|
|
|
-// 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
|
|
-static const uint32_t scsiDbOutputRegOr_PEREG = 0b00000000000000000000000000000001;
|
|
|
-static const uint32_t scsiDbInputOutputAnd_PEREG = 0b00000000000000000011111111110000;
|
|
|
+// 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
|
|
+static const uint32_t scsiDbOutputRegOr_PDREG = 0b00000000000000000101010101010101;
|
|
|
+static const uint32_t scsiDbInputOutputAnd_PDREG = 0b00000000000000000000000000000000;
|
|
|
+static const uint32_t scsiDbInputOutputPullAnd_PDREG = 0b00000000000000000101010101010101;
|
|
|
+// Control pins
|
|
|
+// 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
|
|
+static const uint32_t scsiDbOutputRegOr_PEREG = 0b00000000000000000000000000000001;
|
|
|
+static const uint32_t scsiDbInputOutputAnd_PEREG = 0b00000000000000000011111111110000;
|
|
|
+static const uint32_t scsiDbInputOutputPullAnd_PEREG = 0b00000000000000000101010101010001;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -88,7 +94,7 @@ static const uint32_t scsiDbInputOutputAnd_PEREG = 0b000000000000000000111111111
|
|
|
|
|
|
// Put DB and DP in input mode
|
|
|
#define SCSI_DB_INPUT() { PDREG->MODER = (PDREG->MODER & scsiDbInputOutputAnd_PDREG); PEREG->MODER = (PEREG->MODER & scsiDbInputOutputAnd_PEREG); SCSI_OUTPUT_IN();}
|
|
|
-
|
|
|
+#define SCSI_SET_PULL() { PDREG->PUPDR |= scsiDbInputOutputPullAnd_PDREG; PEREG->PUPDR |= scsiDbInputOutputPullAnd_PEREG; }
|
|
|
|
|
|
// BSY,REQ,MSG,CD,IO Turn off output, BSY is the last input
|
|
|
#define SCSI_TARGET_INACTIVE() { SCSI_OUT(vREQ,inactive); SCSI_OUT(vMSG,inactive); SCSI_OUT(vCD,inactive); SCSI_OUT(vIO,inactive); SCSI_OUT(vBSY,inactive); pinMode(BOARD_SCSI_BSY, INPUT); }
|
|
@@ -300,8 +306,15 @@ bool hddimageOpen(HDDIMG *h,const char *image_name,int id,int lun,int blocksize)
|
|
|
*/
|
|
|
void setup()
|
|
|
{
|
|
|
+ //Setup GPIO
|
|
|
gpioInit();
|
|
|
|
|
|
+ SCSI_OUTPUT_IN() ;
|
|
|
+
|
|
|
+ SCSI_SET_PULL();
|
|
|
+
|
|
|
+ //Default turn termination off
|
|
|
+ TERMINATION_HIGH();
|
|
|
#if DEBUG > 0
|
|
|
Serial.begin(19200);
|
|
|
delay(3000);
|
|
@@ -310,11 +323,6 @@ void setup()
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- //Default turn termination off
|
|
|
- TERMINATION_HIGH();
|
|
|
-
|
|
|
//Turn Power LED ON
|
|
|
LED2_ON();
|
|
|
//Check if SD card is inserted
|