Forum: Mikrocontroller und Digitale Elektronik Atmega8 - Reset-Pin und Rest vom Port C


von PC-Freak (Gast)


Lesenswert?

Hallo Forenteam,

bezüglich dem Reset und dann gleichzeit den Port anderweitig nutzen habe 
ich bereits gelesen. Nun bräuchte ich von diesem Port lediglich Bit0 
-Bit5. Diese  werden dann als Open-Collektor-Ausgänge benutzt. Meine 
LED-Anzeige lege ich dann halt auf einen anderen Port.

Frage: ist es nun möglich diese Bit0-Bit5 anderweitig zu nutzen, aber 
den Reset so zu belassen, damit ich mit dem ISP in der Schaltung den 
Atmega trotzdem neu flashen kann?

Wenn ich es richtig verstehe ist nur der /RESET (Pin1) das Problem. 
Miso, Mosi arbeiten dann, wenn der Reset anliegt. - Richtig?

von EAF (Gast)


Lesenswert?

PC-Freak schrieb:
> bezüglich dem Reset und dann gleichzeit den Port anderweitig nutzen habe
> ich bereits gelesen.
Keine Ahnung, was du gelesen hast!

PC-Freak schrieb:
> Frage: ist es nun möglich diese Bit0-Bit5 anderweitig zu nutzen, aber
> den Reset so zu belassen, damit ich mit dem ISP in der Schaltung den
> Atmega trotzdem neu flashen kann?
Keine Ahnung, welche Ängste dich plagen.

PC-Freak schrieb:
> Wenn ich es richtig verstehe ist nur der /RESET (Pin1) das Problem.
Seit wann ist der Reset Pin ein Problem?
Was hat er mit PC0 bis PC5 zu tun?
(außer im gleichen Port zu wohnen)

von Achim H. (pluto25)


Lesenswert?

