Hi @all, ich versuche jetzt schon seit Tagen ein Opel Display von einem bekannten anzusteuern... laut www.carlucio.de wird das ganze mit I2C Specs gemacht... nur leider komme ich über die Initialisierung des Display einfach nicht Hinaus :( Hat schonmal jemand dieses Display angesteuert und könnte mir evtl. auszüge vom Source geben in ASM Ich will nicht abkupfern sondern einfach den Unterschied zu meinen Routinen finden, da ich mit meinen I2C Routinen bereits EEPROM ansteuer, gehe ich einfach davon aus das diese auch für das Display gehen... aber irgendwo da muss der fehler liegen... da timings und reihenfolge alle eingehalten werden... :( Es kann nur noch am I2C liegen Gruß & Danke Dennis
Ich hab das mal vor einiger Zeit versucht. Bin kläglich gescheitert. Soweit ich das noch weiß war das kein direkter I2C-Bus sondern irgendeine Abart. War da nicht noch ne dritte Ader im Spiel ?
Ja genau ->MRQ<- Master Request ... irgendwas... Master -> MRQ Low Slave antwortet mit -> SDA Low Master -> sofort MRQ High I2C Start Master schreibt adresse dann MRQ wieder LOW für die dauer der Datensendung dann MRQ wieder High I2C Stop Fertig... war mal so die kurzfassung... aber es will einfach nicht... :(
Hallo, ich habe das schon erfolgreich gemacht und kenne wirklich alle Infos. Ich habe daraus einen Bordcomputer gebastelt. Wenn ich dazu komme, werde ich die ganzen Informationen und Baupläne dazu online stellen. Weitere nützliche Tipps: www.eelkevisser.nl Grüße Stefan
Moin Stefan, habe auch schon damit getestet, aber auch wie Dennis zu keinem Ergebnis gekommen. Habe hier das TID in einem Corsa B, extra ein zweites TID zum testen gekauft (5,- €). Wenn Du Deine Infos hier oder auf einer HP bekannt geben würdest, wäre das echt super .. Ich will damit die Bordspannung und Innen-Temp anzeigen. mfg Oliver
Hi Oliver, wie weit bist Du gekommen mit deinem Display ? Hast Du direkt mit I2C gearbeitet ? Welche Adresse hast Du genommen um das Display anzusprechen ? In welcher Programmiersprache hast Du gearbeitet ? Vieleicht können wir mal Sourcen austauschen... Was mir leider fehlt ist ein I2C Logger... sonst hätte ich mir das ganze mal mit dem Radio zusammen angeschaut.... Gruß Dennis @Stefan, es würde auch schon völlig reichen wenn Du mal den Source Online stellst der nur für das Ansprechen des Display ist... den rest kann man sich selber machen ;) Ansonsten würde mir erstmal das Detail reichen ob es wirklich I2C Bus mit der zusätzlichen Ansprechung von MRQ ist, oder ob auch am I2C direkt was geändert ist...
I2C kannste knicken. Das Protokoll sieht zwar vielleicht ein bischen so aus wie I2C, aber reagiert sehr kritisch auf timings. Anbei ist der Sourcecode. Du musst lediglich nur noch eine Delay-Funktion bauen, die genau 100µs verzögert. Der Rest ist recht selbsterklärend, denke ich. Viel Spaß, und berichte mal, ob es geklappt hat. Grüße Stefan
Hi Stefan, danke für deine Antwort. Mir ist aufgefallen (oder hab ich es übersehen) das Du das Display gar nicht Initialisierst (ausser kurz MRQ Low) Ist die Init Sequenz ganz am Anfang etwa nur für das Radio (eine leitung nach der anderen geht kurz auf Low) Gruß Dennis
Durch diese Testsequenz kann das TID afaik feststellen, ob Leitungen im Kabelbaum kurzgeschlossen wurden, welche miteinander verbunden sind (für jede mögliche Kombination aus den Drähten SDA, MRQ, SCL, GND, und "+" gibt es einen Fehlercode). Lange Rede kurzer Sinn: Das ganze ist nicht notwendig, um das Display anzusteuern.
Hi Stefan, ich danke Dir auf jedenfall... also wenn ich das Richtig verstanden habe ist es vom Prinzip her I2C mit zugesetzten Warteschleifen von 100us oder ? Hätte ich es mal gleich selbst geschrieben und mich nicht zu sehr auf die I2C Routinen beschränkt(verlassen)... Gruß Dennis
@Stefan, kann es sein, das das Display immer wieder "Refreshed" werden muss (anzeige ist nach einer weile wieder Blanked) oder hab ich evtl. Datenmüll noch zu liegen? Gruß Dennis
Jupsen, das TID sendet einen "Slaverequest", und zieht MRQ für ~100µs kurz auf low - wenn dann keine Daten kommen, dann wird das Display geleert. Ich achte darauf aber nicht, sondern refreshe es so alle 1/10s. - Klappt wunderbar, und es gab noch nie Probleme.
@Dennis Ich habe mit Bascom gearbeitet und M16. Wenn ich hier aber lese, dass das Standard I2C Verfahren eh nix taugt, muss ich das eh noch mal überdenken. Ich muss auch noch 2 SMD Transis tauschen, die waren abgeraucht vom Vorgänger, dies hatte ich aber erst später bemerkt. Ein Autoradio hätte ich noch liegen, um den Bus zu belauschen, dafür aber keine Messmittel. Vorallem die Info vom Stefan (30.01./21:11) war mir neu !! mfg Oliver
Hi Oliver, also mit den Routinen von Stefan geht es (besten dank nochmal) ich setz mich heute oder morgen nochmal hin und suche die unterschiede zum I2C Bus raus. Möchte das ganze noch Informativ zusammen packen. Kannst dich ja mal direkt melden, mit Bascom hab ich zwar nicht so viel erfahrungen (Nur ASM) aber ich denke mal zusammen sollten wir auch das hinbekommen. Gruß Dennis
Hi Oliver, Hi Stefan habe mich wie versprochen an die Routinen rangesetzt und verglichen, das Display reagiert auch auf I2C allerdings viel langsamer (habe nen Delay von 200µS) I2C Start sollte sauber sein und nicht erst von einem vorherigen I2C Stop gestört sein. (War bei meinen I2C Routinen so, was ja grundlegend nicht verkehrt ist...) Meine Clock Impulse arbeitet derzeit mit CLK High 200µS CLK Low 400µS wunderbar. Gruß Dennis
@Michael, [SAKASMUSSON) wenn Du später mal deinen Führerschein machst und dich das erstemal mit den Großen Autos beschäftigst, wirst auch begriffe wie: Audi, Ford, VW, Opel etc... kennenlernen... ;) [SAKASMUSSOFF] Gruß Dennis
@Michael S. schau mal auf den ersten eintrag in diesem Thread ;) Gruß Dennis
@dennis Hast du das Projekt schon gertig? Würde mich sehr dafür interesieren. Kannst du mal die Hard und Saftware ins Forum stellen?
ts..ts..ts... wo bleibt den da der Lerneffekt ;) Spaß bei Seite ja die Ausgabe auf dem Opel Display tut ohne Probleme. Wie gesagt es ist I2C Protokoll mit geändertem Timing + Zusatzleitung. Zur verfügung stellen kann ich leider das ganze noch nicht, da es wohl kaum für jemanden lesbar ist... ;) Muss noch alles kommentiert werden... aber Hilfestellung gebe ich dir gerne. Gruß Dennis
Was für einen Controller hast du verwendet? Ich möchte auf mein TID die Drehzahl anzeigen (Corsa B hat keinen Drehzahlmesser). Wie sieht die Schaltung aus?? In welcher Sprache hast du ihn geprogt (ASM, Bascom, C )?
Würde mich auch interesieren. Wo bekommt man so ein TID billig? Schrotthändler??? Ebay haben sie nur diese Umbaukits.
Meld mich wenn ich at home bin. Gegen 22.00 Uhr
@Tidler, Als Controler hab ich einen AtMega8 genommen, ist so mittlerweile mein lieblings µC geworden. Das Protokoll für den OpelTID ist ziemlich genau I²C nur das die Timings wie gesagt verändert sind das Pausenverhältnis ist ein anderes. Bisher hab ich es nur mit Software I²C hinbekommen und nicht mit dem Hardware I²C vom AVR. Programmiert hab ich das ganze in ASM. Im Anhang mal ein Bild vom Drezahlmesser. @Seek1, schau mal bei Ebay bzw. bei nem Schrotti die Verkaufen die Dinger auch recht günstig. Gruß Dennis
Hast du auch nur Dioden benutzt, um das Display seitens I2c anzuzapfen, wie Eelke Visser? Oder hast du noch Bustreiber eingesetzt? Das Geschwindigkeitssignal ist ja schon am TID vorhanden (corsa B 95), oder? Muss mann ja nur noch den Impulsegeber der Nockenwelle drauf führen. Wie hast du den Impulsgeber auf den Atmel angeschlossen? Eine Schematic der Schaltung wäre sehr interresant, und hilfreich.
@seek1, Ich hab es einfach an der Zündspule Primärseitig abgegriffen (12V) aber man darf nicht vergessen, das im Abschaltmoment bis zu >100V Spannungsrückschläge entstehen können.
Könnte hier irgendwer eine Schaltung oder ein Layout posten, den ich bin in solchen Sachen nicht so geschickt
Auf http://www.eelkevisser.nl/tacho.htm gibt es eine PCB und schematic. mit einem PIC . Ist die schaltung mit der Zündspulen methode kompatibel??
Richtig. Das Tachosignal liegt am TID selbst an. Das kann geprüft werden indem man die beiden Tasten am Rande gleichzeitig für ein paar Sekunden festhält. Bei Fahrt bis 50 km/h zeigt das TID von selbst die Geschwindigkeit an. Notwendig ist dieser Wert zur Ermittlung der tatsächlichen Außen-Temperatur, Geschwindigkeitsveränderungen würden eine Art Wind-Chill und zu einer Abkühlung des Temperatur Sensors führen. Kompensiert wird das ganze von einem µC.
@tideler, ja die schaltung kann so übernommen werden es funktioniert. Allerdings ist es nicht die eleganteste methode da es keinerlei galvanische trennung zum AVR gibt, sollte doch mal irgendwas nicht stimmen, können wie gesagt bis zu >100V zurückschlagen... Ich habe das ganze mit nem Transistor und nen Optokoppler erweitert um einfach auf nummer sicher zu gehen. Gruß Dennis
Habe mal eine Eagle schematic vom Visser PCB erstellt. Habe es so gebaut, das man es ohne Mühe zwischen Autostecker und TID Stecker reinstöpseln kann. Braucht nur noch die Primärseite von der Zündspule nachverdrahtet werden. Würde mich gerne über Verbesserungen freuen.
So und noch ein Board dazu, für die Denkfaulen. Das von Visser war mir einfach zu gross.
Wie sieht die Schaltung mit dem Optokoppler aus??
Wäre bitte jemand so freundlich und könnte meinen Stromlaufplan kontrollieren. Im Dankeschön voraus X Augen sehen mehr als zwei, ausserdem habe ich kein TID an dem ich es testen könnte. Muss die erste Schaltung dann gleich "scharf" ans TID hängen
Da sieht man wieder, das das kontrollieren die Leute interesiert. Einfach nur blind nachbauen. Jetzt kann ich verstehen das Dennis und Co die Schaltung nicht veröffentlicht haben. Anbei die korrekte Schaltung. Bei der vorigen wären schlechtestensfalls der PIC und der Spannungsregler abgehoben. Bitte trotzdem nochmals kontrollieren. Vor allem ob die durchverbundenen Pfostenleisten richtig zusammen geschlossen sind.
Ich traue seek1 nicht über den Weg. Ich nehme die originale schaltung
Also ich habe das zwar nicht nachgebaut, sondern selber gebaut, aber bei Fragen kann man sich trotzdem gerne an mich wenden. Nun zur Schaltung von Seekl: Also da Du die Stecker ja nicht beschriftet hast und ich auch nicht weiss was für ein Auto Du hast, kann ich natürlich keine verbindliche Aussage darüber treffen, ob das so geht oder nicht. Aber im Prinzip sieht es gut aus: Radio TID Deine Schaltung SCL O O-----------O SDA O O-----------O MRQ O O-----------O GND O-----------O-----------O +12V O-----------O-----------O Rest O-----------O Aber ich habe für die drei Leitungen MRQ, SDA und SCL jeweils zwei Pins beim Controller verbraten, einen für Input und einen für Output. Das sieht dann ungefähr so aus: SDA O---------+-------RRRRRRR-------O Pin 1 (SDA In) | | \| |-----RRRRRRR-------O Pin 2 (SDA Out) /| | | GND O--------- Ansonsten sehe ich keinen Fehler. Bye, Dario. -- Erwerbsregel #33 Es ist nie verkehrt, sich bei seinem Boss einzuschmeicheln.
Der Stecker IN kommt vom Auto. Der Stecker OUT geht zum TID. Laut meinem Recherchen ist beim 8stelligen TID mit 10 Pins bei ein paar Modellen nur das Tachosignal und/oder die Temperatur nicht ausgeführt. Darum habe ich mal das Temperatur/tachosignal durchgeschleift.
Hallo Seekl, In dem Schaltplan steht nirgends, dass Du ein 8-Stelliges TID hast. Und ich habe weder Sandelen an, noch wächst mir Gras aus den Taschen. Mit anderen Worten ich bin nicht Jesus und kann nicht hellsehen. In dem Fall der Steckerbelegung kann ich Dir leider nicht helfen, denn alle 8-Stelligen TIDs die ich bisher gesehen habe haben eine andere geometrische Anordnung der Kontakte als auf Deinem Schaltplan. Auf meiner Seite, oder http://carluccio.de/images/pro-tid-pic2.png siehst Du wie die Kontakte bei mir angeordnet sind nämlich: 1 2 3 4 5 6 7 8 9 10 11 12 Und Deinem Schaltplan entnehme ich: 2 4 6 8 10 12 1 3 5 7 9 11 Das stimmt nicht überein und daher kann es gut sein, dass Die Pinbelegung nicht stimmt. Da hilft es nur messen oder die Kabelfarben mit denen auf meiner Seite zu vergleichen. Was anderes: Hast Du das mit dem In/Out auf zwei unterschiedlichen Pins des µC verstanden? Bye Dario -- Computer setzen alles logische Denken mechanisch fort. Unlogisches auch.
@seek1, hi du, das hat nicht viel mit "Nicht Veröffentlichen wollen" zu tun, sondern viel mehr mit der Tatsache das die Daten für mich zur zeit einfach nicht zugänglich sind. Ich werde am Wochenende mal das gesamte Layout und die Ansteuerroutine in ASM Posten. @Dario, Steht das Angebot eigendlich noch, das wir die Sourcen und ne Erklärung bei dir noch mit auf die Seite machen ? Gruß Dennis
Das mit den zwei Pins habe ich verstanden. Die Belegung ist 1 2 3 4 5 6 7 8 9 10 11 12 Habe mich in Eagle verdan und einen Jumperblock statt einer doppelten Stiftleiste benützt. Das liegt daran das ich kein Lib nicht finde, das eine doppelte Stiftleiste enthält.
@seek1, schau doch mal in der LIB "pinhead" 2x6
Könntet ihr mir mal ein Photo vom TID stecker + Sockel machen. Oder Past eine normale 2 * 6 Stiftleiste (+ Buchse)
Nochwas: Ist beim TID hinten drauf eine Buchse, oder eine Stiftleiste raus.
Ich denke mal Assembler Code, oder? Habe das Board nach Visser noch mal überarbeitet. Jetzt (hoffentlich) ohne Fehler. PIC basierend. Die Belegung der Lötpads kommt noch nachgereicht
Und die Schematik. Plus und Minus kann mann sich jetzt schon mal denken, was für Pads sie sind
@Dennis Klar steht das Angebot. Wir können Sourcen, eine Erklärung und gerne auch Eure Kontaktadressen (letzters nur wenn Ihr das wollt) auf meine Seite packen. Ich habe leider nicht viel Zeit, aber wenn Ihr mir die Doku und den Kram alles schickt, werde ich mich bemühen das zeitnah einzubauen. @seek1 Ein Tip: Wenn Du das TID nicht mal ausbaust und selber dran rum bastelst, oder Dir eines vom Schrott kaufst wird das nix. Du wirst es nicht schaffen, den Controller zu programmieren und alles funtioniert auf Anhieb beim ersten Versuch. Und nur dann kannst Du Dich darauf verlassen, was für ein Stecker an Deinem TID dran ist. Es gibt viel zu viel unterschiedliche Modelle und zu beschreiben, wie der Stecker genau aussieht ist nicht leicht. Bye Dario. -- Erwerbsregel #8 Kleingedrucktes führt zu grossem Risiko.
Im Anhang stelle ich den Steckverbinder des DID/TID/MID als Eagle-Library zur Verfügung. eSBeO
Nachtrag: Nutzung der "OpelXID.lbr" natürlich auf eigene Gefahr. Fehler bitte hier posten. eSBeO
Ach so ein bild von dem Stecker am 10-Stelligen TID und meiner selbst gebastelten Lösung findet Ihr hier: http://splashblog.com/treocrypt/default.aspx?preview=72838 Schöne Grüsse, Dario -- Es gibt drei Arten von Frauen: die schönen, die intelligenten und die Mehrheit. Rainer Werner Fassbinder
Wer scheissen frist und Popel kaut, vertraut auf das was Opel baut
@VW_GOLF_GTI_RULES, ich fahr zwar nen Audi, schaffe es aber dennoch mich mit solchen unqualifizierten 9. Klassen Sprüchen zurückzuhalten...
Wo soll ich das Signal für die Drehzahl abgreiffen? Habe Corsa B Bj95 1,4i X14XE Hinterm Tacho liegt angeblich schon ein Draht, der für die Drehzahlanzeige vorgesehen. Möchte mir aber ersparen den Tacho auszubauen. 1. Möglichkeit : der Impulsgeber der Nockenwelle Er hat drei Anschlüsse laut Plan. A B und C. Welchen benützen??? 2. Möglichkeit : die Primärseite der Zündspule, laut Plan hat die aber 3 Primärseitige Anschlüsse . Sie heisen BKYE1 (Pin4) und BKRD1(Pin3) . Pin 1 hat keine Bezeichnung Habe das originale Programm von Eelke Visser, und auch die originale Schaltung. Habe nur einen Optokoppler und eine Zehnerdiode zur Sicherheit rangebastelt.
Das Drehzahlsignal liegt bei den älteren Opels an Klemme 1 der Zündspule an. Falls an Klemme 1 deiner Zündspule ein grünes Kabel ist, dann kannst du dort das Signal abgreifen. Oder eben doch hinter dem Tacho oder am Steuergerät (jeweils immer grünes Kabel).
@seek1, also wenn mein KFZ-Mensch sich nicht geiirt hat, würde ich das Signal auch an der Zündspule (Primärseitig) abgreifen, bzw. über das Zündkabel ein paar umwicklungen mit Draht machen, und das ganze Induktiv abgreifen. Der Impulsgeber an der Nockenwelle liefer laut meinen KFZ-Menschen ein Rechtecksignal (Treppenstufig???) Gruß Dennis
Hallo Leute, bin grad durch zufall auf hierauf gestossen. Habe das vor ca. einem Jahr schonmal in zusammenarbeit mit Eelke auf AVR umgesetzt. Habe damals Bascom dafür benutzt, wobei ich im Endeffekt sagen muss das es wirklich nicht die beste Wahl dafür wahr. Wirklich ne verdammt kniffelige sache gewesen. Wenn ich mich richtig erinnern kann musste ich mir damals dafür auch noch nen überarbeitet I2C Library für Bascom runterladen. Da ich die Postings nur überflogen habe bin ich lieber still. :) Im anhang befindet sich der Teil meiner Arbeit der noch aufzufinden war, da mir leider die folienleitung zum display gerissen ist und ich das projekt danach auf einem anderen Display weitergeführt habe. Naja viel erfolg damit (wenn es jemand braucht). mfg Andy
Obwohl ja Opel nicht meine Wellenlänge ist, wäre es toll wenn ma jemand hier postet wenn ihr die Sourcen auf Darios Seite gepackt habt.
Habe Seek1's board nachgebaut, funktioniert super. Könnte mir bitte irgendwer das Programm von elke viser so umschreiben, das es auf einem PIC16F628 läuft?? Bitte. Habe soviele herumliegen, die ich dafür einsetzen könnte. Ausserdem haben die Brown out detect. Wen mir bitte jemand das Programm umschreiben könnte wäre ich sehr dankbar.
Wist ihr, wie mann statt Welcome einen anderen Text reinschreibt ?? movlw H'40' ist eine leere Stelle. AE 8A 98 86 9E 9B 8A heist Welcome Was heist zb. Servus??? Was für ein Format ist das? Hex auf jedemfall nicht. Wo gibt es eine Zeichentabelle?????
Schreib doch mal die zeichen in eine tabelle und füll den rest sinnvoll aus, also e=8A f=8b usw
die Bits 1-7 sind die ASCII-Tabelle, Bit 0 ist das Parity-Bit. so hab ich das zumindest in Erinnerung.
Das ergibt keinen Sinn. Hab ich schon probiert. Ausserdem kann ich Hex werte nicht 100% astrein.
'W' -> ASCII 0x57 -> 101.0111 Parity ist 0 -> 1010.1110 (letzte Bit ist Parity) -> 0xAE
na was passiert denn wenn du die beiden 8A gegen 8B tauschst?
@seekl Also das sieht schon komisch aus. Bei mir ist "E": 0x45 "S": 0x53 "B": 0x42 "E": 0x45 (logisch) "O": 0x4f Leerzeichen: 0x20 Und angezeigt wird auch "ESBEO" Du hast jeweils den doppelten Wert (Bedenke: Hexadezimal) eSBeO
Mist, zulange gebraucht. Das Parity-Bit ist es. eSBeO
Habe jetzt folgendes probiert: movlw H'01' ; WELCOME call Sendi2c movlw H'01' call Sendi2c movlw H'53' ;S call Sendi2c movlw H'8A' ;E call Sendi2c movlw H'52' ;R call Sendi2c movlw H'86' ;C call Sendi2c movlw H'9E' ;O call Sendi2c movlw H'53' ;S call Sendi2c movlw H'40' ;leer call Sendi2c movlw H'40' ;leer call Sendi2c Und siehe dar : Statt Welcome steht !gar nichts! mehr Die Anzeige wechselt gleich auf XXXX RPM Bitte gebt mir den fertigen Code, für "Servus". Könnte von mir aus auch gerne 4 Sekunden lang drauf stehen, statt 1er.
Oder bitte überhaupt auf PIC16f628 umschreiben
So einfach brauchst du dirs auch nicht machen Holtenpilsener. Ich bin auch nicht umbedingt in dieser Materie aufgewachsen, aber ich probiere wenigstens so lange herum, bis ichs hab.
Hallo Seekl, Probieren bringt hier nicht viel. Mache Dir zunächst den Begriff Parität klar. Helfen kann da: http://www.google.de/search?hl=de&q=define%3A+parit%C3%A4t&meta= define: parität - Google-Suche Dann musst Du Dir Deine Zeichen aus einer Ascii-Tabelle suchen und das Paritätsbit ermitteln. Ich mache das mal für die Buchstaben "F" und "G": "F" hat den ASCII-Code 46, "G" hat den ASCII-Code 0x47. Mit dem Windows- Taschenrechner (Ansicht auf "Wissenschaftlich") kannst Du das jetzt in Binärcode umrechnen und erhältst für "F" 01000110 und für "G" 01000111. Jetzt zählst Du die Einsen. Ist die Anzahl ungerade, wird das Paritätsbit gesetzt, und wenn nicht, gelöscht. Das Paritätsbit ist das Bit 7, welches für darstellbare Zeichen immer gelöscht ist. Für "F" wird das Bit jetzt gesetzt, und für "G" bleibt es gelöscht. Für "F" musst Du also 0b11000110 und für "G" 0b01000110 an das Display schicken. (Die Umrechnung in Hexadezimale Schreibweise kann wieder mit dem Windows- Taschenrechner erfolgen). Dieses Spiel machst Du am besten in Form einer Tabelle für alle Deine Buchstaben (Das TID kann nur Grossbuchstaben). Also dann viel Erfolg eSBeO
@eSBe0: schön erklärt :) Aber mein TID im Vectra kann auch Kleinbuchstaben. zu sehen unter http://www.lrz-muenchen.de/~geislerm
@Marco Geissler Ich meinte eigentlich das 8-stellige TID. Schöne Seite übrigens. Wo am Motor willst Du den Temperatursensor einschrauben? @seekl Hast Du schon Deinen Text ausgegeben? eSBeO
Nein bin nicht weiter gekommen. S ist hex 53 ist binär 01010011 -> 4 Einser E ist Hex 45 ist binär 01000101 -> 3 Einser R ist Hex 52 ist binär 01010010 -> 3 Einser V ist hex 56 ist binär 01010110 -> 4 Einser U ist hex 55 ist binär 01010101 -> 4 Einser S ist hex 53 ist binär 01010011 -> 4 Einser Also gehört bei E und R das Paritätsbit gesetzt. welches bit ist das zb. bei E 01000101 -> 01000111 ???
@Seek1, hi das Paritätsbit ist immer das 7. Bit (ganz Links) wenn du binär 00000111 hast, dann muss das Parity gesetzt werden, also von 00000111 -> 10000111 Also bei einem "E" währe das 01000101 -> 11000101 Gruß Dennis
Aso , ich glaube ich habe es verstanden R ist Hex 52 ist binär 01010010 -> 3 Einser -> 11010010 -> d2
Habe es jetzt probiert, und siehe da: Es funktioniert
@eSBe: der Sensor steckt statt der Ölablassschraube drin. Aber ich glaub trotzdem dass das Parity-Bit das LSB ist, oder täusch ich mich da???
Habe mich jetzt selbst bemüht das Programm auf einem 16f628 zu portieren. Aber es gibt Probleme . Bitte helft mir. Source und Fehlerbeschreibung (Programmm ist 100% fehlerfrei übersetzt worden, Display bleibt leer) unter: http://www.mikrocontroller.net/forum/read-1-220642.html#new
Im Zafira gibt es unter dem TID noch ein weiteres Display, das aber nur in Betrieb ist, wenn man den Boardcomputer hat. Wenn nicht, ist dann da überhaupt ein Display eingebaut? Und wenn ja, kann man das auch wie das TID ansteuern? Danke und ciao Remo
Habe für einen Bekannten auch eine PCB gefertigt. Wo kann ich bei einen !Diesel! das Drehzahlsignal abgreifen?
An der Lichtmaschine gibt es beim Diesel eine extra Klemme für das Drehzahlsignal.
Wenn noch kein Drehzahlmesser vorhanden ist, ist es gut möglich, dass kein Kabel an der Klemme ist. Die Klemme "W" gibt ein Drehzahlsignal aus.
@Marco Geisler Dario schreibt in seiner Protokollbeschreibung auch, dass erst das MSB und dann das LSB übertragen wird. Allerdings bin ich mir sicher, dass das Paritybit zum Schluss übertragen wird. eSBeO PS.:Die Ölablassschraube ist natürlich eine gute Idee.
@eSBe0: ja genau so mein ich das auch :D Bei Conrad gibt es passende PT1000 und 100 Sensoren, siehe meine Homepage... @remo: Das einzige ansteuerbare Display ist das, in dem der Radiosender angezeigt werden kann, und das gibt es immer. TID ist eben nur "Radio, Uhr, Außentemp" (triple info) MID ist multi info mit Bordcomputer...
@eSBe0 Ja, so ist es, zuerst wird das MSB und dann das LSB übertragen. Und das Parity-Bit ist Bit 0, kommt also ganz zum Schluss. Folgeder Pseudo-Code gibt beispielsweise ein T aus: ------------------------------------------------ ByteOut = "T" // Zeichen T Ausgeben Partity = 0 // Parität wird online berechnet BitCnt = 0 // Zähler für ausgegebene Bits WIEDERHOLE solange BitCnt < 7 // Die Bits 6-0 einzeln ausgeben RotateLeft (ByteOut) // Das oberste Bit fällt raus und ist weg WENN ByteOut & (1000000) = 0 // Ist Bit7 nicht gesetzt 0-Bit senden // 0 Senden SONST // Bit7 ist gesetzt 1-Bit senden // 1 Senden Partity = Partity + 1 // Parität um 1 erhöhen ENDE WENN BitCnt = BitCnt + 1 // Zähler + 1 ENDE WIEDERHOLE // insgesamt 7 Bit ausgeben WENN Partity & (0000001) = 0 // Eine gerade Anzahl Bits wurde gesendet 0-Bit senden // ParityBit 1 senden SONST // Eine ungerade Anzahl Bits wurde gesendet 1-Bit senden // ParityBit 0 senden ENDE WENN ------------------------------------------------ Von einem Byte werden also nur die Bits 6-0 gesendet und danach das Parity-Bit, Bit 7 wird nicht gesendet. es gibt also auch nur 128 mögliche Zeichen, die gesendet werden können.
Wenn ihr ma nix zu tun habt, wie wird den aus dem neuen Vectra das Farbdisplay für die navigation angesteuert? wuerd mich ma interessieren, hab davon 4 Stück zuhause rumliegen....
@Stephan Haß - Mc_Steven_Hateweb.de Eh du die Displays beim Sperrmüll abgibst, kannst du mir eins zusenden? Passen die eigentlich auch an/in einen Opel Astra dran?
Hi @all, leider habe ich meine alten Daten nicht mehr gefunden, so das mich dazu entschloss nochmal ne neue Fassung zu schaffen, im Anhang mal ein kleiner Ansatz... Auf dem Board befindet sich: - Die Zündpuls Auswertung, - Spannungswandlung mit Spule von 12V -> 5V - Spule für AVCC - Anschluss für Taster - Anschluss für LED (Schaltblitz) - Spannungsteiler mit RC-Glied für Spannungsmessung (Bordnetz) Noch ungeprüft: - Anschluss für 8 Poligen Stecker - Anschluss für 8 Poliges Display (Opel Corsa B) Vorgesehen ist noch: - Schaltung für Analog Tempfühler (KTY) für Öltemp. - sowie für Wassertemp Mal schauen was mir die Tage noch so einfällt ;) Gruß Dennis
Und das Schematic dazu. Korrekturen kommen noch.
Hallo Dennis, in meinem Beitrag vom 09.08.2005 16:51 habe ich geschrieben, dass ich das so nicht machen würde. Ich hatte echte Probeme damit das so zu implementieren wie Du das willst, denn man muss den Zustand von SDA und SCL lesen und schreiben. Das mit der Umschaltung über das DDR des Controllers hat bei mir überhaupt nicht geklappt. Deswegen habe ich dafür jeweils 2 Pins vorsehen. Nur meine bescheidene Meinung natürlich... Nacht Dario
Hi Dario, also ich habe damit keine Probleme bisher gehabt. Alle meine I2C Applikationen beschalte ich direkt. Nun weis ich natürlich nicht ob es in Bascom vieleicht zu Problemen führt. Also sagen wir es kurz der Teil geht bei mir ohne Probleme ;) Gruß Dennis
Hallo Dennsi, wie schon gesagt, es ist kein echtes I2C, da muss man insbesondere auf die Bitsynchronisation achten, was meines Wissens bei I2C nicht so ist. Dahe kann es bei einigen TID gehen, bei anderen nicht. Seit ich das so mache, geht es bei allen TID, ohne am Timing der Schaltung rumprobieren zu müssen. Nacht Dario.
Korrekt, das ihr euch damit befasst habt, aber aber die Displays aus den Opels, haben einmal den Anschluss 12 Polig wie bei dem normalen MID´s mit DotMatrix anzeige, und zusätzlich noch nen 32Poligen anschluss. mein Problem is, ich finde im Internet kein Datasheet oder geschweigeden eine andere Information über die dinger... wenn einer von euch mir die dinger ansteuern kann, bekommt er eins Gratis zugeschickt... wollt das auch in nen Calibra einbauen, hat genau die gleichen Maße und einbautiefe wie das DOTMATRIX MID vom OMEGA (da hab ich auch noch 2 von). würd mich um anregungen und Lösungsvorschläge freuen. MfG: MC Hate
@Stephan: ich glaub ich hab Infos über die 2 Stecker, schick mir mal ein Bild davon...
Habe den EElke Visser source von PIC16F84 auf PIC16F62X portiert. er läuft auf folgenden Typen: PIC16F627/PIC16F627A/PIC16F628/PIC16F628A/PIC16F648/PIC16F648A Habe derweil nur die HEX (muss den schlampig geschriebenen Source erst an die deutsche Grammatik anpassen)
Habe den aktuellen Source + Eagle File + fertige Hex + Schematik für PIC16F627/PIC16F627A/PIC16F628/PIC16F628A/PIC16F648/PIC16F648A im Anhang
Super! Ich warte ja immer noch drauf, das es mal jemand in C portiert... oder die Kommentare übersetzt. Funktioniert dieser Code auch bei MID?
MID hat mehr Zeichen und eine andere Startdadresse TID: 0x94 MID: 0x9B 0x9B = 10011011A (Adresse vom MID) 0x01 = 00000001A (Schalte die Symbole ein) 0x01 = 00000001A 0x01 = 00000001A 0x85 = 10000101A = "B" 0x8A = 10001010A = "E" 0xA4 = 10100100A = "R" 0x8F = 10001111A = "G" 0x83 = 10000011A = "A" 0x9B = 10011011A = "M" 0x83 = 10000011A = "A" 0xA7 = 10100111A = "S" 0x86 = 10000110A = "C" 0x9E = 10011110A = "O" 1:Idle state all lines are high. 2:Pull MRQ low for a short period and let it go high again. 3:Send a "I2C Start" 4:Send the address byte, 0x9B. (The 8 character display uses 0x94!!!!) 5:Pull MRQ low. 6:Send 13 data bytes. (The 8 character display uses 10 databytes!!!!) 7:Let MRQ go high 8:Send "I2C Stop" 9:We are back in the idle state. Findet man aber alles auf EElkes Seite. Die änderungen meiner Firmware zur 10 Char Anzeige sind nur geringfügig.
woher soll denn ein Opel-Radio wissen ob es an einem MID oder TID hängt? Ich glaube die Adresse hängt nur von der Länge des Displays ab (8 oder 10 Stellen). Die alten Radios von Opel konnte man noch per Tastendruck umstellen...
was habe ich in meinen treath geschrieben? das gleiche
oh sorry, so genau habe ich nicht gelesen. Außerdem kenne ich nur den Vectra B und Omega B, dort sind alle MID und TID 10-stellig :)
Hallo, ich habe einen corsa der mir auch wenn ich beide tasten länger drücke die geschwindigkeit kurz anzeigt am tid bis zu +53 kmh ich bin leider noch ganz am anfang mit microntrollern. weiß einer wie die geschwindigkeitsdaten an das tid übertragen werden? das könnte mann doch mit einem atmega8 irgendwie auswerten und dann auf selbenn display dauerhaft anzeigen auch beei mehr als 53 kmh??????????
würd mich auch interessieren.. In meinem Astra ist auch das "Kleine" Display drin und sollte etwas mehr anzeigen als nur Uhrzeit und Radiosender.... Aus dem Onboard-Interface kann man ja wohl wesentlich mehr Info rausholen
ja anscheinend schon aber ich weiß leide rnicht wie :( alle platinenpläne und programme die ich finde sind für einen pic microcontroller
Hi @all, also wer Interessen an ein paar Infos hat einfach per E-Mail mal anschreiben. Habe noch einige Baupläne für einen AVR mit sourcen da. Gruß Dennis
das wäre ganz wunderbar das würde endlich diese schreckliche datumsanzeige verbannen ;) schreib mir deine email adresse oder schreib mir direkt eine email an: markus@meine-fotos.info danke schon mal.
Achso ;) Die sollte ich natürlich dazu schreiben... info(at)bernau-design.de Gruß Dennis
Hi, Das TID hat das gleiche Geschwindigkeitssignal wie der Tacho. Dieses wird benutzt, um die Außentemperatur anzugleichen (evtl im Stand wenn der Kühler wärmt?). Da dann nur Stillstand oder Bewegung interessant ist, kann das TID nicht mehr als ~53km/h messen. Meinen Öltemperatur-Prototyp gibt es unter http://www.lrz-muenchen.de/~geislerm
Hallo, kann mir einer sagen welchen stecker und welche kupplung ich verwenden muss wenn ich mir da einen adapter bauen will ohne eben das kabel und das tid zu beschädigen? ich hab mit so anschlüssne immer pech, hab schon was bei reichelt dafür bestellt gehabt und das is jetzt wesentlich kleiner, obwohl ich die höhe gemessen hatte, aber naja. wäre jedenfalls sehr net wenn mir einer die reihclet artikelnummern sagen könnte dafür
Welches Auto hast du denn? Beim Vectra B mit gelbem 26-poligem Stecker am TID passt zB ein abgeschnittener Festplattenstecker. Bei Corsa B und Astra F auch. Beim Vectra mit 32 Polen (Facelift) ist der Pinabstand meines Wissens nach nur 2mm. Also als Bastellösung für den Schreibtisch geht ein Festplattenstecker, im Auto würd ich direkt hinterm Radio die Leitungen abgreifen und da einspeisen, über den ISO-Stecker: http://www.selfmadehifi.de/hifi/kfz-prod.htm runterscrollen bis Opel.
ja is nen corsa b danke, ich werds mal versuchen ;) das wär natürlich praktkisch weil man davon ja eh immer irgendwo welche rummliegen hat
Da doch reges interesse an dem OpelTID Projekt besteht, werde ich mal meine Daten alle wieder rauskramen und das Projekt wieder auferleben lassen. Werde in den nächsten wochen 1 x ASM Variante Online bringen. 1 x In C umschreiben (da ich gerade dabei bin mich in C zu probieren) Hauptproblem zur zeit ist, das ich kein Display zu liegen habe. Sollte jemand noch eins haben und es verkaufen wollen. Bitte email an mich. blackice2999@vodafone.de Gruß Blackice
Hi Wollte mich auch an ein Did aus einen Astra F Bj. 92 versuchen werde es in den nächsten Tage endlich bekommen. Mal gucken zu welchen ergebniss ich komme und vielleicht auch nicht schlecht deine C-Sourcen mal zum lüngern zu haben ;) Na den bi zu meinen (Fehl-)Versuchen :)
Hi BennyS, leider hab ich noch keine C Sourcen sondern nur in ASM bin dabei das jetzt alles in C zu machen. Um es "Schnittstellenfreundlich" zu halten. Gruß Dennis
An alle , die meine Platine nachgebaut haben. Ich habe Hardwaretechnisch eine Änderung vorgenommen, die !nur! Corsa für das Bj. 95 betrifft. Der Widerstand von 100kOhm muss durch einen Widerstand mit 330k ersetzt werden, da bei diesem und nur diesem Bj. die Spannung an der Zündspule primärseitig sonst zusammen fällt. Ergebniss---> Fehlzündungen (die man nicht bemerkt) ---> Kat kaputt Ich weis , das es schon viele Leute nachgebaut haben, und anscheinend tritt es nur beim Bj.95 auf. Warum das nur beim Corsa im 95er so ist, kann mein Fachverstand (leider) nicht erklären.
Einer der Gründe warum ich das ganze entweder so hochohmig wie möglich abgreifen würde. Oder noch besser Induktiv...
Ok Display hab ich. Leider ist das Flexkabel so alt das sich die Kontakte festgefreßen haben und vom Kabel gelöst :( aber konnte ich mit Pape und Isolierband richten, man sollte das DID jetzt nur nicht mehr aufmachen. Hat noch jemand solche Probleme? Oder noch besser eine Lösung Ansonsten hat sich gestern auch noch mein PC erabschiedet so das frühstens heute abend nach der Arbeit die Entwicklung beginnen kann.
Ich glaub ich werde verrückt, versuch jetzt seit 2 Tagen dieses dumme DID anzusteuern aber es will ums verrecken nicht grrr @Dennis Hättest du vielleicht dein ASM Code für mich? Und könntest mir verraten wie du es angeschloßen hast, Dioden, Transistoren, direkt ? Wäre dir echt sehr dankbar. Sonst komm ich morgen in die Geschlossene ;) Benny_Stark@online.de
Ich hätte mal eine ganz andere Frage ich bin leider nicht so der technik Fuchs und hab an und für sich auch Null Technik da. Würde aber mal gerne Wissen ob jemand sowas für eienen Gewissen Preis Baut und per Post Versendet? Wäre ja auf jedenfall nicht schlecht da ich schon lange nach einer DZM anzeige möglichkeit für meinen Corsa suche nur sind die Tacho Einheiten bei eBay Schweine Teuer. Würde mich über antworten freuen.
Mahlzeit, möchte mir auch sowas zusammenstellen. Das Problem ist, ich krieg die nötigen Daten nich zusammen. Abbildungen von Platinen gibts genug, aber die Bauteilkennzeichnungen und Größen hab ich noch nich gesehn... Hat jemand mal ne Liste parat ???
Da nun fast 2 Monate vergangen sind und ich wieder frohen Mutes bin. Kann jemand von euch (hier) vielleicht mal sein Anschlußplan und ein bisschen Code (C oder ASM) zur verfügung stellen, bitte? Ich bin nämlich damals schon daran gescheitert allein MRQ low zu ziehen und Antwort zu bekommen. :( Würd mich halt gerne nochmal dran machen.
Habe aus lauter Langeweile die beiden Boards Datum: 08.08.2005 15:55 Dateianhang: OPEL Interface.brd Datum: 10.08.2005 14:55 Dateianhang: Pic board 35 x 40.brd nach meinem Geschmack überarbeitet. Dabei wurde mehr auf ein anständiges Layout / Plan als auf die Schaltung geachtet. Änderungen Pic Board: C3 von 22µF auf 10µF geändert C4 10µF hinzugefügt C5 von 22 pF auf 1nF geändert R3 sollte wg. der hohen Spannung aus 2 x 47kOhm bestehen (beide stehend einbauen und oben zusammenlöten). Die Leiterbahnen sind breiter. Änderungen TID-Board: R3 und C6 können mechanisch größer sein C5 von 22 pF auf 1nF geändert C6 10µF hinzugefügt R3 sollte wg. der hohen Spannung aus 2 x 47kOhm bestehen. die Kathode von D4 kann an 12V oder 5V gejumpert werden. Das PinOut (Zählweise) von In und Out habe ich nicht kontrolliert. Die Leiterbahnen sind breiter. Die LED könnte mit 1kOhm dunkel leuchten. Das Programm von Visser habe ich schonmal getestet und geändert, hat auf Anhieb geklappt.
Wie kann ich diese *.sch und *.brd Dateien Öffnen ?? Bzw. mit welchem Programm ?
könnte jemand die Dateien als PNG exportieren und reinstellen, würde mir gerne mal die Schaltung anschauen.
.sch und .brd kann man mit Eagle von Cadsoft öffnen, ist kostenlos für den privaten Gebrauch...
ich weiss womit man das öffnet kann. Da es mir aber mal einge Schaltpläne zerschossen hat nach dem ich eine Datei aus dem Netz geöffnet hab, verzichte ich darauf. Falls mir jemand den Schaltplan mal exportieren kann wäre ich sehr dankbar.
Sowas ist mir noch nie passiert. Anbei 4 Stück 300dpi .png
danke Profi. Deswegen nutze ich es auch nicht mehr, habe mir Sprint-Layout gekauft womit ich meine Platinen mache, da ist halt manuelles Routen angesagt ist mir aber lieber als das entkntoten bei Eagle.
hi tut mir leid dass ich hier leichen ausgrabe aber ich stehe auch gerade vor dem problem ein tid anzusteuern. ich möchte gerne in c arbeiten habe bisher allerdings nur asm routinen gefunden und mein asm ist sehr dürftig. gibt es so etwas evtl in c? ich versuche seit 2 tagen das selbst zu stricken und hab das ding bis jetzt nur zum flackern bekommen. sowohl mit der eingebauten twi unterstützug als auch mit selbstgebauten routinen komme ich einfach nicht weiter bzw kann man die asm routinen irgendwie in c übernehmen? als mcu habe ich einen atmega8 in verwendung. bitte um hilfe mfg
hi ich weis dass mir keiner sagen kann wo der fehler in meinem code findet wenn ich ihn nicht poste-mir ging es eher darum ob jemand entweder weis wie an die bestehenden asm files einbinden kann-ich kenn mich mit asm nicht aus oder sowas schon mal in c geschrieben hat. mfg
Poste doch einfach mal was du bisher fabriziert hast, beschreibe was mit deisem Zeugs für ein "Systemverhalten" passiert, und freue dich auf Kommentar der mitlesenden ...
ok hier ist mal der sourcecode. vorerst ist alles mit blockierenden warteschleifen gelöst wenn das hinhaut stricke ichs um auf interrupts. erst mal geht es mir nur mal darum das irgendwie zum werkeln zu kriegen ansteuerung ist wie weiter oben mit 3 transistoren und 3 extra eingangspins gelöst. was passiert: gar nix das disp bleibt leer das programm läuft allerdings durch und leibt nirgens hängen. der µc ist mit 8mhz getaktet mfg
Hallo zusammen, mir stellt sich zur Zeit eine Frage die nur indirekt mit der Thematik hier zu tun hat, aber ich denke mal das passt trotzdem hier rein. Hier geht es ja auch um die ansteuerung des 10stelligen Tids das im Corsa C verbaut ist. Sicher kennt nun der eine oder andere die kleien Kilometeranzeige die im Tacho des Corsa C (und anderen Opel Modellen) die Tages- und Gesammtkilometer anzeigt. Ich würde nun gerne diese beiden Signale zusätzlich, zu den hier besprochenen, abgreifen und auf einem oder zwei Dot Matrix Displays ausgeben. Der Hintergrund ist der, dass ich damit eine Kombianzeige im Tacho unterkriegen will die diese KM-Anzeige ersetzt. Problem ist dabei dass ich keinerlei Ahnung habe wie dieses Display angesteuert wird. Ich vermute zwar dass ebenfalls über den I2C Bus läuft, aber ich weiß es eben nicht. Desshalb währe ich froh wenn jemand weiß wie die Displayansteuerung realisiert ist, bzw. wo ich die entsprechenden Signale anderweitig abgreifen könnte. mfg itchybee
itchybee, ich fürchte da hast du Pech. Das Kilometerdisplay wird von dem Mikrocontroller im Tacho direkt angesteuert. Beim MID/TID kann man nur deshalb eigene Texte anzeigen, weil die Zeile die eigentlich als Radiodisplay gedacht ist, missbraucht wird.
Naja ich dachte mir schon sowas, desshalbbin ich schon davon ausgegangen dass man das Signal direkt an den Zuleitung zum Display abgreifen muss. Da ist nur das Problem dass das immer noch ein Bussignal sein wird (sind doch etwas weniger als 70 Adern) - ohne zu wissen um was es sich da genau handelt brauch ich gar nicht anzufangen und leider hab ich nicht mal ein Oszi. Optisch abgreifen ist schlicht zu aufwendig (bei gut 70 Segmenten) und auch wegen der Größe nur schwer zu realisieren. Der einzige Hoffnungsschimmer den ich noch sehe, ist dass die Signale sicher im CAN-Bus mitgeliefert werden. Das währe mit einem PIC18F mit CAN-Bus Schnittstelle zu realisieren, allerdings ist mein Wissen über den Bus sehr rudimentär, also fern jeder Realisierung :-( Aber wenn jemandem trotzdem was einfällt währe ich sehr dankbar :-)
Hello, sorry, but i have no idea of German, i'm using Google to understand all of you :) I'm trying to use Arduino PCB with ATMEL ATMEGA328, to interface with TID. I found very usefull the source code "TID.c" but i canot find the TID.h library taht's is used there. Can you help me please. Thanks a lot!!!!
Hello Carlos here is my complete Tid source code. I hope it help you.
Hallo Alle zusammen ich hab will mich auch mal an der ganzen Thematik von der Ansteuerung ran setzen weil ich schlicht und ergreifend ne Beschäftigung suche die auch nen bissl nutzen hat ;-) Ich hab nen Atmega8 und wollte das mit Assembler machen, weil ich da mehr verstehe wie in C... Ich hab jetzt diese Schaltung mir zusammen gebaut und auf den Atmega angepasst, nur die PullDown Widerstände hab ich gelassen, weil die ja eigentlich auf nichts gehen? Da sollte es ja egal sein. http://www.mrserv.de/index.php?option=com_content&task=view&id=40&Itemid=33 Habe auch versucht diesen Quellcode umzuschreiben aber irgendwie will das ne, glaube das hängt an den Send Routinen, kann mir da jemand helfen? Oder hat gar jemand noch nen Code und nen Schaltplan für nen ATmega8 finde nur Sachen zu Pic´s
AstraGProb schrieb: > Oder hat gar jemand noch nen Code und nen Schaltplan für nen ATmega8 > finde nur Sachen zu Pic´s Ist zwar nen Tiny und kein Mega, aber damit gehts bei mir wie man hier sehen kann: http://www.youtube.com/watch?v=Gck8UfNMQiw Ist in C, basiert auf dem Code von Christian Lutze. Muss nochmal bisschen aufraeumen und vor allem das Ding auch mal im Auto testen, das ist gerade alles eher geraten mit der Geschwindigkeit.... Aber dann gibts auch den Source... Ich glaube ich hab mich naemlich z.B. hier verhaspelt g
1 | speed = (uint16_t) ((uint32_t) ((60UL / SIGNALS_PER_TURN * (unsigned long) F_CPU) / (((unsigned long) TIMER0_VALUE * TIMER0_PRESCALE) + ((timer0_overflows - timer0_overflows_offset) * 255UL * TIMER0_PRESCALE)) / TIMER0_PRESCALE) * WHEEL_CIRCUMFERENCE * 60 / 100 / 100); |
...und ja, ich lasse gerne Kompiler ihre Arbeit machen. Und die Zeile ist die schlimmste im Code :)
Hi Leute, habe versucht das TID mit nen Arduino anzusteuern, aber irgendwie klappt es nicht. daher zeige ich euch mal den vorläufigen Code von mir: /****************************************************************/ /* */ /* Opel Astra G TID Ansteuerung */ /* I2C-Protokol */ /* */ /****************************************************************/ #include <Wire.h> #define TID 0x9B #define _SCL 5 //#define _SCL_in 1 #define _MRQ 4 //#define _MRQ_in 3 #define _SDA 4 //#define _SDA_in 5 #define PIN void setup() { SDA_high(); SCL_high(); MRQ_high(); } void loop() { MRQ_low(); SDA_low(); while(get_SDA()); //warte bis SDA low delay(50); MRQ_high(); while(!get_SDA()); //warte bis SDA high delay(50); SDA_low(); delay(50); SCL_low(); delay(50); Wire.begin(); Wire.beginTransmission(TID); MRQ_low(); Wire.send(0x01); // Schalte Symbole aus Wire.send(0x01); // Schalte Symbole aus Wire.send(0x01); // Schalte Symbole aus Wire.send(0x85);// B Wire.send(0x8A);// E Wire.send(0xA4);// R Wire.send(0x8F);// G Wire.send(0x83);// A Wire.send(0x9B);// M Wire.send(0x83);// A Wire.send(0xA7);// S Wire.send(0x86);// C Wire.send(0x9E);// O delay(50); MRQ_high(); Wire.endTransmission(); SDA_high(); SCL_high(); MRQ_high(); delay(1000); } void MRQ_high(void) { PORTB &= ~(1<<_MRQ ); } void MRQ_low(void) { PORTB |= (1<<_MRQ); } void SCL_high(void){ PORTC &= ~(1<<_SCL); } void SCL_low(void) { PORTC |= (1<<_SCL); } void SDA_high(void) { PORTC &= ~(1<<_SDA); } void SDA_low(void) { PORTC |= (1<<_SDA); } uint8_t get_MRQ(void) { return (PINB & (1<< _MRQ)); } uint8_t get_SCL(void) { return (PINC & (1<< _SCL)); } uint8_t get_SDA(void) { return (PINC & (1<< _SDA)); } Zuerst wird einmalig void setup() ausgeführt und danach void loop() bis zum bitteren ende. Vieleicht weiß einer von euch was bei mir schief geht und das programm nicht funzt. MFG
@cascade unn haste es am laufen ? will event. auch sowas aehnliches bauen vlg Charly
@charly Es liegt in der Ecke und wurde nicht wieder angefasst, leider :) Wollte das aber ueber die Feiertage mal fixen... Also das was nicht laeuft ist Drehzahl/Geschwindigkeit... Da ist halt nen Denkfehler drin...
aha, bin am ueberlegen ob i mir auch eine ansteuerplatine baue oder gleich ein eigenes MiD mir Grafik-LCD (zuerst monochrom) vlg & ein frohes Fest Charly
Hallo. Spannung für High: >4V Spannung für Low: <1V Pull-Up Widerstände auf Slave Seite hat schon jemand erfolg mit dem xmega gehabt. Dieser ist ja mit 3,3V unterwegs.
Heintje schrieb: > hat schon jemand erfolg mit dem xmega gehabt. Dieser ist ja mit 3,3V > unterwegs. Wie bei MT geschrieben habe ich meinen Tiny mal mit 3.3V laufen lassen und das Display läuft immer noch. Auf Grund der Nachfragen (ja, mehrere) anbei mein Source. Allerdings ohne den Geschwindigkeits- und Umdrehungen-pro-Minute-Teil. Da der aktuell nicht so läuft wie ich das gerne hätte hab ich den raus genommen bevor der zu verwirrend wird :) Aber die Ansteuerung vom Display ist drin, Laufschrift, Bargraph (wie man im Video sieht) und sowas... Auf http://www.mylifesucks.de/oss/c-tid/ ist das auch und wenn ich das mal schaffe den Kram richtig zum laufen zu bekommen, gibt es auch den Drehzahl Kram und so... Problem bleibt wie immer: Zeit :-/
Hallo Leute, Bin gerade dabei das TID zum Arbeiten zu bewegen. Leider will es nicht :-( Habe mal die Source angehängt. Sprache ist Mikrobasic. Kann da jemand von euch ansehen, wo eventuell der Hacken ist? mfG Kubisch
SDA,MRQ,SCL und Radio is on(12V vom TID) sind über dioden auf die uC Pins geführt. Wie bei Eelke Viesers Schaltung.
Warum übersetzt du die oben genannten Codes nicht in deine Sprache??
Hi folks! I have an VDO CDR2005 radio from my Astra G/H (here in Brazil it's called Vectra C... by the way) and I want to communicate with this radio using my arduino uno r3 using SCL, SDA and MRQ like you I do with my MID/TID. I cannot find a library or an example that shows how CDR2005 communication works because everyone wants to send data/string to MID/TID but nobody needs to retrieve data from the radio like radio station. Can someone tell me how can I read data from CDR2005 using Arduino?
Hallo. Ich habe einen Opel TID und ich möchte auf das Display (TID) Informationen, den Text zu senden. Aber ich habe nicht bekommen. Ich brauche Hilfe!!! Schreiben von Code in Bascom. ATtiny25 Mikrocontroller Hier ist ein Beispiel von meinem dummen Code:
1 | $regfile = "attiny25.dat" |
2 | $crystal = 8000000 |
3 | |
4 | Dim Text2s As String * 9 |
5 | Dim A As Byte |
6 | Config Pinb.1 = Output ' MRQ |
7 | Config Sda = Portb.0 'SDA |
8 | Config Scl = Portb.2 'SCL |
9 | I2cinit |
10 | Config I2cdelay = 48 |
11 | |
12 | For A = 1 To 9 |
13 | Text2s = "WELCOME " |
14 | Next A |
15 | |
16 | Set Pinb.1 |
17 | |
18 | Do |
19 | Set Pinb.1 |
20 | Reset Pinb.1 |
21 | Set Pinb.1 |
22 | I2cstart |
23 | Reset Pinb.1 |
24 | Set Pinb.1 |
25 | Reset Pinb.1 |
26 | I2csend &H94 , Text2s |
27 | I2cwbyte A |
28 | Set Pinb.1 |
29 | I2cstop |
30 | Return |
31 | |
32 | Loop |
Ich danke Ihnen für Ihre Hilfe)
1 | $regfile = "attiny25.dat" |
2 | $crystal = 4000000 |
3 | |
4 | |
5 | Config Pinb.1 = 1 ' MRQ |
6 | Config Sda = Portb.0 'SDA |
7 | Config Scl = Portb.2 'SCL |
8 | I2cinit |
9 | |
10 | Do |
11 | |
12 | Reset Pinb.1 |
13 | |
14 | Set Pinb.1 |
15 | Reset Pinb.1 |
16 | |
17 | Set Pinb.1 |
18 | I2cstart |
19 | |
20 | I2cwbyte &H9B 'addres |
21 | Waitms 5 |
22 | Reset Pinb.1 |
23 | I2cwbyte &H01 'symbol |
24 | I2cwbyte &H01 |
25 | I2cwbyte &H01 |
26 | I2cwbyte &H85 'letter B |
27 | I2cwbyte &H85 |
28 | I2cwbyte &H85 |
29 | I2cwbyte &H85 |
30 | I2cwbyte &H85 |
31 | I2cwbyte &H85 |
32 | I2cwbyte &H85 |
33 | I2cwbyte &H85 |
34 | I2cwbyte &H85 |
35 | I2cwbyte &H85 |
36 | |
37 | I2cstop |
38 | Set Pinb.1 |
39 | |
40 | Loop |
not works....
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.