|
@@ -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));
|