CPU MC6809EP / HD6309EP

  • Langsam bin ich echt am verzweifeln, vielleicht kann mir wer einen Tip geben, "auf die Sprünge helfen"?


    Mein Testplatinen mit dem HD6309P laufen tadellos.

    Ich habe da einen Testcode der seit Tagen fehlerfrei läuft.

    Diese CPU ist wirklich sehr unproblematisch.

    Es ist ein C TYP, also für 3 MHz (12 MHz Input).

    Die CPU nimmt alles von 1MHz bis 4MHz.


    Der Vollständigkeit halber wollte ich nun auch den Bruder HD6309EP zum laufen kriegen.

    Es ist exakt dieselbe Schaltung bis auf den Takt natürlich.

    Diese verflixte CPU will aber partout nicht laufen!!!


    Es ist nicht so, dass ich es wirklich BRAUCHEN würde, da die P ja läuft, aber es lässt mir einfach keine Ruhe!


    ===============


    Vielleicht habe ich ja etwas total missverstanden?

    Eigentlich dachte ich, der Unterschied zwischen P und EP liegt rein am Takt?


    Während die P nur einen Quarz braucht oder ein Taktsignal (beides läuft hier perfekt), muss man bei der EP den Quadratur Takt selbst generieren.


    Die Taktgenerierung mache ich mit einem GAL.

    Keine große Sache, ich teile die Grundfrequenz durch 4 und generiere zwei Signale (Q und E) die 90° verschoben sind.


    Ein Zweizeiler für meinen GAL.

    Am Oszi sieht das auch perfekt aus, nicht anders als das Signal das die P selbst produziert.


    In meiner Verzweiflung habe ich auch schon probiert die vorgeschlagene Schaltung mit zwei JK Flip Flops zu verwenden.

    Allerdings ist da kein Unterschied zu meiner GAL Lösung ...


    --------------


    Die Hardware ist sooo simpel, dass ich mir nicht erklären kann, was ich da falsch mach???


    • ein Mainboard mit: Clock, Reset, RAM, ROM IO (LED)
    • ein CPU Board mit 6309P und einem 7400 (läuft tadellos!)
    • ein CPU Board mit 6309EP und einem GAL (läuft NICHT)


    Die CPU Boards sind natürlich optional, also nur das eine ODER das andere (aufgesteckt am Mainboard).



    Hat einer von euch eine Idee wonach ich noch schauen kann?


    Könnte die CPU defekt sein?

    Ich hab eh noch ein paar bestellt, sind aber erst am Weg hierher ...


    Die anderen CPU Signale an dem EP sind laut Datenblatt unproblematisch.

    Ich hab die so angeschlossen, wie es andere gemacht haben in diversen 6309EP Projekten.

  • Natürlich könnte die CPU defekt sein, aber vermutlich ist es eher ein Detail. Der Unterschied ist auch mitnichten nur der Takt, es gibt auch ein paar Signale, die es an der einen CPU gibt und an der anderen nicht -- und umgekehrt.


    - Q und E vertauscht?

    - Frequenz zu hoch?

    - TSC low?

    - /HALT high?

  • - Q und E vertauscht?

    - Frequenz zu hoch?

    - TSC low?

    - /HALT high?


    Q und E passen. Signale schauen richtig aus.


    Frequenz ist niedrig, habe aber schon jede probiert.


    TSC liegt auf Masse.


    NMI, IRQ, FIRQ und HALT haben Pullup.


    Pullup Widerstände haben 3,3K.

    So nach Gefühl ...

    Ich habe im Netz schon alles gesehen, von 1K bis 10K ... :D

  • ei der Scopetrex kann man auch wahlweise 6809 oder 6809E bestücken: https://github.com/schlae/scop…blob/master/Scopetrex.pdf

    Wahlweise?

    Aha!

    "Bei EP einfach folgende Teile Bestücken"!!


    Okay, - mir ist nicht klar wie das gehen soll??


    Ja die JK-FF Sache, genau wie bei mir ...


    Im Datenblatt steht was von "Q ist TTL kompatibel und E nicht, das muss CMOS Pegel haben".

    Könnte das mein Problem sein?

    Ist das Signal vom GAL nicht "gut genug" für den E?

  • Hier sieht man schön die unterschiedliche Beschaltung (u.a. Pins 33 und 36 )

    https://www.cs.drexel.edu/~bls96/6809sbc/doc/6809sbcv2.pdf

    Da liegen FIRQ, NMI und HALT einfach auf +, ganz ohne Widerstand ... okay, wenn das auch geht spare ich mir das Widerstandsarray. :)

  • Im Datenblatt steht was von "Q ist TTL kompatibel und E nicht, das muss CMOS Pegel haben".

    Könnte das mein Problem sein?

    Ist das Signal vom GAL nicht "gut genug" für den E?


    Könnte durchaus sein. Im des Datenblatt des 63B09/63C09 steht, dass Q und E eine Spannung V(IH) von mindestens 3,0 Volt haben müssen, um als high erkannt zu werden . Bei normalen Logic-Eingängen reichen dagegen schon 2,0 Volt. Vielleicht helfen pull-ups an Q und E.

  • Die Pins 33 und 36 sind beim 6809 Eingänge und beim 6809E Ausgänge !

    Bei mir hat der 6909E damals deshalb nicht funktioniert, weil ich die Pins 33 und 36 versehentlich auf +5 Volt gelegt hatte.

    Das hat der Prozessor nicht überlebt. :(

  • Die Pins 33 und 36 sind beim 6809 Eingänge und beim 6809E Ausgänge !

    Bei mir hat der 6909E damals deshalb nicht funktioniert, weil ich die Pins 33 und 36 versehentlich auf +5 Volt gelegt hatte.

    Das hat der Prozessor nicht überlebt. :(

    Pin 33 und 36 sind mir bekannt,

    Diese Pins habe ich einfach offen gelassen.

    Machen andere auch so, sollte kein Problem sein.



    Die CPU wird nicht warm (die EP).

    Selbst beim übertakten wird sie kein bisschen warm (die funktionierende "P").


    Die "EP" CPU macht irgendwas.

    Nur nicht das richtige.

    Der ROM Inhalt ist aber exakt derselbe wie beim P, wo es läuft.

    Zyklisch, triggerbar, so 2,7KHz.

    Sehr seltsam ...



    Vielleicht ist es jetzt der richtige Zeitpunkt, mich mal intensiv mit dem Logic Analyzer auseinander zu setzen?

    Aber dazu müsste ich mir erst mal Punkte machen, wo ich die Klips sauber befestigen kann.

    Bisher bin ich immer ganz gut ohne LA ausgekommen.


    Oder ich besorge mir so IC Klips ...



    Könnte durchaus sein. Im des Datenblatt des 63B09/63C09 steht, dass Q und E eine Spannung V(IH) von mindestens 3,0 Volt haben müssen, um als high erkannt zu werden . Bei normalen Logic-Eingängen reichen dagegen schon 2,0 Volt. Vielleicht helfen pull-ups an Q und E.

    Pullup bringt nichts.


    Am Oszi sieht man ein wunderschönes Rechteck Signal, das der GAL produziert.

    Exakt ein MHz.

    Knapp über 4V SS, also wirklich tadellos.


    Jedenfalls viiiiel besser als das ,was der Oszillator liefert ... :D

  • Bei der Scopetrex kann man auch wahlweise 6809 oder 6809E bestücken: https://github.com/schlae/scop…blob/master/Scopetrex.pdf

    Das ist voll genial.


    Jetzt verstehe ich das erst richtig.

    Man bestückt ENTWEDER quarz usw. ODER die JK FlipFlop Sache.


    Das werde ich bei der nächsten Revision auch so machen.


    Wenn das Ding nur endlich richtig laufen würde!

    Ich wart mal ab, vielleicht hat wirklich nur diese CPU eine Macke.

  • Boah es funktioniert!!!


    Der EP lässt sich sogar noch weiter übertakten als der P.

    Ist ein B Typ, also 2MHz Typ.

    Läuft jetzt seit einer Stunde mit 3MHz.

    Unglaublich.


    Wenn die C Typen da sind, teste ich die mal mit 4MHz.


    =============


    Die Phasenverschiebung war -90° statt +90°


    Ich hab den zweiten Kanal am Oszi benutzt.

    Da hat man gesehen dass Q nachläuft statt E.


    Dabei hat WinSIM das ganz anders angzeigt.

    So ein Dreckstool!!

    Ich habe das umgedreht im PLD File und schon läuft es.

    Hurra! :)


    Wenn man jetzt WinSIM aufruft, zeigt er es falsch an:



    Das Tool ist ja eine Katastrophe!!

    Total unzuverlässlich!!

    Atmel!!

  • Universal CPU Platine:

    • HD6309P - externe Taktung
    • HD6309EP - externe Taktung
    • HD6309EP - mit Quarz


    Es sind zwei JEDEC, eines für den P und eines für den EP.



    Beim P wird nichts weiter gemacht (Quarz und C1/C2 NICHT bestücken).


    Beim EP werden die beiden Brücken (-P-) geöffnet, das sind Pull-Up die man nicht benötigt beim P.


    Beim EP - extern getaktet wird sonst nichts weiter gemacht (Quarz und C1/C2 NICHT bestücken).


    Beim EP - intern getaktet werden der Quarz und C1/C2 bestückt sowie die Brücken E-CLK geöffnet.



     

  • Das P / EP Kombiboard ist jetzt auch da.


    Damit laufen beide CPU Typen (P und EP) mit nur einem Board.


    Zudem kann man hier optional einen Quarz verwenden statt dem externen Takt.

    Natürlich nur bei dem P Typen, der EP unterstützt nur externen Takt.