moin, ZITAT(matthiaspaul @ 2010-05-01, 22:54) Theoretisch könnten die während SS = high beobachteten MISO-Daten also von einem anderen (uns unbekannten) SPI-Gerät stammen, das in diesem Moment selektiert wird. Insofern ist das, was wir da im Log sehen, prinzipiell durchaus noch mit SPI vereinbar, es paßt nur nicht so recht zu der Tatsache, daß wir (meinen zu) wissen, daß sich zumindest auf diesem SPI-Bus nur zwei Instanzen, die Kamera-CPU (als Master) und das Objektiv (als Slave) miteinander unterhalten und es keine weiteren SPI-Geräte am gleichen Strang gibt. Aber 100% sicher ist das nicht.[/quote]
zumindest bei der a900 hängt der lens-Teil des internen SPI-Bussystems, an dem praktisch alles angeschlossen ist incl. dem Sensor selbst, nicht direkt an der main-CPU (IC4001) wie alles andere, sondern am I/O-Controller (IC4101). Der steuert auch die Kontakte F2 und F3 des Blitzschuhs, treibt die LED1..7 der AF-Feld-Anzeige (8+9 muss IC4001 selbst machen...) und überwacht das Drehen von Blenden- und AF-Motor (nicht die Position oder Drehwinkel, nur "Anschlag".
Das die externen Anschlüsse über ein zusätzliches IC geführt werden dient sicher einerseits dazu, mehr Treiberleistung zu haben und Kurzschlussfestigkeit zu realisieren (letztere habe ich gerade an der Dynax 5 getestet, funktioniert), verhindert aber sicher auch das "rausspiegeln" von internen Daten. Ich gehe vorerst weiter davon aus, dass die Daten wirklich vom Objektiv kommen. Schaltpläne aus der minolta-Zeit habe ich nicht, es dürfte aber ähnlich aussehen. Sobald die erste uAsim-Version läuft, können wir das in einer synthetischen Umgebung prüfen und abschließend klären.
ZITAT(DanielSch @ 2010-04-30, 12:55) (1)- Mit den Datenquellen hast du natürlich Recht. Aber mehr als die vier Objektive besitze ich nicht; ist bei mir noch eine Frage des Geldes.
(2)- Ich habe kein Problem mit der Blendenformel. Die Verkürzung der Brennweite im Nahbereich war mir auch schon bekannt; in den ROM-Daten wird sie aber beim Fokussieren im 0x80/0x81-Protokoll zumindest auf Byte 8 nicht berücksichtigt.
(3)- Ich schreibe meine meisten uC-Programme noch in Assembler, da ich oftmals eine Echtzeitfähigkeit brauche und die Ausführungszeiten genau nachvollziehen möchte. Da sich die Sprache seit Urzeiten nicht geändert hat, dürfte das Lesen des Programmes daher auch für jeden, der mit uC-s umgeht, kein größeres Problem darstellen.
(4)- Das Auslesen der Objektiv-ROMs ging mit meinem Aufbau recht einfach und störungsfrei. Den ATmega16 per RS232 an den Rechner anschließen, den SPI-Port mit einem Kabel an die Objektivkontakte ankleben, ein Programm wie TelNet aufmachen und dann den bereits fertig decodierten Protokollstrom mitlesen. Irgendwelche Pegeländerungen zwischen den Protokollpaketen kann man damit natürlich nicht erkennen.
(5)- Zum Chippen von Objektiven im manuellen Fokus-Betrieb reichen die Informationen bereits aus. In wie weit für einen AF noch zusätzliche Informationen nötig sind, werde ich mal an meinem Novoflex mit manueller Scharfstellung per Hand testen.[/quote]
zu (1) ich kann mir auch nicht alle Objektive auf einmal leisten, die ich gerne hätte Die Novoflex sind neu immer noch schweineteuer...
zu (2) aber eventuell wird die Verkürzung in den AF-Koeffizienten berücksichtigt, die Wirkung des Distanz-Switches beim 200/2.8APO und der Einfluss des D-Encoders beim SAL1870 deuten darauf hin. Auch die floatende Blende bei Zooms wird nicht durch Ändern der Anfangsöffnung, sondern mit einem Offset (in 0x03) dargestellt.
zu (3) wenn die Annahme, dass die LensChips eigenmächtig ohne SS senden und den Master zum "clocken" animieren, benötigen wir harte Echtzeitfähigkeit. Dann führt kein Weg an Assembler mit dem Codebuch auf den Knien vorbei.
zu (4) damit siehst Du nur die (im Sinne eines regulären SPI-Protokolls) gültigen Daten. Es passiert aber noch mehr auf den Leitungen, und genau daran werden die Kompatibilitätsprobleme liegen. Erste Hinweise habe ich gefunden, Details folgen.
zu (5) klar, das haben auch vasimv und James Lao T hinbekommen, letzterer verkauft die Teile als sog. AFconfirm-Chips in der Bucht. Aber damit geht definitv kein AF, auch wenn man die AF-Daten einprogrammiert; und Wolframs schizophrenes 200/2.8HS, welches sich meistens für ein 300/2.8HS hält, kann man damit auch nicht fixen.
ZITAT(DanielSch @ 2010-04-29, 21:38) Naja, das wäre auch mein Traum gewesen, die alten Novoflex auf Autofokus umzubauen. An die AF-Stange der Kamera einen kleinen Drehencoder angekoppeln und den Pistolengriff mit einem Schrittmotor mit Gewindespindel ausstatten. Oder gleich die HSM-Signale nutzen, die für mich jedoch noch völlig im Dunkeln liegen (sind elektrisch auf den zusätzlichen drei Pins der 8 poligen Platinen zu finden). [...]
An Gerätschaften hätte ich daheim einen alten Logikanalyzer (1630D von HP) sowie ein digitales Speicheroszi (54201D von HP) herumstehen. Falls also noch genauere Timings benötigt werden oder etwas verifiziert werden müsste, könnte ich das eventuell machen.[/quote]
Ich würde auch direkt über den SSM-Weg gehen, das ist ein bidirektionales Protokoll ohne "Schweinereien" wie versteckten Daten im Timing. Geht sicher leichter, als die Stange abzugreifen.
Darf ich Dich gelegentlich um den Einsatz des Speicher-Oszi bitten (eilt nicht!? Ich hätte gern die Form der Takt- und Bitflanken (Anstiegszeit und Abfallzeit), und die genaue Zeitbeziehung zwischen Takt und Daten (delta-T von Anstieg Takt zu Anstieg Daten, gültig sind sie erst bei fallender Flanke). Zuerst reicht ein Byte locker, also ein Block von 8 Takten. Das Timing ist sehr genau einzuhalten, sonst gibt es Kompatibilitätsprobleme... Weitere Timingdetails genauer zu untersuchen macht erst dann Sinn, wenn wir eine Vorstellung davon haben, worauf es ankommt.
ZITAT(Nils @ 2010-05-01, 23:48) ...äh, blöde Frage aber was macht Ihr hier in diesem Fred eigentlich und mit welchem Ziel? [/quote]
Spielen?
gruesze, thomas