www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Strombelastbarkeit RESET PIN beim Atmega 8


Autor: Uwe Liedtke (liedtkeu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hängt den noch etwas an dem Reset Pin dran? Und wie Programmierst du den 
Mega8?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Uwe Liedtke (liedtkeu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Uwe Liedtke (liedtkeu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, die Seite habe ich im Datenblatt nicht gefunden. Der Tipp war 
wirklich sehr hilfreich.

Gruß Uwe

Autor: Uwe Liedtke (liedtkeu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.