ZITAT(ddd @ 2010-11-28, 20:14) Auch ein "offener" Minolta/Sony-Konverter verhält sich kameraseitig wie ein Objektiv, nur die Inhalte des Datensatzes sind ungültig;[/quote]
Aber inwiefern stört das, wenn wir dem konvertereigenen Controller mit dem Analogumschalter den "Weg zur Kamera" abschneiden? Wenn das im "falschen Moment" passiert, bekommt die Kamera ggfs. noch einen unvollständigen bzw. verstümmelten Datensatz mit, und danach nur noch die Daten, die direkt vom angesetzten Objektiv kommen und am Konverter vorbeilaufen.
Das einzige Problem, das ich dabei im Moment sehe, ist, wenn die Kamera die Daten nicht regelmäßig neu abfragt, sondern sich darauf verläßt, daß sich nichts geändert hat, solange sie keinen Objektivwechsel detektiert. Aber kann das überhaupt passieren?
Was ist, wenn man den Konverter an der Kamera beläßt und nur das Objektiv entfernt und ein anderes ansetzt? Bekommt die Kamera davon grundsätzlich nichts mit? Oder werden nicht nach kürzester Zeit die Daten vom neuen Objektiv empfangen und übernommen?
Angenommen, der Mikrocontroller hätte die Entscheidung getroffen, auf "Durchzug" umzuschalten, dann könnte er z.B. immer noch etwas warten, bis die Kamera, die sich mit dem Konverter unterhält, eine kleine Pause einlegt und die Umschaltung erst in so einem Moment der Stille vornehmen. Auf diese Weise würde verhindert, daß die Kommunikation Kamera <-> Konverter mittendrin unterbrochen wird.
ZITATzudem sorgen die offenen Eingänge auf der Objektivseite für gelegentliches "floaten".[/quote]
Das wäre in der Tat ein Problem, da dann bei der vorgeschlagenen Objektiverkennungsmethode über einen Flankenwechsel der objektivseitigen "L1" (LSIN)-Leitung von High nach Low zufällige Interrupts ausgelöst würden. Wie groß ist denn der Wert des Pullup-Widerstands R9 in Olavs Schaltplan (der dient doch offenbar gerade dazu, ein Floaten der Leitung bei offenem Eingang zu verhindern)?
ZITATDas Protokoll enthält abhängig von der Kamera vor dem eigentlichen Datensatz noch Signalisierung.[/quote]
Aber das Protokoll müssen wir hier gar nicht verstehen oder auswerten. Egal, was für Daten über "L1" vom Objektiv in den Konverter laufen, allein die Tatsache, daß dort Daten ankommen, zeigt doch schon, daß ein Objektiv montiert ist.
Kommen dort keine Daten an, ist entweder kein Objektiv montiert oder es wird vom Konverter nicht angesprochen ("L4" CSLNS, "L3" LSCK). Dieser Fall ist aber für uns auch nicht interessant, denn kommen innerhalb der zu definierenden Zeitspanne keine Daten, würde unser nachträglich eingebauter Mikrocontroller dies als Aufforderung, den "Durchzugsmodus" zu aktivieren, verstehen und den Analogmultiplexer so umschalten, daß der konvertereigene Controller jeweils ausgangsseitig aus dem Signalweg genommen wird und nichts mehr ausrichten kann. Stattdessen würden dann die Daten eines später montierten Objektivs unverändert direkt zur Kamera weitergereicht und umgekehrt. Zurück in den Normalmodus ginge es nur über das Ausschalten der Kamera (was ist mit Standby-Spannung an "L2"?), durch Drücken der Objektiventriegelungstaste (funktioniert das immer?) oder durch Abmontieren des Konverters von der Kamera (und damit Reset unseres Mikrocontrollers).
ZITATAuch Sensing über Pins ist nicht so einfach, könnte aber klappen. Wenn würde ich zuerst in der Richtung weiter denken, ich suche meine Messwerte noch mal raus.[/quote]
Ich dachte zuerst daran, eine Brücke zwischen "L5" (DGND) und "L8" (PGND) als Erkennungsmerkmal zu verwenden, aber ich denke, daß wir uns damit viel zu stark in Abhängigkeit von der Implementierung im jeweiligen Objektiv begeben. Außerdem ist PGND ja nicht floating, sondern irgendwo in der Kamera indirekt doch wieder mehr oder weniger sternförmig mit Masse verbunden.
Daher meine Idee mit dem Interrupt, der von "L1" am R2 abgeleitet wird. Idealerweise würde ein einziger solcher Flankenwechsel schon reichen, um anzuzeigen, daß ein Objektiv montiert ist, aber wenn es wirklich sporadisch grundlose Flankenwechsel gäbe, müßte man das noch etwas intelligenter realisieren, z.B. indem eine bestimmte Zahl Flankenwechsel in einer bestimmten Zeit oder in Abhängigkeit von der Taktleitung "L3" erkannt werden muß, oder indem wirklich das Protokoll passiv mitgehorcht wird und die Umschaltung geschieht, wenn die vermeindtlich vom Objektiv kommenden Daten keinen Sinn ergeben.
ZITATWenn der Schaltplan von Olav stimmt, ist L6 direkt durchverbunden, braucht also nicht weiter beachtet werden.
Die Spannungsversorgung L2/L5+L7/L8 ist auch durchverbunden.[/quote]
Davon bin ich überzeugt. Die Umschaltung betrifft potentiell nur "L1", "L3" (beide unidirektional, daher jeweils ein Umschalter am Ausgang) und "L4" (bidirektional, daher zwei Umschalter - einer am Eingang, der andere am Ausgang) und idealerweise sogar nur die Rückleitung vom Objektiv zur Kamera, also "L1".
ZITATÜber L3 läuft "nur" der Takt, und L4 selektiert "nur" den slave. Der dazwischengeschaltete µC samt der Aussenbeschaltung dürfte hier nicht stören.[/quote]
Ja, das wäre ideal, das ist ein sehr interessanter Gedanke, zumal man dann noch mehr Auswahl bei den Multiplexern hätte und diese mit weniger Pins und damit kleiner ausfallen könnten. Je nachdem, wie kritisch das Timing ist, könnte man vielleicht sogar ganz auf einen Multiplexer verzichten, indem man sowohl "L1" vom Objektiv als auch "L1 "vom Konverterchip an Eingänge unseres Mikrocontrollers führt und einen Ausgang des Mikrocontrollers dann an die "L1"-Leitung Richtung Kamera. Die Umschaltung würde dann digital im Mikrocontroller erfolgen. Das funktioniert aber nur, wenn das Timing nicht sehr kritisch ist (und es gäbe dafür wohl auch besser geeignete Controller als den ATtiny13). Gerade aber weil Du oben angemerkt hast, daß das Timing eng ist, habe ich diese Möglichkeit, ins Protokoll einzugreifen, gar nicht näher in Betracht gezogen. Es ist aber in der Tat lohnenswert, das genauer zu untersuchen, weil sich der Verdrahtungsaufwand damit erheblich reduzieren würde.
Können wir sicher sein, daß der Konverterchip den Takt einfach nur ggfs. um ein paar Taktzyklen oder Gatterlaufzeiten verzögert durchreicht? Was ist, wenn der Konverter dem Objektiv eine Kamera vorgaukelt und der Kamera ein Objektiv, beide Schnittstellen aber zeitlich unabhängig voneinander bedient werden?
Dagegen spricht allerdings, daß "L6" (LSOUT) einfach durchgereicht wird, wie Du ja schon angemerkt hast... Es besteht demnach entweder kein enger zeitlicher Bezug zwischen "L6" und "L3" (LSCK), oder "L3" wird tatsächlich unmittelbar durchgereicht.
Verkraftet das Protokoll ein zeitliches Verschleifen der Objektivantwort über "L1" in Bezug auf den vorgegebenen Takt?
ZITATLeider kann ich das mit meiner Testkamera nicht ausprobieren, ohne einen TK zu schlachten, was ich nicht vorhabe.[/quote]
Und ich besitze keinen der genannten Minolta- oder Sony-Konverter, kann da insofern leider auch nicht aushelfen. ;-)
Viele Grüße,
Matthias