×

Nachricht

EU-DSGVO

Diese Website nutzt sog. Cookies, um Browsen, Anmelden und andere Funktionen bereitzustellen. Durch das Nutzen unserer Website stimmen Sie zu, dass wir persistente und transiente Cookies auf Ihrem Gerät ablegen dürfen. Näheres finden Sie in unserer Datenschutzerklärung.

Sie haben Cookies abgelehnt. Diese Entscheidung kann rückgängig gemacht werden.

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).