Eigene Firmware auf Cardecoder/Blackbox, Sourcecodesammlung

  • Ich glaub ich hab da noch nen Fehler bei den 3 MOSFETs für die Motorsteuerung. So wie ich das im Schaltplan habe müsste


    bei 17V angelegt
    n-MOSFET T3 sperrt
    n-MOSFET IC sperrt
    p-MOSFET IC sperrt
    -> Motor rattert gleich los


    Das passt doch nicht. Oder es ist dirket nach Aufstart des MEGA8 ein Signal an Pin 13 oder 14.


    Hat jemand von Euch nen Tip?

  • ebay Werbung
  • Warum sollte der Motor losrattern, wenn alle Fets sperren ?


    Das mit der Spannungsversorgung kann so nicht hinkommen.


    Der Motor wird nach diesem Schaltplan über Widerstände mit zusammen 11,8 k Ohm versorgt. Das sind bei 17V rund 1,5 mA.


    MfG
    SH

  • Der erste Schaltplan ist nun Fertig und die Dateien sind alle aktualisiert.


    Schltplan-V1.sch
    Nicht Wundern wenn es etwas konfus aussieht. Die Ausrichtung der Bauteile entspricht der Einfachheit halber in dieser Version denen auf der Platine.
    Nun geht es an die schalttechnische und optische Aufbereitung ;)


    Alles immer zusammen Hier

  • Danke slotbaer, danke MiniSlot.
    Habe meinen Schaltplan Eingangsseitig aktualisiert. Erkenne soweit keinen Unterschied mehr bis auf die fehlende LED Ansteuerung bei mir. Ausserdem ist bei meinem Decoder der AREF pin mit VCC verbunden. Kannst du das bei dir noch einmal prüfen MiniSlot.


    Ansonsten denke ich jetzt die Motoransteuerung halbwegs verstanden zu haben.


    Pin 13 Bremse
    Pin 14 Gas
    Pin 15 IR LED
    Pin 32 Signaleingang


    Wobei ich mir bei Pin 32 noch nicht ganz sicher bin wie es läuft. Bei anliegender Spannung ist T4 durchgeschaltet. Pin 32 wird auf Masse gelegt. Bei kurzem Nullpegel sperrt T8 damit sich die C's nicht über den Motor entladen. C3, C4, C5 halten die Versorgung kurzfristig aufrecht.
    Durch die räumliche Nähe gehe ich für Pin 32 mal von C5 aus. An Pin 32 ist weil T4 nicht auf Masse gezogen ist eine Spannung anliegen solange die Cs nicht entladen sind.


    Irgendwer anderer Meinung?

  • MiniSlot


    Da scheint ein Punkt bei der Verbindung von ARef und AVcc zu fehlen.


    Ohne diesen Punkt hängt Reset in der Luft.


    Es gibt drei "Versorgungssignale"


    GND (Masse) 5V hinter dem Transistor mit der Zehnerdiode in der Basis und der Spannung für den Motor Vdd, oder 18V oder 15V je nach belieben.


    Wenn ihr bei diesen Signalen, die Linien nur für Verbindungen verwendet, die sehr kurz sind und keine anderen Signale schneiden, und ansonsten ihre Symbole verwendet (in der Supply Library von Eagle) wird der Schaltplan schon mal deutlich übersichtlicher.


    MfG
    SH

  • Danke brumbaer
    Die Verbindung AREV und AVCC fehlt noch.
    Was sich unter dem Chip an Leiterbahnen und Durchkontaktierungen befindet kann ich nicht sehen und aller Verbindungen habe ich nicht Ausgemessen :(
    Hab halt am lebenden Objekt gearbeitet und noch keinen Decoder seziert (wollte halt keinen funktionierenden zerlegen.
    Warum der Schaltplan (noch) so aussieht hab ich ja Angemerkt.
    Nun geht es halt an dir Neuverteilung und Neuausrichtung der Bauteile und so kommt es dann auch zur Übersichtlichkeit.

  • ebay Werbung
  • Es sind noch ein paar Fehler drin, die eine Plausibilitätsprüfung auch zu Tage fördert.


    Wenn ihr den Schaltplan in eine ordentliche, nach Funktion gegliederte Form bringt, kann man die leicht finden.


    MfG
    SH

  • Hi,
    bin ganz neu im Forum, weil auch ganz neu im digitalen Carrea und eigentlich auch erst seit kurzen ernsthafter beim Carrera-Thema, aber schon seid langem in der Microcontrollerwelt unterwegs.
    Ich finde soltbärs eierlegendewollmichsauAnsatz ganz interessant: wenn man erstmal die routinen für slotprotokoll decodieren/senden, Ir-erkennung und speedregelung per pwm mit motoranpassung parat hat, ist der rest ja nur noch highlevel programmierung. Da kann man dann ja nach Lust und Laune vom carcontroller über die Startampel bis zur eigenen BB alles recht einfach zusammenprogrammieren. IR-Kennung senden und pwm für die Bremsen ist ja nur ein paar Register setzen.
    Wenn mir meine 2 Kinder und der Job in den nächsten Tagen was Zeit lassen, werde ich mich mal an die Manchesterdecodierung fürs Slot-Protokoll wagen, erstmal ohne Auto dafür mit Display und RS232 auf nem Mega32. Da debuggts sich doch wesentlich einfacher.
    Grüße,
    Klaus
    P.S. die 10k in Reihe zum Motor hätten mich auch sehr gewundert.

  • Ich denke du meinst die ERC Prüfung. Diese gibt mir 10 Warnungen
    ok 5x Fehlt der Wert für Kondensatoren (kann ich halt nicht messen)
    Warum er 3x schreibt "N$xx überlappt Pin" weis ich nicht. Die Transistoren sind jeweils normal mittels Wire mit den anderen Bauteilen verbunden.
    Und "AVCC Verbunden verbunden mit VCC" scheint auch zu passen wenn ich pin 4 und 6 gegen 18 Durchmesse.
    Ok den Rahmen vernachlässige ich mal.


    Von Microcontrollern hab ich leider keine Ahnung und den Rest hab ich halt ersteinmal aus der Analyse der Platinenlayout herausgezogen.

  • Jaja Asche auf mein Haupt ;-). Und wenn wir grad dabei sind der Elko ist in seiner Ausrichtung auch suboptimal. Habe jetzt auch noch AVCC mit VCC Pin verbunden und ein zwei Junctions dazugepackt.


    Jetzt siehts aus meiner Sicht schon ganz gut aus. Ich warte mal mit dem Update auf der ersten Seite bis ich noch ein wenig schöner sortiert habe.


    Ich hab ja auch noch ein paar Tage Zeit bis der Reichelt die Bauteile zusammengesammelt und verschickt hat ;-). Und mein Debugger dürfte Hongkong auch noch nicht verlassen haben.


    Btw. weiss jemand warum mein Elko sich nicht mit dem Netz verbinden lässt? Egal was ich mache die wires docken nicht an.

    Einmal editiert, zuletzt von rufus ()

  • MiniSlot,
    nein ich meine eine Überprüfung an Hand des Sinns einer Schaltung.


    T1 und T2 bilden eine halbe H-Brücke und man sollte sie auch entsprechend zeichnen.
    Da der PMOS mit einem Potential das negativ zu dem am Source Pin schaltet und jede Spannung, die der Prozessor liefert kleiner ist als die Source Spannung am PMOS, muss eine weitere Schaltstufe ob Transistor oder Fet her um die Pegelwandlung vor zu nehmen - Das erklärt die Notwendigkeit von T3 und legt seine Funktion fest und ermöglicht es zu Überprüfen, ob der Schaltplan, so wie man ihn gezeichnet hat diese Funktion erfüllt.


    Der Prozessor benötigt die Daten von den Schienen. Die Spannung an den Schienen ist so hoch, dass wenn man sie direkt auf den Prozessor gäbe, zumindest der Eingang zerstört würde. Also muss ein Pegelwandler her.
    R6 - R8 und T4 bilden den Pegelwandler.


    Offensichtlich ist das ein einfacher Transistor , der als Schalter verwendet wird. Dadurch ergibt sich, dass R8 auf der nicht Transistorseite mit sehr hoher Wahrscheinlichkeit mit dem positiven Potential der Versorgungsspannung des Prozessors verbunden sein wird.


    Ebenso folgt aus dieser Aufgabenstellung, dass, R6 und R7 einen Spannungsteiler bilden. Es folgt daraus auch dass, dass R7 an der nicht Transistorseite mit dem negativen Potential der Versorgungsspannung des Prozessors verbunden sein wird - und mit dem Emitter des Transistors


    Das ganze System muss ein gemeinsames Bezugspotential haben, das man für gewöhnlich mit GND, Masse oder 0V bezeichnet.


    Da von der Schiene nur zwei Signale kommen und eins davon sich ständig ändert , liegt die Vermutung nahe, dass dies das Bezugspotential ist (Pro X macht es allerdings anders). Die Vermutung wird dadurch belegt, dass der Spannungsteiler vor dem Transistor dieses Potential auch für das negative Potential der Prozessorversorgungsspannung verwendet.


    Dadurch ergibt sich, dass irgendwo eine Verbindung vom Emitter von T4 zum Signalzweig an R7 fehlt.


    Das meine ich mit Plausibiltätsprüfung. Macht die Schaltung so wie sie ist Sinn ? Wenn nicht, hat man was falsch gemacht, übersehen oder man hat es nicht verstanden.
    Wenn man weiss was ein Schaltungsteil machen soll, kann man auch auf Fehler, die man beim Zeichnen gemacht hat schliessen. Wie z.B. das Fehlen der Verbindung von AVcc und ARef oder wie im obigen Beispiel vom R7 und dem Emitter von T4.


    MfG
    SH

  • Google Werbung
  • MiniSlot und rufus


    Ich finde es toll, was ihr macht.


    Ihr fragt nicht ob euch jemand etwas schenkt, sondern ihr macht etwas selbst, ihr erarbeitet euch etwas und das finde ich Klasse.


    Ich bin gerne bereit, Euch zu unterstützen und zu helfen, aber halt in der Form von Hinweisen und Anregungen und nicht in der Form von Lösungen, wie einem fertigen Schaltplan.


    Es spielt keine Rolle, ob man Fehler macht oder etwas nicht weiß. Beides ist keine Schande.


    Hauptsache man findet und beseitigt die Fehler und erarbeitet sich fehlendes Wissen.


    MfG
    SH

  • Mag zu der aktuellen Diskussion etwas off-topic sein, aber ich versuche gerade das System zu verstehen und auch die kommenden Neuerungen zu berücksichtigen.
    Bei der neuen Controllunit scheint ja die Tankverwaltung von den Fahrzeugen in die bb respektive Controllunit verlagert worden zu sein. Von der Hardware/protokoll seite her stellen sichmir nun zwei Fragen: wie signalisiert die neue pitstop schiene der cu den Tankvorgang bzw. das Überfahren zur Rundenzählung. Dafür müsste sie ja schreibend auf den Bus zugreifen, kann sie aber nur durch Kurzschliessen, also extreme Stomaufnahme, oder die cu legt eine spannungsfreie Lücke im Protokoll ein, in der die pitstopschiene (aus einem dicken Kondensator) Spannung gibt.
    zweite Frage: wie lässt die cu die autos bei leerem Tank blinken ?


    Ich finds auch super was Ihr macht, und ohne die Grundlgeninfos auf der Slotbär Seite würde ich mich an das Thema garnicht ranwagen (hab kein ordentliches Speicheroszi)
    Grüsse,
    Klaus

    Einmal editiert, zuletzt von glsys ()

  • Die CU hat einen extra Eingang für einen zusätzlichen Sensor. Deshalb brauch man für diese Funktion auch eine Besondere Schiene - nämlich eine mit Sensor.


    Das Blinken erfolgt durch eine Frühstartmeldung. Na ja sagen wir der Befel zum Blinken wurde bisher nur zur Kennzeichnung eines Frühstarts verwendet.


    MfG
    SH

  • Habe das Bild vom Schaltplan auf Seite 1 aktualisiert.
    Die Bauteile sind funktional sortiert worden und den Tip vom Slotbaer bezüglich der 3 Potentiale eingearbeitet.


    Und nun gutes Nächtle.

  • Hallo Zusammen!


    Ich sitze schon seit einiger Zeit an Fahrzeugidentifikation, Protokolllesung und Senden des Bahnprotokolls. Heute bin ich fertig geworden.


    Auf Basis eines ATMEGA88 sind jetzt folgende Features umgesetzt:

    • Lesen des Bahnprotokolls (über INT0, PIND2)
    • Ausgabe eines Protokollechos (über PORT D6)
    • Ausgabe Protokolldaten mit eigener Manchester Codierung (über PORT D5)
    • Fahrzeugidentifikation über optische Bahnsensoren (PINC0-1)
    • Senden der Protokolldaten über RS232 an PC
    • Senden von Durchfahrtsereignissen an den Bahnsensoren über RS232


    Die Software ist so programmiert, dass alle PINS des Port C für Bahnsensoren genutzt werden können. Quellcode ist dafür nur geringfügig anzupassen. Getestet habe ich das Ganze bisher aber nur für zwei Bahnsensoren.


    Programmiert habe ich mit AVR-Studio in Assembler, da mir die Syntax von C zu kompliziert ist :)


    Auch wenn mir der erste "Jagen und Sammeln"-Antritt des Threads nicht so ganz zugesagt hat, habe ich mich dennoch entschlossen den Sourcecode hier zu posten, weil es in diesem Forum eine Menge engagierter Teilnehmer gibt, die die Ergebnisse ihres eigenen Zeitaufwandes anderen zur Verfügung stellen.


    Ich werde noch eine kurze Dokumentation zu den Dateninhalten, die zum PC gesendet werden und zur Grundidee der Fahrzeugidentifikation schreiben. Der Code hat sicher noch Verbesserungspotenzial. Ich bin auch gerne bereit weitere Erläuterungen zu Code-Teilen zu geben, allerdings erwarte ich dann auch die Bereitschaft, dass sich derjenige grundsätzlich mit der Problemlösung auseinanderstzen will. Unter diesen Voraussetzungen bin ich gern zu einer Weiterentwicklung bereit.


    Kurz ein Wort zur Hardwareanbindung. Wie im Code erkennbar läuft der ATMEGA88 mit 16MHz. Bei mir ist er extern mit einem Quartz-Oszillator getaktet. Verbindung zum PC läuft bei mir über MAX232 (ich habe noch einen seriellen Port am PC).


    Der Bahnprotokolleingang ist mit der Beschaltung von Slotbaers ELWMSD identisch, geht nur auf einen anderen Pin. Gleiches gilt für die Bahnsensoren. Laufen über einen OP LM339. Ich arbeitet mit Fotodioden und bin mir jetzt nicht sicher, ob die Signale dann invertiert sind. Hardware-Schema hierzu liefere ich nach.


    Ich bin leider kein Elektroniker. Für den Protokollausgang habe ich mir daher aus dem Internet eine Treiberschaltung für ein P-Kanal MosFET herausgearbeitet. Schaltplan anbei. Die Schaltung habe ich als PWM-Treiberstufe getestet, daher der Aufbau mit Motor und Freilaufdiode. Anstelle des Motors einfach die Bahn anschließen. Die Freilaufdiode habe ich weggelassen. Autos und Weichen haben bei mir korrekt reagiert.


    Nur nochmal zur Erläuterung:
    Alles was das Programm Hinsichtlich des Bahnprotokolls macht, ist dieses durchzuleiten. Allerdings ist die Stelle im Code kommentiert, an welcher man das Bahnprotokoll manipulieren könnte.


    Ein Ausblick:
    Ich persönlich will zunächst keine eigene Blackbox programmieren; mein Ziel ist eher das BB-Protokoll zu manipulieren. Ferner würde ich die Endstufe gerne doppeln, um die beiden Slots einzeln zu versorgen. Im nächsten Schritt würde ich einen Analogmodus implementieren, der entsprechend der im Protokoll übertragenen Geschwindigkeit ein PWM-Signal in die Bahn einspeist. Kurzschlussbremse könnte über ein Umschaltrelais je Spur funktionieren, welche man dann auch für die Panikschaltung verwenden könnte.


    Gruß
    Andreas


    Nachtrag zur Schaltung:
    Bei µC-Pegel High liegt die Basis von Q1 ungeschützt auf Masse; hier sollte noch ein Basiswiderstand ergänzt werden. Nach meinem Eindruck sind in diesem Thread aber viele Elektroniker unterwegs, insofern ändere ich den Schaltungsentwurf hier nicht.

  • ebay Werbung
  • Toll wie der Thread richtig explodiert und was hier geleistet wird! :D


    @slotandi: Danke fürs Teilen, der "Jagen und Sammeln"-Antritt des Threads hat sich aus den folgenden Überlegungen ergeben:
    -Ich (und viele Andere) bin nicht in der Lage aus der (ausgezeichneten) Dokumentatiion des Bahnprotokolls von Brumbaer die manchester-Kodierung auszuwerten/zu lesen
    -Ich (und viele Andere) bin Anfänger in uC Programmierung, wenn man da von 0 anfängt ist es sehr wahrscheinlich die Motivation zu verlieren. glsys hats auf den Punkt gebracht: "wenn man erstmal die routinen für slotprotokoll decodieren/senden, Ir-erkennung und speedregelung per pwm mit motoranpassung parat hat, ist der rest ja nur noch highlevel programmierung."


    Entschuldigung, wenn ich da jemandem auf die Füße getreten bin, oder ich mich zu weit herausgelehnt habe.


    brumbaer: Danke für die Unterstützung hier im Thread!
    Ich habe hier eine Schaltung aus Pro-X Zeiten (MicroBB von Gora), die man ev. als Basis für einen BB-Ersatz oder eine Pitstop-Lane Steuerung (Speedlimit an der Lane durch zusätzliche Pausen in der Versorgung) verwenden könnte. Leider verstehe ich einige Teile der Schaltung nicht - könntest Du mir da bitte weiterhelfen?


    1.) R200 u. R201 bilden einen Spannungsteiler, und damit die Kurzschlusserkennung -richtig?
    - Über R200 sollten (bei angenommenen 15V) 10V, über R201 5V abfallen.


    2.) Was machen T300, R302, R301, R300 ?

  • automated


    1) richtig


    2) Was macht der Schaltungsteil ? Kannst du erkennen welche Grundschaltung R300, R301 und T300 bilden ?


    MfG
    SH

  • Danke brumbaer.


    2) Was macht der Schaltungsteil ? Kannst du erkennen welche Grundschaltung R300, R301 und T300 bilden ?


    Die Grundschaltung stellt einen NPN-Transistor in Emitterschaltung dar. IC liegt beim BD337 bei 800mA max. Ich nehme an, er wird hier voll ausgesteuert (gleiche Basisschaltung wie T100), somit ergeben sich über R302 ca. 70mA.
    Pin7 am ATTiny wird dann wohl nicht als ADC1, sondern als PB2 benutzt - richtig?
    T300 hat also nur eine Funktion, wenn T103 angesteuert ist, oder seitens Slot eine Spannung anliegt. - Bahnhof, ausgestiegen ;)


    Was mir noch auffällt ist D100 die nach Datenblatt "nur" 2A liefert - zu wenig für D1xx


    Nachtrag 27.10.2010 um nicht den Kontext zu verlieren: Ich habe die Sourcen von Gora durchgesehen, der Transistor T300 schaltet gegengleich mit T103, ist wohl zum Löschen der Spannung am Slot zuständig um ein sauberes Signal zu erhalten.

    Better-Faster, Innovation

    Einmal editiert, zuletzt von automated ()

  • Ok, die Grundschaltung von T300:
    Er wird als Schalter betrieben.


    Was schaltet er ?
    ??????


    Wohin ?
    An den Motorausgang


    Wer legt sonst noch Spannung an den Motorausgang ?
    T103


    Was passiert wenn
    keiner der beiden schaltet ?
    nur T103 schaltet ?
    nur T300 schaltet ?
    beide schalten ?


    Bzgl.
    D100 die Schaltung ist für einen Regler ausgelegt und somit für ein Fahrzeug plus Ghost ausgelegt.


    Wenn 2A für deine Aufgabe zu wenig sind andere Diode suchen.


    MfG
    SH

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!