Hallo, ich habe eine Frage zum Angehängten Schema-Schnipsel (Ich darf leider den Schaltplan nicht komplett publizieren da Firmenprojekt). Das Schema bestand bereits, ich habe die Aufgabe es zu erweitern / verbessern. Leider habe ich keinen Zugriff auf die Code-Files die auf dem ATmega32 laufen! Am ganzen Port C des ATmega32 sind Schalter und Taster, je 1 pro Pin angehängt. Ich habe mich nun gefragt, warum dort ein Widerstand 1kOhm von PC7 zu PD3 angehängt ist. Die Pins PC6 / PC7 sind nebst I/O ja auch das TWI (I2C) beim ATmega32... Könnte es sein das über PD3 der Widerstand als Pullup für die SCL-Leitung geschaltet wird? Und wenn plausibel, warum gibt es an der SDA-Leitung keinen? Ausser den Tastern / Schaltern hängt nur eine Stiftleiste an diesen Leitungen... Hoffe ihr könnt mich da aufklären! Gruss Fisch-Otter
:
Bearbeitet durch User
Die ganze Schaltung macht keinen Sinn, wenn die Leitungen als SDA/SLC genutzt werden. Warum sollte man einen seriellen Bus mit Tastern auf Masse legen? Außerdem ist 1k sehr klein für einen I2C-Pullup
Auf den ersten Blick ist das so. Das Board wird als Entwicklungstool genutzt. Es sind 8 Taster / Schalter an Port C und 8 LEDs an Port B. Das ganze dient im Normalfall als I/O Simulation während der Entwicklungsphase. Meine Überlegung war halt, dass derjenige welcher sich die Schaltung ausgedacht hat, sich alle Möglichkeiten des Chip's (z.B. eben I2C) offen lassen wollte. Theoretisch könnte man ja die beiden Leitungen als I2C verwenden, nur darf man dann halt keine der beiden Taster/Schalter betätigen. Oder nicht? Wäre in diesem Falle der Widerstand ein möglicher Pull-Up der über Port D "zugeschaltet" wird?
Es scheint so, das der Widerstand dazu da ist, die Taste T19 auch als Interrupt abzufangen. Also dass diese immer funktioniert. I2C ist immer noch moeglich. Der Widerstand ist da, sollte PortD mal als Output geschalten sein, damit dann kein Porttreiber schaden nimmt.
Vielleicht wollte man den Clock-Zustand separat auslesen (Erkennung Clock-Stretching) seitens eines Slaves? Falls Software-I2C-Routinen benutzt werden spart man sich damit vielleicht das umschalten Ausgang/Eingang zum Lesesn des Clock-States?
Oliver R. schrieb: > Die ganze Schaltung macht keinen Sinn, wenn die Leitungen als SDA/SLC > genutzt werden. > Warum sollte man einen seriellen Bus mit Tastern auf Masse legen? Vielleicht soll man das gar nicht, sondern die Leitungen werden sowohl zu Tastenabfrage als auch für die I2C-Kommunikation genutzt - je nach Programmierung. George St. schrieb: > Leider habe ich keinen Zugriff auf die Code-Files die auf > dem ATmega32 laufen! Wenn auf dem µC schon ein sinnvolles Programm zur Nutzung der Beschaltung läuft, könntest du mal mit dem LA/DSO gucken, was auf den Leitungen so los ist. Ein 1k-Ohm Pull-up für SCL ist nicht gerade groß, kann aber noch ok sein. Es wäre natürlich interessant zu wissen, ob SDA auch mit einem ähnlichen Pull-up beschaltet ist - aber dafür ist das Projekt wohl zu geheim.
Felix M. schrieb: > Falls Software-I2C-Routinen > benutzt werden spart man sich damit vielleicht das umschalten > Ausgang/Eingang zum Lesesn des Clock-States? Nein, sowas kannst Du nicht bringen. SCL (und auch SDA) darfst Du immer nur entweder auf low ziehen oder offen lassen, d.h. wenn Du Software-i2c machst dann verwendest Du nur das Datenrichtungsregister zum senden, niemals das Portregister:
1 | static inline void scl_low() { |
2 | DDR_SCL |= BIT_SCL; |
3 | }
|
4 | |
5 | static inline void scl_high() { |
6 | DDR_SCL &= ~BIT_SCL; |
7 | while (!(PIN_SCL & BIT_SCL)); // wait for slave clock stretching |
8 | }
|
:
Bearbeitet durch User
George St. schrieb: > Hallo, > > Ich darf leider > den Schaltplan nicht komplett publizieren da Firmenprojekt > [...] Leider habe ich keinen Zugriff auf die Code-Files die auf > dem ATmega32 laufen > [...] Ich habe mich nun gefragt, warum dort ein Widerstand [...] > [...] ich habe die Aufgabe es zu erweitern / verbessern [...] Ich hab mir erlaubt die relevanten Teile Deiner Frage mal hervorzuheben damit es offensichtlicher wird. Sag Deinem Chef Dass Du das Projekt nicht weiterentwickeln kannst wenn er vor Dir geheim hält was es macht, wozu es dient und wie es funktioniert oder funktionieren soll, denn Du kannst genausowenig hellsehen wie irgendeiner von uns hier. Lass Dir Zugriff geben auf den bisherigen Code und alle existierende Dokumentation zu dem Projekt.
:
Bearbeitet durch User
@ Bernd: Ich werde am Montag versuchen, an noch mehr Infos über das Projekt zu kommen und melde mich anschliessend wieder. @Alle: Schonmal vielen Dank für die bisherigen Inputs! Ich versuche noch mehr über den geplanten verwendungszweck in Erfahrung zu bringen. Je nach dem kann ich den Widerstand dann auch weglassen falls die ursprüngliche Verwendung nicht mehr benötigt wird. Gruss George / Fisch-Otter
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.