Forum: Mikrocontroller und Digitale Elektronik [ M16C ] zu viele mögliche Fehlerquellen ...


von *USER* (Gast)


Angehängte Dateien:

Lesenswert?

Ich muss schon wieder reinquatschen mit meinen M16C-Problemen ;o)
Also ich habe eine einfache Midi-Ausgabe über UART0 geschrieben und das
funktioniert nicht so wie es soll ... es kommt zwar definitiv Signal
aus dem UART (LED an die Midibuchse drangehalten) aber am Synth selber
kommt nicht wirklich was passendes an, womit er etwas anfangen kann. Da
ich nicht einmal ein Oszi habe wirds mit der Fehleranalyse jetzt
schwer. Vielleicht fällt euch ja was ein ...

ausprobiert über KD30 Debugger, Code oben im Anhang

Was könnte falsche sein?

Eingestellte UART-Übertragungsgeschwindigkeit ?
sonstige UART-Einstellungen oder Programnmierfehler ?
Kein abgeschirmtes Kabel (ca 30-40cm) ?
Signal zu schwach ? (TXD nur mit 220 Ohm-Widerstand direkt an der
Buchse)

Sorry daß ich soviel Frage aber mit dem M16C hat mans mangels
Bespielapplikationen sowie Programmen und Manuals, die wenn vorhanden
Fehler enthalten, echt nicht leicht als Einsteiger ;o)

Greetz
Chris

von Harald Hermenau (Gast)


Lesenswert?

Hallo,
Du hast vergessen, das Port für den UART zu initialisieren. Nach einem
Reset sind alle Ports auf "Eingang" initialisiert. Für den UART0 muß
Port6 Pin 2 (RXD0) als Eingng und Pin 3 (TXD0) auf Ausgang
initialisiert werden. Dabei aber aufpassen, das die Einstellungen für
RXD1 und TXD1 nicht verändert werden (Monitor!!!).
Was Dokumentationen und Beispiele anbelangt, gibt es einiges im
Internet zu finden. mal nach M16C googeln.

Tschüß

von *USER* (Gast)


Lesenswert?

Das wars leider nicht ;o(
Weitere Vorschläge ?

Mir ist aufgefallen daß eine Standard-LED (20mA) direkt am Signal über
die Widerstände nur sehr sehr schwach aufleuchtet ... Signal vielleicht
doch zu schwach ? Mit was für einer einfachen externen Beschaltung
bekomme ich das hin ?

von Harald Hermenau (Gast)


Lesenswert?

Hallo,

ich weiß nicht welche Baudrate Du wünschst. Mit dem Wert "31" kommst
Du auf eine Baudrate von 31250bps.
Berechnet wird der Wert U0BRG wie folgt:
(fclock  Vorteiler  16 / Baudrate) - 1
fclock wird wohl 16MHz sein.
Der Vorteiler wird mit den Bits 0 und 1 im Register U0C0 eingestellt.
Der Faktor 16 ist in der Hardware drinn.
Für z.B 19200 bps wird 16MHz/1/16/19200 - 1 = 51

Ein Stolperstein liegt noch in der Taktgenerierung. Nochmal genau im
Datenblatt nachsehen

Tschüß

von *USER* (Gast)


Lesenswert?

Hallo
Ja, genau auf 31250 Baud wollte ich ja hinaus - das stimmt schon.
Irgendwo in der sect30.inc ist auch die Clockrate definiert - da ist
allerdings kein Teiler eingestellt - auch wenn es laut einer
Kurzbeschreibung von KD30 so sein sollte. Hab es auch schon mal so
probiert, daß ich davon ausgegangen bin, daß der Teiler 8 aktiviert ist
... hat aber auch nicht funktioniert ...

von thkais (Gast)


Lesenswert?

Und wenn Du mal versuchst, Datenpakete an den PC zu senden? Dann
könntest Du schauen, ob etwas ankommt und was ankommt.

von Harald Hermenau (Gast)


Lesenswert?

Hallo,
ich habe das Programm mal ausprobiert, mit 9600 bps und die daten auf
das PC Hyperterminal geschickt. Es funktioniert alles.
Das beste ist, Du schickst mir mal alle notwendigen Dateien (also
ncr0.a30 und die sect30.inc und die sfr62.h). Außerdem müßte ich mal
wissen, mit welcher Monitor-Version Du arbeitest.

Tschüß

von *USER* (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Oben im ZIP die 3 Files
Verwenden tu ich KD30 V.3.00 Release

Habe mir jetzt mal nen 7417N besorgt um den Pegel ein bisschen
anzuheben ... probier das heute Nachmittag mal aus obs daran liegen
könnte ...

Vielen Dank für die Bemühungen

Chris

von *USER* (Gast)


Lesenswert?

oh nein - ich Trottel !
In meiner ganzen Sorge ums Programm und irgendwelche Pegel habe ich
nicht bemerkt, daß ich + und Signal an der Midi-Buche vertauscht habe.
Das hat man davon wenn man sich im Internet ne Buchsenbelegung
raussucht ohne noch einmal eine Zweite zum Vergleich anzusehen ...

Trotzdem noch mal vielen Dank an die, die versucht haben, zu helfen
...

Jetzt beschäftige ich mich noch mit dem Timer und dem LCD-Display und
hoffe, daß ich dann in der Lage bin einen ersten Mini-Sequenzer
aufzubauen ;o)

Sorry nochmal ...

Chris

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.