Forum: Mikrocontroller und Digitale Elektronik Problem beim Auslösen von Interrupts beim ATMega


von Miko (Gast)


Lesenswert?

Ich versuche mit einem ATMega16 mit einem anderem Gerät zu 
kommunizieren. Die Kommunikation ist unidirektional, der AVR muss nur 
Empfangen können. Das Gerät hat eine 7-bit paralleles Interface und 
einen strobe pin, ein an sich sehr einfaches Interface. In etwa die 
Beschaltung:
1
                                              3 Meter Kabel                      Gerät                            
2
                                                                          +--------------------------------------+
3
                                5 Volt        +-------+                   |                                      |
4
5V +------+-----------------------------------+       +-----------------------------------------+                |
5
          |                     Masse         |       |                   |                     |                |
6
GND-------+-+---------------------------------+       +---------------------------------------+ |                |
7
          | |                                 |       |                   |                   | |                |
8
          | |  +-----------+                  |       |                   |                   | |                |
9
          | +--+           |    7 Bit Data    |       |                   |                   | |                |
10
          | |  |           +------------------+       +-------------------+                   | |                |
11
      +---+----+           |------------------|       |-------------------|                   | |                |
12
      |     |  |           |------------------|       |-------------------|                   | |                |
13
      |     |  |           |------------------|       |-------------------|                   | |                |
14
      |     |  |           |------------------|       |-------------------|                   | |                |
15
      |     |  | ATMega16  |------------------|       |-------------------|                   | |                |
16
      |     |  |           +------------------+       +-------------------+                   | |                |
17
      |     |  |           |    Strobe        |       |                   |                   | |                |
18
      |     |  |      INT0 +--+---+-----------+       +-------------------+       +-----------+ |                |
19
      |     |  |           |  |   |    Low    |       |                   |       |           | |                |
20
      |     |  |           |  |   /  +--------+       +---------------------------+    /+-----+ |                |
21
      |     |  |           |  |  /   |        |       |                   |           /         |                |
22
      |     |  |           |  | / +-------+---+       +------------------------------/  +-------+                |
23
      /     |  |           |  | S1   |    |   |       |                   |        Schalter S3                   |
24
     /      |  +-----------+  |      |    |   |       |                   +--------------------------------------+
25
    /       |                 |      |    |   +-------+                                                           
26
   /  +-----------------------+      |    |                                                                       
27
Schalter S2 |          +---------+   |    |                                                                       
28
            +----------+100KOhm  +---+    |                                                                       
29
            |          +---------+        |                                                                       
30
            |                             |                                                                       
31
            |                             |                                                                       
32
            |           +----------+      |                                                                       
33
            +-----------+Voltmeter +------+                                                                       
34
                        +----------+
Es werden durch den bei INT0 keine Interrupts durch das Gegrät 
ausgelößt. Ich habe probiert diesen zu Debugzwecken durch andere Dinge 
Auszulösen. Der interne Pull-Up Widerstand ist aktiv, und es wird auf 
eine fallende Flanke gewartet. Mit Schalter S2 klappt das auch.  Zu 
Meiner großen Überraschung kann ich diesen aber mit Schalter S1 nicht 
auslösen, auch wenn das Voltmeter 4,86 Volt anzeigt. Ebenso wenig mit 
Schalter S3. Ich habe das Gefühl dass das die Ursache dafür die selbe 
ist wie die dafür dass keine Signale vom Gerät empfangen werden. Ich 
schätze das Strobe Signal kommt an, wird nur nicht erkannt. Nur habe ich 
überhaupt kein Ahnung woran das liegen könnte und was ich dagegen machen 
könnte. Hat hier jemand eine Idee?


Miko.

von Jim M. (turboj)


Lesenswert?

Beim Parallelport war Strobe IIRC aktiv Low. Eventuell ist das Dein 
Fehler.

von Miko (Gast)


Lesenswert?

Aber auch dann müsste ja mal irgendwann die Flanke fallen. Gut, dann 
könnte ich keine sinnvollen Daten lesen, aber der Interrupt müsste 
ausgelöst werden.
1
MCUCR = 1 << ISC00;

Hilft auch nicht.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Miko schrieb im Beitrag #4136786:
> Ich
> schätze das Strobe Signal kommt an, wird nur nicht erkannt.

Als erstes solltest du mal die Masseverbindungen überprüfen und messen, 
was in Ruhe an /Strobe anliegt. Um einen Interrupt auszulösen, muss das 
Signal für eine gewisse Zeit auf low liegen, schau im Datenblatt des 
Mega (Kapitel 13.1.1), ob die Länge deines Strobesignals dafür 
ausreicht. Wenn dein Strobe nur 1µs lang ist, reicht es bei einem 8Mhz 
Mega mit gesetzter CKDIV8 Fuse knapp nicht aus, um den Interrupt zu 
triggern.
Ein simpler Logikstift mit Flipflop kann dir helfen, zu erkennen, ob 
überhaupt ein Strobe kommt, wenn dir das mit dem Mega nicht gelingt.

Ein Auszug des Programmes mit Initialisierung und ISR kann auch nicht 
schaden.

von Uwe (de0508)


Lesenswert?

Hallo,

ich habe so meine Probleme, wenn ich "3 Meter Kabel" lesen.
Und die Schaltung über keine EMV Filter auf den Datenleitungen verfügt.
Die Eingänge müssen dann auch noch mit einem Schmitttrigger ausgestattet 
werden, um wieder saubere Signale zu erhalten.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

@Miko: ein Thread reicht! Ich habe die beiden gleichen Fragen mal 
zusammengefasst...

von oldmax (Gast)


Lesenswert?

Hi
Warum nimmst du zum Zeichnen nicht einfach Paint? Da quält du dich mit 
Sonderzeichen ab. Mit Paint bleibt es sicherlich besser übersichtlich 
und sollte auch schneller gehen,
Gruß oldmax

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
Noch kein Account? Hier anmelden.