Forum: Mikrocontroller und Digitale Elektronik ATTiny 84v defekt?


von Höfling (Gast)


Lesenswert?

Hallo, ich bastel hier gerade mit dem besagten Controller rum und habe 
die Vermutung, dass er Defekt ist.
Folgendes Programm läuft auf ihm.
1
.include "tn84def.inc" 
2
ldi r16, 0xFF
3
out DDRA, r16
4
out DDRB, r16
5
out PORTA, r16
6
out PORTB, r16
7
8
ende: rjmp ende

Ich schalte als einfach alle Ports als Ausgänge. Nun kann ich zwischen 
den Pins von Port B eine Spannng zu Vcc messen. Bei Port A nicht. Egal 
was ich mache, die Pins sind elektrisch einfach neutral.
Frage: Hab ich meinen Controller verbraten? Oder übersehe ich irgendwas?

Danke für eure Hilfe!
Höfling

von Höfling (Gast)


Lesenswert?

push

von Spess53 (Gast)


Lesenswert?

Hi

>Ich schalte als einfach alle Ports als Ausgänge. Nun kann ich zwischen
>den Pins von Port B eine Spannng zu Vcc messen. Bei Port A nicht. Egal
>was ich mache, die Pins sind elektrisch einfach neutral.

Gegen VCC? Da solltest du im Idealfall auch keine Spannung messen.

Wie sieht es den aus, wenn du gegen GND misst?

MfG Spess

von Höfling (Gast)


Lesenswert?

Auch keine Spannung.

von Spess53 (Gast)


Lesenswert?

Hi

Dann überprüfe erst mal, ob du das richtige Programm lädst. Welchen 
Pegel hat das Reset-Pin?

MfG Spess

von Höfling (Gast)


Lesenswert?

Das programm hab ich jetzt schon mehrfach aufgespielt. Ich benutze den 
AVRISP mkII Programmer mit Avr Studi 4. Das klappt auch alles 
Problemlos, keine Fehlermeldungen!
Der Reset pin ist über einen 10k ohm widerstand an Vcc angeschlossen.

von Schnösel (Gast)


Lesenswert?

datasheet: Section 10.3 “Alternate Port Functions” on page 57

von Spess53 (Gast)


Lesenswert?

Hi

>datasheet: Section 10.3 “Alternate Port Functions” on page 57

Und welche benutzt er?

>Das programm hab ich jetzt schon mehrfach aufgespielt. Ich benutze den
>AVRISP mkII Programmer mit Avr Studi 4. Das klappt auch alles
>Problemlos, keine Fehlermeldungen!

Lies mal den Controller aus und poste das Hexfile.

MfG Spess

von Höfling (Gast)


Angehängte Dateien:

Lesenswert?

So, hier bitte :)

von Höfling (Gast)


Lesenswert?

Ich hab gerade nochmal ein bisschen gemessen. Wenn ich das richtig 
Verstehe, setzt eine 1 im PORTx Register den entsprechenden Pun auf Vcc, 
eine 0 auf GND. Also müsste ich,nach obigem Programm ja an einem 
intakten Port eine Spannung zwischen GND und dem Port messen, tu ich 
aber nicht! Nur zwischen dem port und Vcc, auch wenn ich das PORTB 
Register komplett auf null setze bleibts dabei.

ps. Das war jetzt komplett auf PORTB bezogen. PORTA geht überhaupt 
nicht.

von Schnösel (Gast)


Lesenswert?

Hab das HEX-file mal in meinen Simulator geladen und ausgeführt. Der 
einzige Port-Pin, der von '0' auf '1' geht, ist PortB Bit3 (Pin4). Ich 
habe die "AVR Simulator IDE" verwandt. Die anderen Pins des Port B 
bleiben alle auf '0'.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Dein Hexfile und dein Code unterscheiden sich. Bitte kontrollieren

Code aus Beitrag "ATTiny 84v defekt?"
1
.include "tn84def.inc" 
2
ldi r16, 0xFF
3
out DDRA, r16
4
out DDRB, r16
5
out PORTA, r16
6
out PORTB, r16
7
8
ende: rjmp ende

