-         
RSS-Feed anzeigen

Searcher

Steppender Linienfolger - SW soll HW Ressourcen frei machen

Bewerten
Stöhn. Ich schaffe es nicht, meinen Linienfolger mit gegenwärtigem Liniensensor einen 90° Knick ohne Tricks fahren zu lassen. Schneide ich von dem Linienknick außen ein kleine Ecke weg, klappt es. Ich möchte aber, daß er auch ohne Streckenmanipulation die, ja noch nicht einmal Hürde schafft.

Dazu, dachte ich, löte ich einfach noch eine CNY70 Reflexlichtschranke irgendwo dran. Die soll merken, wenn keine Linie mehr da ist. Das dann auch noch zu modifizierende Fahrprogramm soll dann nach ihr suchen.

Allerdings werden mir die freien Prozessorpins schon wieder knapp. Funktionsmäßig gehört der CNY ja an den Liniensensortiny, an dem im Augenblick nur noch der Reset Pin frei ist. Also was jetzt? Lötkolben erstmal wieder ausgeschaltet und nach Anschlußmöglichkeit gesucht.

Drei Pins werden allein für die serielle Datenübertragung per Zwangslaufverfahren zum Hauptprozessor verbraten. Bevor ich da einen ATTiny24 einbaue, der auch die differentielle Messung kann und ein paar Pins mehr hat, versuche ich mal noch eine der drei Leitungen einzusparen. Günstiger Effekt: Nicht nur am Tiny sondern auch am ATMega88A würde ein Pin frei. Könnte auch für den RC5-Tiny benutzt werden - nochmal zwei Pins frei.

Gibt es bisher drei Leitungen, die Datenleitung vom Tiny zum Mega, die Signalleitung vom Mega zum Tiny und die Signalleitung vom Tiny zum Mega, sollen es jetzt nur zwei Leitungen werden. Jede Leitung kann Daten- oder Signalleitung sein, abhängig vom Pegel des übertragenden Bits.

Im inaktiven Zustand sind die vier Pins, zwei auf der Tiny-Seite und zwei auf der Mega-Seite als Input mit aktiviertem Pullup konfiguriert. Die beiden Leitungen haben also einen hochohmigen HIGH Pegel.
Code:
1. Soll ein HIGH-Bit vom Tiny zum Mega übertragen werden, zieht der Tiny die Leitung 1 auf LOW.
    Der Mega erkennt Leitung 1 als LOW und hat damit schon ein Bit (eine "1") empfangen.
2. Als Quittung zieht der Mega die Leitung 2 auf LOW.
3. Der Tiny nimmt das Datenbit weg indem der Leitung 1 "öffnet" -> die Leitung 1 bekommt hochohmiges HIGH Potential
4. Der Mega macht daraufhin das Gleiche mit der Leitung 2 -> die Leitung 2 bekommt auch wieder hochohmiges HIGH Potential

1. Nun kann der Tiny zB ein LOW Bit anlegen. Für ein LOW Bit nimmt er nicht Leitung 1, sondern Leitung 2.
    Der Mega erkennt die Leitung 2 als LOW und hat damit ein LOW-Bit (eine "0") empfangen.
2. Er legt nun Leitung 1 auf LOW als Quittung
3. Tiny "öffnet" Leitung 2
usw.
Übertragen werden 12 Bit, 4 als Funktionsadresse und 8 Bit als Funktionswert.

Zwangslaufverfahren damit zB der Mega88 jederzeit die Übertragung unterbrechen und wieder aufnehmen kann. Es geht sehr schnell und man ist nicht zB wie beim USART auf übereinstimmenden Takt angewiesen.

Schätzungsweise geht das Zweileitungsverfahren etwas langsamer als vorher, da die Pins zusätzlich zwischen Input und Output umgeschaltet werden müssen.

Vielleicht gibt es schon so eine Übertragung - egal es macht Spaß so etwas auszutüfteln und sein eigenes Rad zu entwickeln I2C hatte ich ja schon beim reinen RC-Steppervehikel verworfen. Bei viel Zeit komme ich vielleicht nochmal drauf zurück und untersuche, ob es hier brauchbar ist.

Senderoutine in ASM ist schon fertig ... geschrieben - nicht getestet und Gegenseite kommt auch bald dran. Kann nur hoffen, daß ich da keinen fatalen Denkfehler habe. Bitte mich unbedingt drauf aufmerksam machen

Gruß
Searcher

"Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei Twitter speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei Facebook speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei Mister Wong speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei YiGG.de speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei Google speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei del.icio.us speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei Webnews speichern "Steppender Linienfolger - SW soll HW Ressourcen frei machen" bei My Yahoo speichern

Aktualisiert: 25.10.2015 um 16:37 von Searcher

Stichworte: - Stichworte bearbeiten
Kategorien
Kategorielos

Kommentare

  1. Avatar von witkatz
    Ich mach dich nur drauf aufmerksam, dass ich deine Idee, eine Art asynchrones Handshakeverfahren zur Datenübertragung zu nutzen unbedingt interessant finde und mit Zuversicht auf positive Errfahrungsberichte warte.

    Gruß
    witkatz
  2. Avatar von Searcher
    Mittlerweile habe ich auch die Empfangsseite der zweiadrigen seriellen Übertragung fertig geschrieben. Leider noch nichts Positives zu berichten. Geht natürlich nicht ABER positiv bei der Fehlersuche ist, daß man auch Fehler findet, die man gar nicht gesucht hat

    Gruß
    Searcher