Hallo Ich lese in diesem Forom schon länger mit, wenn ich programmiertechnische Fragen habe. Nun habe ich ein Problem bei dem ich Hilfe brauche. Ich arbeite selbst in der Elektronikentwicklung einer kleineren Firma. Die Programmierung von Microchip und Atmel ist mir nicht fremd. Und nun zu meinem Problem: Ich besitze eine D70, die erste Einsteiger Digital SLR von Nikon. Wie alle Consumerkameras ist diese in ihren Funktionen eingeschrängt. Es ist keine Arbeitsblenden Belichtungsmessung möglich, da keine Objektive ohne Elektronik (älter als AF) verwendet werden können. Da ich aber ein gutes 50mm F1,4 AI Objektiv habe, dachte ich mir dafür einen Controller fertig zu machen. Als Vorlage und Teilespender (kontakte) habe ich ein schrottiges Sigma UC 28-70mm F 3,8-4,8 besorgt. Die Übertragung zwischen Kamera und Objektiv habe ich mit Hilfe eines Adapteringes und Flachbandkabels analysiert. Es gibt mindestens fünf Kontakte: VCC: 5V RC1: Damit leitet die Kamera die Übertragung ein, wird dann vom Objektiv übernommen. SCK: Clock, taktet nur 8mal pro Byte. Bei steigender Flanke wird bit übernommen. Macht immer die Kamera. SIO: Daten 8 Bit. Ich denke LSB zuerst. Ist Bidirektional. Frei: Zur Codierung. Frei: GND: Masse Die drei Steuerleitungen sin alle Opencolektor. Die Kamera fragt nach einem Objektiv durch ziehen von RC1. Das antwortet ebenfalls durch low auf SIO. Nach 1 ms muß das Ojektiv die RC1 Leitung übernehmen und SIO wieder frei machen. Die Kamera taktet nun ein Byte zum Objektiv. Das antwortet indem erst RC1 einmal nach High und zurück wechselt und die Kamera mit SCK das Byte liest. Wenn das Objektiv mit dem Byte der Kamera nichts anfangen kann antwortet es mit 0xFF. Da passiert mit 0x28, 0x27 und 0x25 mit denen die Kamera immer beginnt. Bei 0x22 antwortet es mit 26 Bytes. Diese 26 Bytes sind bis auf 7 Bytes statisch. Fünf davon übertragen die Brennweite und zwei die kleinste Blendenzahl. In den unveränderlichen Bytes scheint noch mehr wie z.B. die größte Blendenzahl codiert zu sein. Nur die eingestellte Entfernung wird nicht übertragen, das ist bei diesem Objektiv noch nicht vorgesehen. Die Nachbildung der Objektiv-CPU hebe ich nun fertig. Aber aus den zu übertragenden Daten werde ich nicht schlau. Ich sehe keinen Zusammenhang zwischen den Werten und den realen Blenden- und Brennweitenzahlen. Gibt es hier jemanden mit Erfahrungen zu diesem Protokoll der mir helfen könnte? Gruß Rainer
Hallo Jetzt habe ich mal meinen Sourcecode und eine Liste mit Objektivdaten angehängt. Vieleicht hat jemand eine Idee? Gruß Rainer
Deine Tabelle koennte ein paar mehr Informationen vertragen. Warum gibt es mehrere Datengruppen bei gleicher Brennweite und Blende? Was hast du veraendert?
Hi Ich habe diese Tabellen nur von den Objektiven abgenommen. Sie sind noch orginal. Zwischen den markierten Brennweiten und Blenden ändert sich an der Kamera nichts obwohl sich der Datenstrom in feineren Schritten ändert. Bei den beiden Objektiven ändern sich ja auch nicht die gleichen Spalten. Ich bin mir zur Zeit nur sicher, daß die Spalten F-K für die Brennweite sind. Wenn ich diese alleine verändere, zeigt mir mein SB600 Blitz das an. Er kann aber nur Werte von 28-70mm anzeigen. Bei den Spalten X-AC muß es sich um kleinste Blendenzahl und irgendwie um die Blendenstufen handeln. Ich konnte hier schon eine Blende von F1,4 angeben. Aber leider waren dann nur 23 Stufen stellbar. Es ging dann nur noch bis F16 statt 22 abzublenden. Ändern konnte ich das aber nicht. Jeder weitere Versuch wurde mit Blende F1,0 ohne weitere Blendenstufen belohnt. Mehr habe ich bisher noch nicht heraus gefunden. Gruß Rainer
Hallo Ich habe jetzt endlich Zeit zum weiteren testen gefunden. Ich habe eine neues Exelsheet beigefügt. Bei den blauen und orangenen Spalten in ich mir bei der Funktion sicher. Die kleinste Blendenzahl (orange) habe ich von F 1.0 bis F 6.7 ausgetestet. Die Brennweite (blau) konnte ich nicht genau beschreiben, weil ich nur mit dem Blitzgerät von 24 mm - 85 mm testen kann. Alle gelben Spalten ändern sich ohne das ich erkennen könnte wofür das gut ist. In den restlichen Werten ist noch die mögliche Anzahl der Blendenstufen enthalten. Wenn ich beim Sigma die Blende von F 3.8 auf F 1.4 ändere, verringert sich auch die größte Blendenzahl von F 22 auf F 16 (17 Stufen) mit. Und das wäre auch richtig. Also muß diese Zahl noch irgendwie codiert sein. Kennt jemand bei einer Nikon Kamera eine Möglichkeit, wie man erkenen kann ob das Objektiv die Entfernung für die Matrixmessung ändert? Gruß Rainer
Hallo Ich habe jetzt die drei wichtigsten Werte entschlüsselt. 1. Die Brennweite: Mit meinem Blitz konnte ich Brennweiten von 24-85 mm nachbilden. Da damit meine 50 mm dabei ist, reicht es mir. Mehr Infos wäre mit Fotos und dessen EXIF Daten möglich. Eine Brennweiteänderung beeinflußt normalerweise die Blende auch. 2. Offenblende: Die Blendenwerte sind sehr fein gestuft und werden von der Kamera angezeigt. Bei meinem Tamron lügt der Hersteller mit der Blende. Egal ob 28 oder 75 mm. Die Blende bleibt bei F 2.8, was nicht möglich ist. Der Durchmesser der Frontlinse wird beim zoomen ja nicht größer. Mein Tokina Macro (100 mm ohne D) dagegen, ändert die Offenblende beim Scharfstellen im Nahbereich, weil es sehr lang wird. Müßte der hersteller nicht unbedingt zugeben. 3. Entfernung: Sie war schwer zu erkennen, weil nicht alle Objektive sie Übermitteln und sie ungenau sind. Gerade Unendlich ist nicht bei allen Herstellern gleich. Schön wäre es jetzt noch zu wissen: 1. Wo stehen die konstanten Blendenstufen. Meine Lösung beinhaltet eine passende Blendenstufung die von F 1.4 bis F 16 reicht. Sie ist identisch mit F 3.8 bis F 22. Wo sie aber wie codiert ist verstehe ich nicht. 2. Die Entfernung hat noch eine zweite Information ohne ersichtliche Funktion. 3. Es gibt noch weitere veränderliche Werte (gelb). Es geht aber auch ohne sie. 4. Die Konstante Werte. Auch hier sehe ich keine Abhängigkeiten, wenn ich sie verändere. 5. Und wozu werden die Daten bei Komando 0x25,0x27,0x28 länger. 0x28 könnte AF-S und 0x25 D-Objektive bedeuten. Ich werde nun ein Folienpoti zur Entfernungs Feststellung nehmen und die restlichen Werte konstant lassen. Der Sourcecode ist im groben fertig. Jetzt kann er auch die Kamera nachbilden und die Daten an der UART ausgeben. Rainer
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.