Die Frage ist etwas unklar? Solange der Reset (C.6) in den Fuses als 
Reset deklariert ist, gibt es kein C.6 Heißt 6 (und auch 7)sind beim 
lesen immer Low und würden sie mit 1 beschrieben geht das ins leere/hat 
keinerlei Auswirkung.
Ihn in den Fuses als Pin zu deklarieren macht ihn normalen Pin nutzbar, 
jedoch ISP funktioniert dann nicht mehr.
PS Darauf achten das die Peripherie das Programmieren überlebt. Ein 
Motorschütz wäre nicht so "prikelnd"  ;-)
Und nicht zu stark belastet: Bei einer Ladungspumpe versagte ein MKII 
:-(

von Stefan F. (Gast)


Lesenswert?

PC-Freak, versuche es nochmal neu, nachdem du ausgeschlafen hast und 
wieder nüchtern bist. Deine Frage ist ziemlich wirr und unvollständig.

Wenn ich da mal sehr kreativ rate, möchtest du offenbar von außen fremde 
Spannung an PC0..PC5 anlegen, während der Mikrocontroller im RESET 
Zustand ist. Da diese Pins im RESET Zustand inaktiv/hochohmig sind, 
kannst du das im Rahmen der "absolute maximum ratings" machen.

von PC-Freak (Gast)


Angehängte Dateien:

Lesenswert?

Stefan F. schrieb:
> PC-Freak, versuche es nochmal neu, nachdem du ausgeschlafen hast und
> wieder nüchtern bist. Deine Frage ist ziemlich wirr und unvollständig.

Hallo Stefan,
ich bin und war nüchtern (außer den 5 Bierchen - grins - Kreuzberger 
Nächte),

habe den Ausschnitt der Schaltung mal angehängt. Es geht mir darum, dass 
ich hier zum erstellen x-msle den Atmel flashen will, bis er tut was ich 
will. Mit einem Atmega32 klappte dies, weil der ja das ISP auf Pins 
hatte, die komplett frei sind. So konnte ich hier spielen. Hier soll nun 
ein Atmega8  bruzeln. Die habe ich auch schon alle da. Nun wollte ich 
diesen 7-Bit-Port (PC0-6) eben für die 7 Digits der 7-Segmentanzeige 
nutzen. Ich bin hier noch ziehmlich unerfahren. Ich könnte, klar, die 
Ports tauschen, um nicht in die Quere mit dem REset zu kommen. Ich 
könnte dann die Bits 0-5 als open-coll-Ausgänge zu meiner weiteren 
Schaltung benutzen, aber trotzdem /Reset(Pin1 - PC6) dann mit dem 
ISP-Proggi wieder ansteuern.

Ich benötige die 7 Digits (A-G), 2 Pins für Multiplex, 5 Eingänge, 1 
Ausgang der einen Optokoppler befeuert.

von Stefan F. (Gast)


Lesenswert?

PC-Freak schrieb:
> Es geht mir darum, dass ich hier zum erstellen x-msle den
> Atmel flashen will, bis er tut was ich will.

Bin ich zu alt? Was bedeutet "erstellen x-msle"?

Und was bedeutet "den Atmel flashen, bis er tut was ich will"? Man 
schlage den Diener bis er tut, was sein Besitzer will. Oder wie ist das 
gemeint?

Der Reset Eingang ist kein Ausgang, damit kannst du keine LED ansteuern. 
Wenn du ihn per Fuse als PC6 konfigurierst, hast du keine ISP 
Schnittstelle mehr, das willst du nicht.

Zwingt dich denn irgendwer, dass alle 7 Digits zusammenhängend am selben 
Port sind? Das ist doch frei programmierbar, denke ich.

von Michael B. (laberkopp)


Lesenswert?

PC-Freak schrieb:
> habe den Ausschnitt der Schaltung mal angehängt

Merkwürdige Schaltung.

Warum 100nF am Eingang, und warum offenbar nir die internen pull up 
dort, nur um das Signal schlechter zu machen ?

Warum Pin8 bei einer LED-Anzeige verbunden, bei der anderen nicht.

Warum keine strombegrenzenden Vorwiderstände vor die LED-Anzeige.

Warum MISO,MOSI,SCLK freihalten.

Warum AVCC nicht anschliessen aber PortC benutzen ?

Reset mit G zu belegen geht halt nicht, aber du hast so viele Ausgänge 
frei, PD4-7, PB2-5, dass PC7 nicht benötigt wird. Wobei man klugerweise 
alle Segmente der Anzeige auf ein Port legt.

Es ist gut, einen Transistor zu verwenden um die 140mA einer 
Displaystelle zu schalten, aber 10k Vorwiderstand sind heftig, 430uA 
Basisstrom reichen kaum um 140mA zu schalten, eher 470 Ohm. Und statt 
den PNP besser Dual-P-Kanal-LogicLevel-MOSFETs wie IRF7314, spart 5 
Bauteile, schaltet besser.

Ich würde eher die XTAL Anschlüsse frei lassen und die ISP Anschlüsse 
über die notwendigen 150 Ohm Vorwiderstände an die Segmente führen, die 
20mA kann der Programmer schon liefern und so lange die Digits nicht 
freigeschaltet sind, blitzt da auch nichts (wobei nicht mal das stören 
würde, macht Arduino als willkommene Kontrolle ja auch).

von HildeK (Gast)


Lesenswert?

Michael B. schrieb:
> Merkwürdige Schaltung.

Ja, und die wurde doch in den letzten Wochen schon mal diskutiert. An 
die Cs parallel zu den Transistoren erinnere ich mich gut ...

Mir ist völlig unverständlich, warum man hier unbedingt den Resetpin 
benötigt. Der Mega8 hat doch genügend freie Pins!
Und nein, wenn der Reset zu einem IO wird, dann geht ISP nicht mehr. Nur 
noch HV-Programmierung.

Ich habe damals schon vorgeschlagen, PC für die Anodentreiber und die 
Hilfssignale zu nutzen, PD für die Segmentreiber (bei denen auch noch 
die Vorwiderstände fehlen) und die vier Eingänge auf PB zu legen.
Auch andere Kombinationen sind möglich: die Segmenttreiber funktionieren 
auch auf PB; selbst wenn beim neu programmieren die Segmente mit 
wackeln, macht das nichts, denn die Spalten sind ja komplett aus bei dem 
Vorgang.

Zudem: ist es zwingend, dass der Mega8 in der Schaltung programmiert 
werden muss? Fassung, STK500 (z.B.) zum Programmieren und ich brauch 
über das was in der Schaltung an MOSI, MISO und SCK hängt nicht mal 
nachdenken.

von HildeK (Gast)


Lesenswert?

HildeK schrieb:
> die wurde doch in den letzten Wochen schon mal diskutiert.

Hab sie gefunden:
Beitrag "Atmega8 vers. C - Interuptbehandlung"

von Pc-Freak (Gast)


Lesenswert?

Ja das mit den Widerständen hab i h einfach vergessen einzuzeichnen. 
Real sind die jetzt schon drin. 390 R habe ich da ausgewählt.
Ich bring am Nachmittag die umgezeichenete Schaltung. Dort ist der 
7digitport anders.
Die 10 k für die Transistoren sind bisher einfach willkürlich gewählt.

von Pc-Freak (Gast)


Lesenswert?

HildeK schrieb:
> komplett aus bei dem Vorgang.
> Zudem: ist es zwingend, dass der Mega8 in der Schaltung programmiert
> werden muss?

In der Schaltung später nicht.  Das will ich auch gar nicht.
Aber hier zum entwickeln ist es einfacher. Programm zu ä den und 
schauen, was es macht.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Ich finde die Schaltung ist kompletter Quark.

Der AVR hat genug freie Pins, zum zwei 7-Segment-Glieder ohne 
Multiplexing anzusteuern, selbst wenn man den Reset nicht als IO-Pin 
verbiegt.

Bitte einmal darüber nachdenken wofür so viele freie Pins benötigt 
werden und dann einen korrekten Schaltplan liefern. Die fehlenden 
Widerstände wurden ja schon genannt, fehlende (korrekte) Stromversorgung 
des AVR, ich sehe da nicht mal einen Abblockkondensator, aber viel zu 
viele Fragezeichen. Mit sowas kann man nicht arbeiten, das ist nicht 
mehr als ein erster Entwurf.

von Frank K. (fchk)


Lesenswert?

PC-Freak schrieb:

> Ich benötige die 7 Digits (A-G), 2 Pins für Multiplex, 5 Eingänge, 1
> Ausgang der einen Optokoppler befeuert.

Lass PC6 in Ruhe.

Ich würde nicht multiplexen, sondern mit Schieberegistern wie TPIC6B595 
oder TPIC6C595 arbeiten. Dafür brauchst Du weniger Pins und hast weniger 
Stress - auch wenn da noch ein oder zwei weitere Stellen dazukommen.

https://www.ti.com/lit/ds/symlink/tpic6b595.pdf
https://www.ti.com/lit/ds/symlink/tpic6c595.pdf

Diese Schieberegister können selbst 10 cm große Anzeigen direkt ohne 
weitere Treiber (aber mit LED-Vorwiderständen!) treiben. Es gibt 
natürlich wie immer haufenweise Alternativen.

fchk

von HildeK (Gast)


Lesenswert?

Frank K. schrieb:
> Lass PC6 in Ruhe.
Definitiv ja!

> Ich würde nicht multiplexen, sondern mit Schieberegistern wie TPIC6B595
> oder TPIC6C595 arbeiten. Dafür brauchst Du weniger Pins und hast weniger
> Stress - auch wenn da noch ein oder zwei weitere Stellen dazukommen.
Warum denn nicht. Auch für weitere Stellen hat man noch Pins. Und wenn 
es noch mehr sein müssen, dann kommt der Schwenk auf MAX7219 oder 
MAX7221.
Gut, die sind für Common-Cathode Displays, aber bei einer richtigen 
Planung von Anfang an ist das egal.

von PC-Freak (Gast)


Angehängte Dateien:

Lesenswert?

Ich füge hiermal das komplette Sheet ein. Habe hier die Ports gedreht.
Mir geht es darum, die Schaltung am Steckbrett zu lassen, und mit dem 
AVR ISP   ohne viel umsteckerei das Ding geändert zu Flashen.

Michael B. schrieb:
> Merkwürdige Schaltung.
>
> Warum 100nF am Eingang, und warum offenbar nir die internen pull up
> dort, nur um das Signal schlechter zu machen ?

Dieses eingerahmte ist bereits auf der ext. Schaltung. Hier kommt nur 
ein 10 pol. Pfostenstecker hin. ab den Punkten.

Ben B. schrieb:
> fehlende (korrekte) Stromversorgung
> des AVR, ich sehe da nicht mal einen Abblockkondensator

Die Stromversorgung kommt schon richtig. Es kommen 12V, diese werden mit 
7805 zu 5V, weil ich 12V und 5V benötige. Mit Kondis.
Die Spannungspins unterschlägt das Zeichenprogramm von haus aus.

HildeK schrieb:
> Mir ist völlig unverständlich, warum man hier unbedingt den Resetpin
> benötigt. Der Mega8 hat doch genügend freie Pins!

Ich hatte mich einfach daran orientiert, hier 7 Bits zu sehen, und dann 
halt daran gedacht diese gleich als 7-Segmente herzunehmen. Erst später 
hab ich bemerkt, dass ich mit /Reset in Konflikt komme.

Aber so wie ich das nun gedreht habe sollte es doch passen?

von Frank K. (fchk)


Lesenswert?

PC-Freak schrieb:
> Ich füge hiermal das komplette Sheet ein.

AVCC und AREF schließt Du aber schon noch an, oder?

fchk

von HildeK (Gast)


Lesenswert?

PC-Freak schrieb:
> Aber so wie ich das nun gedreht habe sollte es doch passen?

Ja, passt so!
Man muss halt anfangs überlegen, welche Sonderfunktionen man benötigt, 
die nur auf wenigen bzw. bestimmten Pins zur Verfügung stehen und die 
dafür reservieren (UART, ADC, Komparator usw.). Die GPIOs als normale 
IOs weist man dann für eine leichte Programmierung sinnvollerweise am 
Schluss zu.

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.