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
Hat dieser Port nicht eine Doppelbelegung mit dem JTAG-Interface, das über die Fuses abzuschalten ist? Beim Mega128 jedenfalls ist's so.
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)
TWI ist doch I²C - und das brauch Pullup-Widerstände.
sind vorhanden. 2x 10k . Aber diese Testbeschaltung ist völlig minimal, d.h. ohne TWI.
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
Interne Pull-Down-Widerstände? Das wäre mir neu. ...
Ö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
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
das twi ist etwas umständlicher zu bedienen wen wer noch Bedarf ich habe den betreffenden Ab aus dem dataheet eitgehend übersetzt und ein C beispiel für 2 eeprom 24c65 geschrieben es funktioniert . kurzer ping und ich sende die übersetzung als pdf und das C Beispiel Bin hier fast täglich erreichbar http://www.progforum.com/member.php?userid=275
hier schnell noch ein Link zum Twimodul des 32ers soweit ich mit der Übersetzung des Datenblattes bin. http://de.geocities.com/postboxelektronik/box/Serielle_Zweidraht_Schnittstelle.pdf
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.