Browse Source

More changes

Per Mårtensson 2 years ago
parent
commit
88af253292
1 changed files with 6 additions and 7 deletions
  1. 6 7
      sw/src/main.cpp

+ 6 - 7
sw/src/main.cpp

@@ -682,11 +682,11 @@ inline byte readHandshake(void)
 inline void writeHandshake(byte d)
 {
   // This has a 400ns bus settle delay built in. Not optimal for multi-byte transfers.
-  GPIOB->regs->BSRR = db_bsrr[d]; // setup DB,DBP (160ns)
+  GPIOD->regs->BSRR = db_bsrr[d]; // setup DB,DBP (160ns) //PM2022 need to add parity from PE
   TRANSCEIVER_IO_SET(vDTD,DB_OUTPUT)
   SCSI_DB_OUTPUT() // (180ns)
   // ACK.Fall to DB output delay 100ns(MAX)  (DTC-510B)
-  SCSI_OUT(vREQ,inactive) // setup wait (30ns)
+  SCSI_OUT(vREQ,inactive) // setup wait (30ns)w
   SCSI_OUT(vREQ,inactive) // setup wait (30ns)
   SCSI_OUT(vREQ,inactive) // setup wait (30ns)
   SCSI_OUT(vREQ,active)   // (30ns)
@@ -694,7 +694,7 @@ inline void writeHandshake(byte d)
   while(!SCSI_IN(vACK));
   // ACK.Fall to REQ.Raise delay 500ns(typ.) (DTC-510B)
   uint32_t bsrrCall = ((db_bsrr[0xff] & 0xFFDFFFFF) | 0x00000020);
-  GPIOE->regs->BSRR = bsrrCall;  // DB=0xFF , SCSI_OUT(vREQ,inactive)
+  GPIOE->regs->BSRR = bsrrCall;  // DB=0xFF , SCSI_OUT(vREQ,inactive) //PM2022 should wirite data to bus
   
   // REQ.Raise to DB hold time 0ns
   SCSI_DB_INPUT() // (150ns)
@@ -812,11 +812,11 @@ void readDataLoop(uint32_t blockSize, byte* dstptr)
 
 #define REQ_ON() (PEREG->BSRR = req_rst_bit);
 #define REQ_OFF() (PEREG->BSRR = req_bit);
-#define WAIT_ACK_ACTIVE()   while((*port_a_idr>>(vACK&15)&1))
-#define WAIT_ACK_INACTIVE() while(!(*port_a_idr>>(vACK&15)&1))
+#define WAIT_ACK_ACTIVE()   while((*port_b_idr>>(vACK&15)&1)) //PM2022
+#define WAIT_ACK_INACTIVE() while(!(*port_b_idr>>(vACK&15)&1))
   register uint32_t req_bit = BITMASK(vREQ);
   register uint32_t req_rst_bit = BITMASK(vREQ) << 16;
-  register volatile uint32 *port_a_idr = &(GPIOA->regs->IDR);
+  register volatile uint32 *port_b_idr = &(GPIOB->regs->IDR);
   REQ_ON();
   // Start of the do/while and WAIT are already aligned to 8 bytes.
   do {
@@ -930,7 +930,6 @@ void loop()
   m_msg = 0;
   m_lun = 0xff;
   SCSI_DEVICE *dev = (SCSI_DEVICE *)0; // HDD image for current SCSI-ID, LUN
-  serial.println("test");
   do {
     serial.print(SCSI_IN(vBSY));
     serial.print(SCSI_IN(vSEL));