Die meisten 65xx/68xx Bausteine sind recht ungünstig für Prozessoren
ausserhalb dieser Reihe, da der E/Phi2-Anschluss eine Doppelrolle hat.
Einerseits benötigen sie daran oft einen ununterbrochenen konstanten
Takt. Gleichzeitig steuert der Anschluss aber auch Ablauf eines
Buszugriffes. Der STM32 müsste sich für den Zugriff also auf diesen Takt
aufsynchronisieren.
Der 6521 hat keine internen Timer, folglich muss der Takt nicht konstant
sein. Aber alle internen Abläufe hängen davon ab. Es würde in diesem
Fall also ausreichen, ausserhalb der Zugriffe mehr oder weniger
reglmässig Pulse drauf zu legen.
Den 65C21 habe ich mit einem Atmel AVR ansprechen können, auch ohne
konstantem Takt.
Der HD63B40 ist ein Timer.
Hier wird der Takt für den Timer gebraucht.
Dein µC verfügt sowohl über programmierbare I/O-Ports als auch Timer -
warum willst Du externe PIA und Timer an Deinen µC anschließen?
Was bezweckst Du damit?
Rainer S. schrieb:> Den 65C21 habe ich mit einem Atmel AVR ansprechen können, auch ohne> konstantem Takt.
Yep, hatte ich nachgereicht. Aber für Interrupts und CA/CB-Funktionen
könnte ab und zu mal ein Takt nötig sein.
Der Sinn erschliesst sich mir aber auch nicht.
Mehrere PIA und Timer sind in einem System schon vorhanden.
Das System wird vom Hersteller nicht mehr gewartet/unterstützt.
Die PIA's und Timer sollen übernommen werden werden durch Austausch
einer Prozessorkarte.
Man könnte die PIA's und Timer auch ersetzen/erneuern, ja.
Was spricht gegen 68xx Controller? Die tun sich damit naheliegenderweise
leichter. Ob/Welche Controller auf 68xxx Basis auch noch den E Takt
unterstützen weiss ich nicht.
A. K. schrieb:> Was spricht gegen 68xx Controller?
Die komplette Einarbeitung in den Controller. 2 Controller zu
programmieren ist eigentlich schon genug (AVR, STM32).
Und wenn aufgrund des Bus-Aufbaus des Systems die interne Peripherie des
STM32 nicht durchgereicht werden kann, dann scheint mir der Z8536 CIO
Baustein sinnvoller zu sein (aka Z08536). Der sollte beide Bausteine
voll abdecken können, ist aber im Interfacing angenehmer.
Rainer S. schrieb:> Man könnte die PIA's und Timer auch ersetzen/erneuern, ja.
Das ist vermutlich sogar weniger Aufwand als der Versuch, das alte
68xx-System nachzubilden; die Software muss eh' komplett neugeschrieben
werden (oder soll auf dem STM32 ein 68xx-Emulator laufen, der den
bisherigen Maschinencode 1:1 abarbeitet? Schnell genug wäre er dafür).
Die Software ist so gut wie fertig.
Der PIA funktioniert mit dem AVR.
Der Timerbaustein halt (noch) nicht.
Schwierig ist hier der konstante Takt, 8 MHz.
Mit dem Timerbaustein wird eine A/D Wandlung per U/F Wandler
durchgeführt.
Alternativ könnte ich eine eigene A/D Karte bauen.
Rainer S. schrieb:> Schwierig ist hier der konstante Takt, 8 MHz.
U/F klingt nicht nach konstanten 8MHz.
Ein Problem beim 6840 (unter vielen Namen) ist, wie nicht anders zu
erwarten, dass externe Eingänge mit E synchronisiert werden. Allerdings
liegt E beim 63B40 bei maximal 2MHz, minimal 100kHz. 8MHz sind da nicht
drin.
8MHz beträgt der maximale Takt des /8 Prescalers eines der
Counter/Timer. In diesem Fall wird der Ausgang des Prescalers mit E
synchronisiert. Die Anforderungen an E sind bei Einsatz nur als Counter
geringer, auch was Präzision von Frequenz und Jitter angeht.
Lösbar ist das schon. In Hardware wie in Software. Mit Hardware kann man
ein 68xx Businterface bauen, das einen Buszugriff des STM32 auf den
festen E-Takt des 68xx Busses synchronisiert. Auch in Software sollte es
möglich sein, wobei man dann aber recht harte Zeitbedingungen einhalten
muss.
Die Frage aller Fragen ist aber, inwieweit es sich lohnt, bestehende
Peripherie mit Hängen und Würgen einzubeziehen, die ein STM32 fix und
fertig mitbringt. A/D hat der STM32 schon an Bord, also wenn dessen
Qualität ausreicht... Und ein externer A/D an SPI oder ein bestehender
U/F an einem internen Timer ist auch kein Hexenwerk.
Rainer S. schrieb:> Schwierig ist hier der konstante Takt, 8 MHz.
Wieso? Der STM32 hat doch Timer, die sowas per Hardware erzeugen können.
Die Software muss sich dann zum Erzeugen des Bus R/W Zyklus nur noch mit
diesem per HW erzeugten "E"-Takt synchronisieren.
A. K. schrieb:> Diese 8 MHz sind nicht der E Takt.
Ok, dann um so mehr die verwunderte Frage von mir, was an der Erzeugung
eines konstanten 8 MHz Takts mit dem STM32 so schwierig sein soll? Wenn
der Byszyklus darauf noch nicht mal synchronisiert werden muss...
Thomas E. schrieb:> Ok, dann um so mehr die verwunderte Frage von mir, was an der Erzeugung> eines konstanten 8 MHz Takts mit dem STM32 so schwierig sein soll? Wenn> der Byszyklus darauf noch nicht mal synchronisiert werden muss...
Die 8 MHz sind möglicherweise ein Ablenkungsmanöver des Fragestellers.
Er schreibt, dass ein ADC per U/F-Wandler dran hängt. Es also eigentlich
um Frequenzmessung geht. Dafür braucht man einen Zähler und eine
Zeitreferenz. Als Zähler dient offenbar der Baustein. Möglicherweise
fungiert ein zweiter Festfrequenztimer als Gate für den Zähler.
Thomas E. schrieb:> Wenn> der Byszyklus darauf noch nicht mal synchronisiert werden muss...
Doch, der Buszyklus sollte dann schon darauf synchronisiert werden.
Der Ursprüngliche 63B09P Prozessor wird mit 8 MHz betrieben, so wie es
auf der Platine aussieht. Auf dem Quarz steht '8000 P1 10'. Im
Datenblatt steht aber 0,5 - 3 MHz. Also kann das evtl. kein 8 MHz Quartz
sein. Je langsamer umso besser. Könnte man mal nachmessen. Habe leider
kein Frequenzmessgerät.
A. K. schrieb:> Möglicherweise> fungiert ein zweiter Festfrequenztimer als Gate für den Zähler.
Nein, es wird der Bustakt genommen, das ist ziemlich sicher.
Rainer S. schrieb:> Der Ursprüngliche 63B09P Prozessor wird mit 8 MHz betrieben, so wie es> auf der Platine aussieht. Auf dem Quarz steht '8000 P1 10'. Im> Datenblatt steht aber 0,5 - 3 MHz. Also kann das evtl. kein 8 MHz Quartz> sein.
Ist der Quarz denn direkt am Prozessor angeschlossen? Vielleicht ist ja
noch ein Frequenzteiler im Spiel.
Edit: habe gerade im Internet ein Datenblatt vom Motorola 6809
aufgestöbert - da steht, daß die Quarzfrequenz 4xE ist, Dein 8 MHz Quarz
dürfte dann also zu 2 MHz Bus-Takt führen!
Rainer S. schrieb:> Der Ursprüngliche 63B09P Prozessor wird mit 8 MHz betrieben,
Nur der Quarzoszillator. Der Prozessortakt ist 1/4 davon.
Für M68xx/HD63xx gilt: Nix=1MHz, A=1,5MHz, B=2MHz, C=3MHz.
Die 65xx haben eine andere Nomenklatur, aber den gleichen Bus.
>> fungiert ein zweiter Festfrequenztimer als Gate für den Zähler.>> Nein, es wird der Bustakt genommen, das ist ziemlich sicher.
Da der Bustakt eine feste Frequenz hat, ist das kein Widerspruch.