Jump to content
IGNORED

New Atari ST/E Mega ST/E hard disk interface


Recommended Posts

I can't comment on the Ver.2 STM firmware my device is completely different based on Ver.1 & Teensy 3.5 microcontroller and fully buffered by three separate IC:

SN74LVC4245A Octal Bus Transceiver and 3.3-V to 5-V Shifter With 3-State Outputs.

SN74LS07 Hex Buffers and Drivers With Open-Collector High-Voltage Outputs.

SN7406 Hex inverter Buffers With Open-Collector.

 

Well I need to get rid of this breadboard prototyping wiring mess I got going. Bad Apple demo just crapped out on me again.

Sure enough I touch some wires and all is well.

Link to comment
Share on other sites

7 hours ago, Chri O. said:

I can't comment on the Ver.2 STM firmware my device is completely different based on Ver.1 & Teensy 3.5 microcontroller and fully buffered by three separate IC:

SN74LVC4245A Octal Bus Transceiver and 3.3-V to 5-V Shifter With 3-State Outputs.

SN74LS07 Hex Buffers and Drivers With Open-Collector High-Voltage Outputs.

SN7406 Hex inverter Buffers With Open-Collector.

That makes complete sense to do that, I did think about doing it, but the writeup indicated it worked

without, so I may start over again and incorporate buffer chips into the equation

 

Did you use the Read/Write signal to switch the direction of the transceiver, or did you recode another GPIO pin ? 

Edited by TGB1718
Update
Link to comment
Share on other sites

17 hours ago, TGB1718 said:

That makes complete sense to do that, I did think about doing it, but the writeup indicated it worked

without, so I may start over again and incorporate buffer chips into the equation

I'm doing this for two reasons first I'm planning on migrating to Teensy 4.1 3.3v not 5v tolerant and second being able to connect more periphals on the ACSI bus.

Quote

Did you use the Read/Write signal to switch the direction of the transceiver, or did you recode another GPIO pin ? 

I am using Read/Write and the Reset signal.

 

Code for the Reset.

// Reset/Restart Teensy 3.x, T4 using software.
// https://forum.pjrc.com/threads/44857-How-to-Reset-Restart-Teensy-3-5-using-sotware
#define RESTART_ADDR 0xE000ED0C
#define READ_RESTART() (*(volatile uint32_t *)RESTART_ADDR)
#define WRITE_RESTART(val) ((*(volatile uint32_t *)RESTART_ADDR) = (val))
// somewhere in code do --> WRITE_RESTART(0x5FA0004);

void FASTRUN RESET_IRQhandler() {
  // Teensy restart, use the following:
  WRITE_RESTART(0x5FA0004);
}

void setup() {
  // put your setup code here, to run once:

  Serial.begin(115200); // Init the serial port.
  // NOTE: On Teensy Serial.begin(baud) is completely ignored.
  // Unlike a standard Arduino (FTDI IC), the Teensy 3.x Serial object always communicates at 12 Mbit/sec USB speed.
  // Unlike a standard Arduino (FTDI IC), the Teensy 4.x Serial object always communicates at 480 Mbit/sec USB 2.0 Hi-Speed.
  while (!Serial && millis() < 1000) {}  // wait for Serial Monitor with timeout.

  pinMode(35, INPUT); // pin 35
  while (digitalReadFast(35) == LOW) { // Wait for reset Button released
    Serial.print(digitalReadFast(35));
    Serial.println("  digitalReadFast(35) reset Button");
    delay(100);
  }
  attachInterrupt(35, RESET_IRQhandler, FALLING);
}

void loop() {
  // put your main code here, to run repeatedly:
}

 

Link to comment
Share on other sites

@Chri O. thanks for that, can I ask you for a circuit diagram of the buffer circuit, I'm thinking my STE is not happy

with the 3.3V signals from the STM32 and although I can work out what most of the lines are for, but not completely

happy with some signals i.e. Tri-state (like the data lines) even which are inputs/outputs, can't seem to find what

I'm looking for on-line.

Link to comment
Share on other sites

On 5/17/2021 at 5:52 PM, nachocientos said:

