Strombelastbarkeit RESET PIN beim Atmega 8

OP #1346241
Hallo,

ich bin gerade dabei mir einen Multiplexer (mit dem Atmega8) für eine 15 
Segmentanzeige zu  entwerfen, die meisten Funktionen klappen auch schon. 
Nur ein Display leuchtet dunkler als die anderen und zwar das welches 
durch den PORT PC6 (RESET PIN) bedient wird. Am PC 6 hängt die Kathode 
des Displays. Im Datenblatt kann ich keine Unterschiede zwecks der 
Strombelastung im Vergleich zu den anderen Pins des PORTS C finden.
Hat hier schon einer ähnliche Erfahrungen gemacht und hat wenn möglich 
eine Lösung (ohne Treiber) für das Problem.

Gruß Uwe
OP #1346261
Läubi .. schrieb:
> Hängt den noch etwas an dem Reset Pin dran? Nein.
>Und wie Programmierst du den Mega8?
PORT INIT:
void PORTs_init(void)
{
/*
PORTB
Segment j  PB0
Segment k  PB1
Segment l  PB2
Segment m  PB3
Segment n  PB4
Segment p  PB5
Segment DP PB6
Display 6  PB7
FUSES SETTING BEACHTEN ( PORT 6 + 7 INT OSC einschalten)
*/

  DDRB = 0b10000000;      // Datenrichtung wird erst im Programm 
festgelegt TRISTAT
  PORTB =0b00000000;      // OFF
  // PB7 muss nach der Testphase noch auf 1 gesetzt werden.
/*
PORTD
Segment a  PD0
Segment b  PD1
Segment c  PD2
Segment d  PD3
Segment e  PD4
Segment f  PD5
Segment g  PD6
Segment h  PD7
*/
  DDRD =  0b00000000;      // Datenrichtung wird erst im Programm 
festgelegt TRISTAT
  PORTD = 0b00000000;      // OFF


/*
// PORTC
Display 1  PC0
Display 2  PC1
Display 3  PC2
Display 4  PC3
SDA      PC4
SCL      PC5
Display 5  PC6   (RESET) FUSES SETTING BEACHTEN
*/

  DDRC =  0b01001111;      // ALLE PORTS OUTPUT  // PORT 4 + 5 TRISTATE
  PORTC = 0b00000000;    // OFF

}

Auswahl DIGIT:

void selectDigit(uint8_t digit)
{
    switch (digit)
  {
        case 0:
      sbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      cbi(DIS2, DIS);      // und abschalten der nicht
      cbi(DIS3, DIS);      // ausgewählten Stellen
      cbi(DIS4, DIS);
      cbi(DIS5, DIS);
      cbi(DIS6, DI_S);
      break;
        case 1:
      cbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      sbi(DIS2, DIS);      // und abschalten der nicht
      cbi(DIS3, DIS);      // ausgewählten Stellen
      cbi(DIS4, DIS);
      cbi(DIS5, DIS);
      cbi(DIS6, DI_S);
      break;
        case 2:
      cbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      cbi(DIS2, DIS);      // und abschalten der nicht
      sbi(DIS3, DIS);      // ausgewählten Stellen
      cbi(DIS4, DIS);
      cbi(DIS5, DIS);
      cbi(DIS6, DI_S);
      break;
        case 3:
      cbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      cbi(DIS2, DIS);      // und abschalten der nicht
      cbi(DIS3, DIS);      // ausgewählten Stellen
      sbi(DIS4, DIS);
      cbi(DIS5, DIS);
      cbi(DIS6, DI_S);
      break;
        case 4:
      cbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      cbi(DIS2, DIS);      // und abschalten der nicht
      cbi(DIS3, DIS);      // ausgewählten Stellen
      cbi(DIS4, DIS);
      sbi(DIS5, DIS);
      cbi(DIS6, DI_S);
      break;
        case 5:
      cbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      cbi(DIS2, DIS);      // und abschalten der nicht
      cbi(DIS3, DIS);      // ausgewählten Stellen
      cbi(DIS4, DIS);
      cbi(DIS5, DIS);
      sbi(DIS6, DI_S);
      break;
        default:
      cbi(DIS1, DIS);      // Zuschalten der ausgewählten Anzeige
      cbi(DIS2, DIS);      // und abschalten der nicht
      cbi(DIS3, DIS);      // ausgewählten Stellen
      cbi(DIS4, DIS);
      cbi(DIS5, DIS);
      cbi(DIS6, DI_S);
      break;
    }
}

Definition:

#define DIS1        0    // PORTC
#define DIS2        1    // PORTC
#define DIS3        2    // PORTC
#define DIS4        3    // PORTC
#define DIS5        6    // PORTC
#define DIS6        7    // PORTB
#1346268
Hallo,

holger schrieb:
> Figure 151. Reset Pin as I/O – Pin Source Current vs. Output Voltage
> (VCC = 5V)
>
> Jo, der liefert wesentlich weniger Strom als die anderen IO.

Zustimmung, da bin ich auch schonmal drauf reingefallen...

Gruß aus Berlin
Michael
Persönliche Seite #1346272
Uwe Liedtke schrieb:
> Läubi .. schrieb:
>> Hängt den noch etwas an dem Reset Pin dran? Nein.
>>Und wie Programmierst du den Mega8?
Auch wenn Holger wohl die Lösung hat, bezog sich meine Frage eher darauf 
wie das Programm in den Mega kommt, per Booatloader oder HV, aber wenn 
da im Betrieg nix dranhängt ist das eh obsolete.
OP #1346277
Läubi .. schrieb:
> Uwe Liedtke schrieb:
>> Läubi .. schrieb:
>>> Hängt den noch etwas an dem Reset Pin dran? Nein.
>>>Und wie Programmierst du den Mega8?
> Auch wenn Holger wohl die Lösung hat, bezog sich meine Frage eher darauf
> wie das Programm in den Mega kommt, per Booatloader oder HV, aber wenn
> da im Betrieg nix dranhängt ist das eh obsolete.

das Programm kommt per HV in den Mega. Danke für Eure Hilfe !!!!

Gruß Uwe

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.