Hexfile aus Beitrag "Re: ATTiny 84v defekt?"
1
+00000000:   EE0F        LDI       R16,0xEF       Load immediate
2
+00000001:   BB07        OUT       DDRB,R16       Out to I/O location
3
+00000002:   E202        LDI       R16,0x22       Load immediate
4
+00000003:   B907        OUT       ADMUX,R16      Out to I/O location
5
+00000004:   E805        LDI       R16,0x85       Load immediate
6
+00000005:   B906        OUT       ADCSRA,R16     Out to I/O location
7
+00000006:   9A36        SBI       ADCSRA,6       Set bit in I/O register
8
+00000007:   9936        SBIC      ADCSRA,6       Skip if bit in I/O register cleared
9
+00000008:   F7F1        BRNE      PC-0x01        Branch if not equal
10
+00000009:   B105        IN        R16,ADCH       In from I/O location
11
+0000000A:   3500        CPI       R16,0x50       Compare with immediate
12
+0000000B:   F018        BRCS      PC+0x04        Branch if carry set
13
+0000000C:   E000        LDI       R16,0x00       Load immediate
14
+0000000D:   BB08        OUT       PORTB,R16       Out to I/O location
15
+0000000E:   C002        RJMP      PC+0x0003      Relative jump
16
+0000000F:   E008        LDI       R16,0x08       Load immediate
17
+00000010:   BB08        OUT       PORTB,R16       Out to I/O location
18
+00000011:   CFF4        RJMP      PC-0x000B      Relative jump
19
+00000012:   FFFF        ???                      Data or unknown opcode

von Schnösel (Gast)


Lesenswert?

Das ist mein Disassembling zum HEX-file:
-----------------------------------
AVR DISASSEMBLER LISTING
Address Opcode  Instruction
-----------------------------------
000000  EE0F      LDI R16,$EF
000001  BB07      OUT DDRB,R16
000002  E202      LDI R16,$22
000003  B907      OUT ADMUX,R16
000004  E805      LDI R16,$85
000005  B906      OUT ADCSRA,R16
000006  9A36    L4:  SBI ADCSRA,ADSC
000007  9936    L1:  SBIC ADCSRA,ADSC
000008  F7F1      BRNE L1
000009  B105      IN R16,ADCH
00000A  3500      CPI R16,$50
00000B  F018      BRCS L2
00000C  E000      LDI R16,$00
00000D  BB08      OUT PORTB,R16
00000E  C002      RJMP L3
00000F  E008    L2:  LDI R16,$08
000010  BB08      OUT PORTB,R16
000011  CFF4    L3:  RJMP L4

von Spess53 (Gast)


Lesenswert?

Hi

Also nix kaputt. Stell das richtige Hexfile im Programmerdialog ein, 
dann klappt es auch mit den Ports.
Wenn es dich tröstet: Ist mir auch schon mal passiert.

MfG Spess

von Höfling (Gast)


Lesenswert?

So, genau das wars. Der Input war irgendeine andere hex datein aber 
nicht das aktuelle Projekt...wie peinlich.

Spess53 schrieb:
> Wenn es dich tröstet: Ist mir auch schon mal passiert.

Ja, schon ein bisschen :D

Vielen Dank an alle für die Hilfe!!!

von Spess53 (Gast)


Lesenswert?

Hi

>So, genau das wars. Der Input war irgendeine andere hex datein aber
>nicht das aktuelle Projekt...wie peinlich.

Peinlich sollte dir eigentlich sein, das du die Fragen nicht richtig 
liest:

Beitrag "Re: ATTiny 84v defekt?"

MfG Spess

von Höfling (Gast)


Lesenswert?

Och, richtig gelesen schon, nur falsch Verstanden. Was mir auch schon 
öfters passiert ist: Programm geändert, vergessen zu kompilieren, 
geflasht, gewundert warum sich nichts ändert.
Daran hab ich bei der Frage gedacht. So viel zu meiner Verteidigung ;)

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.