Is it possible to download or to buy current firmware from somewhere?

 

Nachocientos, I have your request of 1 hard disk unit on the notepad

 

Your queue position is reaching,

 

Your unit will have the new ultra fast stable firmware:  650 KB/s reading and 385 KB/s writing

Link to comment
Share on other sites

  • 2 weeks later...

Just managed o get back into looking at this, I've re-compiled the code with debug on, this is a sample

of the output when connected to my STE.

Starting Debug Session
:ACSI2STM SD0  983 MB F BOOT
::::08
Starting Debug Session
:ACSI2STM SD0  983 MB F BOOT
::::182828383808
Starting Debug Session
:ACSI2STM SD0  983 MB F BOOT
::::1828284800012
Starting Debug Session
:ACSI2STM SD0  983 MB F BOOT
::::112
Starting Debug Session
:ACSI2STM SD0  983 MB F BOOT

 

This continues while the STE scans the bus looking for devices, from the output, with my SD reader fitted (instead of the micro-SD card)

it appears to see the drive correctly. I loaded one SD card with the image(you can do this with this device) and another card I burnt

the image as you would normally, that SD card is also seen correctly as a boot device.

 

Unfortunately I don't know what the numbers mean following the ::::

 

I have double checked the wiring and it's fine, wires are really short etc. but still no joy with this.

My feeling is still that the 3.3V output from the STM32 isn't quite good enough for this to work, also when I

get this going I want my "real" hard drive connected so I can transfer all my data to this and I suspect that

