Atmega32, Pin0 des PortC funktioniert nicht richtig

Gast #148836
Lesenswert?

Hi!

Habe derbe Probleme damit gehabt, den TWI in Gang zu setzen.
Nach mehreren Versuchen, habe ich einfach mal den Port getestet, und
siehe da, der Pin0 funktioniert nicht richtig.
Bei einem einfachen An/Aus Programm schaltet er bei einem High-Pegel
nur auf 0,4V. Ansonsten schaltet er aber. Ist der Port defekt, oder
lässt sich dieses Problem abstellen?

Mit freundlichen Grüßen

Bastian
Gast #148838
Lesenswert?

Das hab ich zuerst auch gedacht.
Habe unter Ponyprog mal die Fuse/sec. Bits ausgelesen...
JTAGEN ist nicht makiert.
Makiert sind bei mir nur:
Bootsz1
Bootsz0
Bodlevel
Boden

Ansonsten funktioniert der µC perfekt, nur halt der Pin0 nicht (und
deshalb wohl auch nicht das TWI)
Gast #148841
Lesenswert?

Hallo

kenn mich zwar noch nicht aus aber:
könnte es sein dass dr Pin bei verwendung für I2C
als "opencollector" geschaltet ist
und die internen Wiederstände pulldown sind.
Dadurch könnte sich mit den 10K ein Spannungsteiler ergeben.

Gruss Kurt
Gast #148843
Lesenswert?

Öhm, klingt logisch. Aber diese Widerstände müsste ich dann doch per
Software aktiviert haben. Habe den gleichen Code jetzt mal auf nem
Atmega8 getestet, und da läuft alles (auch das TWI).

Habe jetzt erstmal nen neuen Atmega32 bestellt, weil ich davon ausgehe
das dieser defekt ist.

Danke an alle!

Bastian
Gast #148845
Lesenswert?

um  JTAG auszuschalten
musS Bit 7 des MCUCSR innerhalb 4 zyklen 2 mal auf 1 gesetzt werden

z.B.

assembler:

ldi r16, 0x80
out MCUCSR, r16
out MCUCSR, r16


C:

MCUCSR=0x80
MCUCSR=0x80

danach funktioniert port c aber JTAG und somit der interne debugger
sind nicht mehr erreichbar

MCU Control and Status Register – MCUCSR

The MCU Control and Status Register contains control bits for general
MCU functions,
and provides information on which reset source caused an MCU Reset.

• Bit 7 – JTD: JTAG Interface Disable
When this bit is zero, the JTAG interface is enabled if the JTAGEN Fuse
is programmed.
If this bit is one, the JTAG interface is disabled. In order to avoid
unintentional disabling
or enabling of the JTAG interface, a timed sequence must be followed
when changing this bit:
----The application software must write this bit to the desired value
twice within four cycles to change its value.

If the JTAG interface is left unconnected to other JTAG circuitry, the
JTD bit should be set to one. The reason for this is to avoid static
current at the TDO pin in the JTAGinterface.

• Bit 4 – JTRF: JTAG Reset Flag
This bit is set if a reset is being caused by a logic one in the JTAG
Reset Register selected by the JTAG instruction AVR_RESET. This bit is
reset by a Power-on Reset, or by writing a logic zero to the flag.

Bit             7   6    5    4    3    2    1     0
               JTD ISC2  –   JTRF WDRF BORF EXTRF PORF         MCUCSR
Read/Write     R/W R/W   R   R/W  R/W  R/W  R/W   R/W
Initial Value   0   0    0    See Bit Description 

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren