Neben der handwerklichen Lötpraxis beim Aufbau des Gerätes gibt es bei der Beschäftigung mit der Programmierung des Mikrocontrollers viel zu entdecken.
Die Entwicklungsumgebung (IDE = Integrated Development Einvironment) PSoC Creator von Cypress/Infineon ist zwar etwas gewöhnungsbedürftig, bietet aber verschiedene Eingabemethoden, die bei ACSI2SD benutzt werden:
Die Software für den ARM Prozessor ist in C geschrieben und zweckmässig in Module unterteilt, diese gut kommentiert, sodass man sich rasch zurechtfindet.
Der SCSI-Controllerkern ist als State Machine in Verilog beschrieben und im frei verdrahtbaren UDB-Bereich des Controllers implementiert.
Die ACSI-SCSI Schnittstelle ist dagegen als direkter Schaltplan (bestehend aus Flip-Flops/Registern, sequentieller Logik, LUT) beschrieben und ebenfalls im frei verdrahtbaren UDB-Bereich des Controllers implementiert.
Gerade die beiden letzten Methoden können als Einstieg in die FPGA-Programmierung (im Sinne von Hardware-Beschreibung) dienen.
Im übrigen ahmt die Aufteilung mit einer separaten ACSI-nach-SCSI-Schnittstelle das Innenleben der (späteren) Atari-Festplatten nach, denn dort war diese Schnittstelle mit diskreter TTL-Logik aufgebaut, um anschließend eine SCSI-Harddisk anzusteuern.
Sowohl der Flash-Speicher des Prozessors als auch der frei verdrahtbare UDB-Bereich außerhalb des Prozessors sind nur etwa zur Hälfte ausgenutzt, sodass viel Platz für eigene Erweiterungen besteht. Besonders interessant für diejenigen, die den Programmer/Debugger KitProg haben.
Vorschlag für eine erste Modifikation am PSoC für Benutzer, die sich in PSoC Creator eingearbeitet haben:
Da die ACSI-SCSI Schnittstelle on-Chip im PSoC arbeitet, kann man die Reserve beim deskew-Wert herabsetzen.
Im Verilog-Quelltext scsiTarget.v Zeile 298 den deskew-Wert von 1 auf 0 herabsetzen, Projekt neu kompilieren (Build), programmieren (Grösse des .hex Programmierfiles sollte sich nicht ändern) und testen.
Die Modifikation bringt etwa 3% Geschwindigkeitsgewinn (gemessen mit Programm HDDAST4.TOS) und bringt die Transferrate näher an das theoretische Maximum von 2MB/s.
Allein durch das Erhöhen der Taktfrequenz ist noch ein Erhöhen der Transferrate um etwa 10-20% möglich (bei Proc eher mehr, bei Mod eher weniger).