the current circuitry will not allow that as the STM32 outputs will not be Tri-state (I did connect this device as drive 1

to my hard drive through an ICD interface and it wouldn't boot the hard drive) removal of this device and the drive

booted normally.

 

So it's looking like a buffer circuit will be necessary 

Link to comment
Share on other sites

On 6/1/2021 at 11:35 AM, TGB1718 said:

I have double checked the wiring and it's fine, wires are really short etc. but still no joy with this.

My feeling is still that the 3.3V output from the STM32 isn't quite good enough for this to work

To be honest it's should work on Atari ST/e because the data bus is actually buffered by 74LS245 IC and 74LS244 IC ?

Just so you know I still can't write 2 my drive and also with bunch of long wires but I can read @ whooping 1393 KB/s  ?

 

 

20210602_224712.jpg

20210602_221429.jpg

Edited by Chri O.
add 2nd pic
Link to comment
Share on other sites

14 hours ago, Chri O. said:

@ whooping 1393 KB/s  ?

You make me cry ? , seriously, yours is working on a breadboard, I have a second STM32, so I might

do it that way, just to eliminate any potential problems I may have introduced using a prototyping board

and soldering it all together.

Link to comment
Share on other sites

19 hours ago, Chri O. said:

On teensy forums I've seen people having issues with power supply too slow at power-on. 

LINK: Boot on Power-Up Problem with three T3.6s.

Perhaps it's similar issue?

 

Thanks for your input, however from my observations the STM32 starts every time, during my testing, I power

the device up with a USB power supply prior to booting, I see activity via the on-board LED the instant any

HDD driver attempts to boot.

 

But, while typing I had a thought , "all USB PSU's are not equal" and I've used the same one when connecting to the ST,

it may be it's too noisy, I will try one from my Raspberry Pi and hope it works

Link to comment
Share on other sites

  • 10 months later...

Bit of a long wait as I had more than given up on getting this working, however I managed to get a pre-compiled version

as I thought my problems were associated with the way the code was being compiled.

 

I used an ST Link to upload the binary, as soon as I plugged it into the ST it started giving me error messages about the

SD card, (there wasn't one in yet), this was more than I've seen before, so I put an 8GB SanDisk card in, on reboot

it saw the card straight away and then said I needed a driver.

 

As I have an IDC interface I'm using ICD Pro, I ran the ICDFRMT.PRG, it also saw the card, I split into

5 partitions and it's currently in the process of doing a bad sector check (no way round this with ICD)

but on the face of it, it look like it's going to work  :)

 

Link to comment
Share on other sites

38 minutes ago, DarkLord said:

Hmm. I thought you didn't have to format SD cards?

 

In fact, with my Ultrasatan's, I'm 100% sure that I

have never ever formatted one. I just partition them

and they are fine...

It's probably the ICD software, I had pre-formatted as FAT on Wondows, but it didn't

see the partitions at all, I may still have to end up using HDDriver ot PPDRIVER yet

will have to see the outcome.

Link to comment
Share on other sites

Term 'format' now may need just partitioning and possible bad sector checks - so is in Windows for long time. Old meaning of 'format' is now called 'low level format' . And that is what is not used, actually not possible to perform by user - disks, and now Flash cards are low level formatted in factory. It is so with hard disks over 20 years, and Flash cards never had that option.

 

Of course, very old hard disk SW may do low level format, but it will work only on disks supporting it - so very old ones.  It is pretty slow, and some multi GB disk low level formatting would take days with Atari.

 

And to add, you can not format/partition hard disks or cards intended for usage with TOS under Windows. It can not produce TOS compatible partitions.

Link to comment
Share on other sites

Well I'm disappointed, all seemed to go well, no errors, but when complete, no partitions are

 seen by ICD on reboot, even though when I run ICDFMT, it shows the partitions I created.

 

I tried HDDRIVER demo version and all that does is crash (bombs), it has always done this on

my STE.

 

Tried the demo of PPDRIVER it says it's not a DOS partition, even though it is and fails to install.

I did try a different SD card (1GB) same results :(

 

 

Link to comment
Share on other sites

My old driver Demo is for DOS partitions and needs program BigDOS to work. But it needs special parameters of partitions. And not really interesting now. Newer versions create TOS/DOS compatible partitions, no need for BigDOS ... What need is quality SD or CF cards - saying it because it may be problem in this case too. Lot of crap, forged cards, especially in online offer.

Link to comment
Share on other sites

43 minutes ago, ParanoidLittleMan said:

My old driver Demo is for DOS partitions and needs program BigDOS to work.

I was using with BigDos, the SD card I'm using is a SanDisk which I have used successfully with SIDE3 on 8 bit

so I'm reasonably confident it's genuine.

 

Do you have anything I could try to see if I can get this working, seems like I'm 90% of the way there, just

need something to complete it.

 

I'm more than willing to pay for the drivers if I can see that they work.

 

Regarding the ICD utility, I'm not sure the current version is completely compatible, reading on the authors web

pages, there's a mention of a new version coming soon with more compatibility with ICD drivers.

Link to comment
Share on other sites

Gave it a try (well several tries :) ) and I get 4 bombs as soon as it tries to boot from the device.

tried 2 different cards (that both work ok in 8 bit systems).

 

Strangely with version 2.43 of the software where it looks like it's got verbose logging on I get all

the messages from the device about whether or not an SD card is in any of the slots, if one is fitted

it gets the size right, even the make and size of the card, it also tells me I need a driver,

there's no corruption in any of the text, so comm's between the STE and the device look ok

and it's communicating with the SD card to get the correct details

 

I'm going to try another card, this time a micro SD card in an adaptor as this is only thing I think

can be causing issues is the card itself.

Link to comment
Share on other sites

No luck with any cards, however, I booted from floppy with @ParanoidLittleMan image on the SD card and loaded

ICD Pro driver and it saw the "C" drive, I installed the icon and could open the drive and see some

directories and files, 2 of the directories opened were empty and another showed garbled text for

the files.

 

I ran ICDFMT again on the card, I don't select FORMAT, just PARTITION, I split the 1GB disk into

5 partitions, the first being only 25MB and the rest evenly split.

 

The process checks for bad sectors and takes about 1/2 hour, finds no errors and writes the partition

data to the card. To do that there must be an enormous amount of data going back and forth

between the device and the STE and as there's no errors it does seem strange that at the

end it can't see the partitions it created.

 

After a reboot and reload of ICD Drivers, it still doesn't see any drives, so I'm thinking at this stage

it may be nothing more than crosstalk between the wires, so I'm going to rewire it, even though the wiring I

used is as short as possible.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...