e-music
Member level 5
Hello everyone!
I have a legacy SCSI controller interfaced to STM32F407 via the FSMC. I spent almost a year working on this project until I became acquainted with the protocol. Anyways, I have been running into several issues and I was wondering if using buffers on the outputs and octal bus transceivers on the bidirectional pins could help improve the performance of the data transfer. The datasheet of my SCSI device says the device is capable of 3 MBytes/s (asynchronous transfer) in the worst conditions, however, I couldn't achieve a fraction of that. Right now, the best I could get was 20 seconds for a single MB, which is far from acceptable. I spent the past month working almost 10 hours/day trying to solve it to no avail. I just don't know what might slow down the transfer like that.
Since I almost gave up at the software side, I thought I might need to take another look down the bus and the electrical specs. I noticed that there's some interference between the impedance of the STM32F4 board and that of the SCSI processor board. I had them connected to each other by means of jumper wires. Even when no power is applied to the Vdd pin of the SCSI Controller, I could read 1.3 V on that pin when the STM32F4 board is powered. The SCSI device itself is a 5.0 V CMOS device. Not sure if level-shifting is necessary, but as far as I know, the GPIOs of the STM32F4 are 5V tolerant.
Aside from the result I have obtained, how about using an Octal Bus Transceiver between the STM32F4 FSMC and the data/address bus of the SCSI controller? WHat are the advantages/disadvantages of using one?
Thanks in advance!
I have a legacy SCSI controller interfaced to STM32F407 via the FSMC. I spent almost a year working on this project until I became acquainted with the protocol. Anyways, I have been running into several issues and I was wondering if using buffers on the outputs and octal bus transceivers on the bidirectional pins could help improve the performance of the data transfer. The datasheet of my SCSI device says the device is capable of 3 MBytes/s (asynchronous transfer) in the worst conditions, however, I couldn't achieve a fraction of that. Right now, the best I could get was 20 seconds for a single MB, which is far from acceptable. I spent the past month working almost 10 hours/day trying to solve it to no avail. I just don't know what might slow down the transfer like that.
Since I almost gave up at the software side, I thought I might need to take another look down the bus and the electrical specs. I noticed that there's some interference between the impedance of the STM32F4 board and that of the SCSI processor board. I had them connected to each other by means of jumper wires. Even when no power is applied to the Vdd pin of the SCSI Controller, I could read 1.3 V on that pin when the STM32F4 board is powered. The SCSI device itself is a 5.0 V CMOS device. Not sure if level-shifting is necessary, but as far as I know, the GPIOs of the STM32F4 are 5V tolerant.
Aside from the result I have obtained, how about using an Octal Bus Transceiver between the STM32F4 FSMC and the data/address bus of the SCSI controller? WHat are the advantages/disadvantages of using one?
Thanks in advance!