Kann man den Peripheriebaustein 65C21 am STM32 betreiben mittels Businterface? http://www.westerndesigncenter.com/wdc/w65c21-chip.cfm Bzw. den HD63B40 (gleiches Businterface). R/W, Takt, /CS, Register select (Adressbus) http://docs-europe.electrocomponents.com/webdocs/001d/0900766b8001d373.pdf
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Rainer S. schrieb: > Man könnte die PIA's und Timer auch ersetzen/erneuern, ja. Wenn der STM32 gesetzt ist, wär das wohl sinnvoller.
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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!
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.