Forum: Mikrocontroller und Digitale Elektronik Kein HIGH an PB0 und PB1 (Atmega328p)


von batmobil (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe folgendes Problem. Ich habe einen Atmega328p. An diesem möchte 
ich die Ausgänge PB0 und PB1 auf HIGH legen (siehe Schaltung). Versorgt 
wird der Controller mit 2.7V. Die Programmierung hat funktioniert ohne 
Errors. Aber an PB0 und PB1 bekomme ich kein HIGH Signal. Die 
Beschaltung habe ich überprüft diese ist wie im Schaltplan.

Hat jemand eine Idee wo das Problem sein könnte?

P.S.: Am Resetpin habe ich 2.7V

Anhang: Schaltung, Programmcode, Fuseseinstellungen

von Ingo L. (corrtexx)


Lesenswert?

Mach mal die BOD aus

von Marco G. (grmg2010)


Lesenswert?

Du solltest die Ausgänge auch richtig definieren, was du brauchst ist 
folgendes:
1
DDRB |= ((1<<DDB0) | (1<<DDB1));

Außerdem solltest du auch den Haken bei CHKDIv8 rausnehmen, sonst läuft 
der uC nur mit 1MHz

von batmobil (Gast)


Lesenswert?

Ich habe BOD und CHKDIv8 rausgemacht.

DDRB habe ich nach "DDRB |= ((1<<DDB0) | (1<<DDB1));" umgeschrieben.

Leider ohne Erfolg. Ich habe an PB0 und PB1 immer noch kein HIGH.

von batmobil (Gast)


Lesenswert?

Ich benutze den internen Oszillator. Kann es sein das es Probleme damit 
gibt.
Muss ich im Code überhaupt ->

#ifndef F_CPU
#define F_CPU 8000000UL
#endif

definieren? Oder nur wenn man eine externen Quarz verwendet?

von Ingo L. (corrtexx)


Lesenswert?

Marco G. schrieb:
> Du solltest die Ausgänge auch richtig definieren, was du brauchst ist
> folgendes:DDRB |= ((1<<DDB0) | (1<<DDB1));
Das ist Unfug. Denn hinter den Defines für DDB0 und PB0 steht jeweils 
das gleiche.

batmobil schrieb:
> Ich benutze den internen Oszillator. Kann es sein das es Probleme damit
> gibt.
> Muss ich im Code überhaupt ->
>
> #ifndef F_CPU
> #define F_CPU 8000000UL
> #endif
>
> definieren? Oder nur wenn man eine externen Quarz verwendet?
Der Oszillator spielt keine Rolle in deinem Fall. Du hast irgendein 
anderes Problem. Versorgungsspannungen liegen alle auch wirklich an? 
Massen angeschlossen (physikalisch).

Dein Code ist erstmal richtig

von spess53 (Gast)


Lesenswert?

Hi

Ist immer noch das gleiche Problem:

Beitrag "Probleme Atmega8 = PB1 auf High"

MfG Spess

von batmobil (Gast)


Lesenswert?

>>
>> definieren? Oder nur wenn man eine externen Quarz verwendet?
> Der Oszillator spielt keine Rolle in deinem Fall. Du hast irgendein
> anderes Problem. Versorgungsspannungen liegen alle auch wirklich an?
> Massen angeschlossen (physikalisch).
>
> Dein Code ist erstmal richtig

Die Versorgungsspannungen liegen alle an. An VCC_2, VCC und AVCC = 2,7V.
An AREF = 2,7V, an RESET = 2,7V

von Uwe K. (ukhl)


Lesenswert?

Setze mal die PORTB Anweisungen über die While Schleife.

von Wolfgang (Gast)


Lesenswert?

batmobil schrieb:
> Die Versorgungsspannungen liegen alle an. An VCC_2, VCC und AVCC = 2,7V.
> An AREF = 2,7V, an RESET = 2,7V

Solange nicht klar ist, ob es an der Versorgungsspannung, einem defekten 
Bauteil oder sonst einem Ungemach liegt, könnte man zumindest die 
Versorgungsspannungen mal auf 5V anheben und damit einen kritischen 
Punkt aus der Fehlersuche ausklammern.

von HildeK (Gast)


Lesenswert?

batmobil schrieb:
> Hat jemand eine Idee wo das Problem sein könnte?

Welches Gehäuse hast du denn verwendet?
PB0 und PB1 liegen beim TQFP schon auf Pin 12 und 13, beim DIL jedoch 
auf den Pins 14 und 15.

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.