Forum: Mikrocontroller und Digitale Elektronik M32C und #HOLD


von Bernd Schubart (Gast)


Lesenswert?

Hallo,

ich benutze einen M32C83 und habe ein kleines Problem:

Ich betreibe ihn im Memory Expansion Mode, und habe noch einen weiteren
Controller am Bus des uC hängen.
Um dem anderen Controller den Bus zu überlassen, muss ich den Bus des
M32C in Tristate versetzen... ich habe nun einfach einen Port-Pin des
M32C mit #HOLD verbunden (+Pullup), und setze ihn in der Software auf
Low. Das geht auch soweit, nur steht dann der komplette
Mikrocontroller, er scheint dann gar nix mehr zu machen, auch nichts
internes.
Es scheint auch so, dass der Bus nicht in Tristate geht, da der andere
Controller den Bus nicht treiben kann...

Hat jemand eine Idee woran das liegen könnte?

von MooseC (Gast)


Lesenswert?

>>ich habe nun einfach einen Port-Pin des
M32C mit #HOLD verbunden (+Pullup), und setze ihn in der Software auf
Low

sehr kritisch! Damit schickst Du den M32C dauerhaft in die externe
Buszuteilungsmode. Wie soll er denn sich selbst wieder den Bus
zuteilen, wenn sein Programm steht. Der /HOLD Eingang muß von der
Hardware auf low gezogen werden, die den Bus erhalten soll, also Dein
2. Controller. Der M32C antwortet mit den /HLDA = low als Bestätigung,
das der Bus nun frei ist. Der 2. Controller muß den Bus dann auch
irgendwann wieder freigeben.
Die Peripherie im M32 bleibt aktiv, nur der Watchdog steht solange.
Auch die Bus-Clock BCLK läuft weiter.
Allerdings können Inetrrupts von der I/O (UART etc) nicht verarbeitet
werden, solange der M32C steht.

MooseC

von Bernd Schubart (Gast)


Lesenswert?

Achso.
Da habe ich wohl grundsätzlich etwas falsch verstanden.
Ich dachte, durch den #HOLD Pin wird lediglich der Bus freigegeben,
aber man kann im Programm noch andere Dinge machen, die eben NICHT den
Bus benutzen.
Aber wenn Du sagst dass dann das Programm steht, ists natürlich
logisch. Dann muss ich das anders machen, danke.

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
Noch kein Account? Hier anmelden.