Hallo,
bin neu hier und hier gleich mal mein erstes problem:
also, ich habe einen Attiny13 in der Schaltung(siehe Anhang) verbaut
und das komische/blöde ist, dass er ohne Spannung an VCC läuft.
Allerdings liegen 5V an einem INPUT-PIN an, ohne die der Attiny nicht
läuft.
Also muss irgendwie eine Verbindung zwischen VCC und diesem PIN
bestehen.
Ich kann mir nur nicht erklären, wie und warum das so ist.
In einer Bsp.-Schaltung leuchten z.B. die verbauten LEDs an PIN B1.
Hier der dazugehörige Quelltext:
1
2
#include<avr/io.h>
3
4
intmain(void)
5
{
6
7
DDRB=0b11101111;
8
9
while(1)
10
{
11
PORTB=0b00000011;
12
}
13
14
}
Noch zu ergänzen wäre, dass ich weder(beabsichtigt) Fuses oder sonstige
Einstellungen verändert habe.
Hoffe ihr könnt mir helfen!!
mfg,
Tom
noch zur Ergänzung:
1) Fast jeder I/O-Pin ist mit je einer Schutzdiode gegenüber Masse und
Vcc intern abgesichert. d.h. Eingangsspannungen > Vcc+0,7V und < -0,7V
werden durch diese Dioden begrenzt. Achtung, der Strom in den Dioden
kann schnell ansteigen und dann ist der uC hinüber.
2) Fast alle, da der Reset Pin (PB5) wegen der High-Voltage
Programmierung nicht abgesichert ist. Wenn du deine Schaltung so
änderst, dass du diesen Pin als Input verwendest, dann tritt dein
beobachteter Effekt nicht auf.
3) Man kann diesen Effekt neben dem eigentlichen Überspannungsschutz
gegen statische Aufladungen auch für eien 1-wire Bus verwenden. Du
müsstest in deiner Schaltung nur einen Kondensator an den Vcc Pin gegen
Masse hängen. Dann kannst du die Versorgungsspannung "takten" und so
Information an den uC übertragen. Der uC wird, während auf dem Bus 0V
liegt, aus dem Kondensator gespeist. Also schnell per SW die LED
ausschalten, wenn der Eingang auf low geht, sonst saugt die LED den
Kondensator zu schnell leer.
so long
Remo
Strom über die Schutzdioden ist auf jeden Fall zu vermeiden.
bekanntlicherweise wird bei einer leitenden PN-Schicht die Umgebung der
Diode leitend. Das nutzt ja jeder Transistor aus. Bei IC's kann das
dazu führen, dass der Diode benachbarte Teile (FET's, FF's...) in der
Funktion gestört werden werden.
Es kann sogar zum Thyristor-ähnlichen Kurzschluss zwischen VCC und GND
des Bausteins kommen, der dann durch zu hohen Strom den Baustein oder
die Schutzdiode zerstört.
Die Schutzdiode darf zwar gelegentlich ansprechen, aber nur, wenn in
der Zuleitung ein entsprechender Schutzwiderstand den Strom begrenzt.
Ist der Pin auf Ausgang programmiert, sind die Folgen nicht ganz so
schlimm, aber vom Hersteller ist diese Betriebsart sicher nicht
vorgesehen.
so, erst mal danke für eure schnellen antworten!!
mir geht es aber eher darum wie ich diesen effekt wieder loswerde, da es
wichtig ist, dass der µC aus ist, wenn keine spannung an VCC anliegt.
@Remo: 2) -> ich habe den pin ja schon als input deklariert
Hi
>mir geht es aber eher darum wie ich diesen effekt wieder loswerde, da es>wichtig ist, dass der µC aus ist, wenn keine spannung an VCC anliegt.
Was soll eigentlich die Verbindung zu den 5V?
MfG Spess
POTUS schrieb:> so, erst mal danke für eure schnellen antworten!!>> mir geht es aber eher darum wie ich diesen effekt wieder loswerde, da es> wichtig ist, dass der µC aus ist, wenn keine spannung an VCC anliegt.
Da die Spannung an den I/O-Pins laut Datenblatt sowieo nie mehr als
ein halbes Volt über VCC liegen darf, ergibt sich das Problem gar nicht.
Wenn VCC 0V ist, darf auch an keinem anderen Pin eine Spannung anliegen.
Hi
>die 5V werden als eingangssignal verarbeitet.
Dann musst du die 5V mit VCC schalten. Es ist übrigens eine dumme Idee
eine Spannungsquelle direkt auf ein Portpin zu legen.
MfG Spess
also wäre die beste lösung einfach das eingangssignal zusammen mit vcc
per an/aus-schalter (der bereits an vcc vorhanden ist) zu trennen?
@spess53:
"Am einfachsten ist es, wenn die Signale direkt aus einer anderen
digitalen Schaltung übernommen werden können. Hat der Ausgang der
entsprechenden Schaltung TTL-Pegel dann können wir sogar direkt den
Ausgang der Schaltung mit einem Eingangspin von unserem Controller
verbinden."
(AVR-GCC-Tutorial)
und die 5V kommen von einem Laptop
Das setzt aber voraus, dass der AVR ständig Betriebsspannung hat.
Lösungsvorschlag:
steuere mit den externen 5V über einen Basiswiderstand einen
NPN-Transistor an, der den Portpin gegen den internen PullUp nach Masse
zieht. Dazu musst Du dann die Logik der Software umkehren.
...
wird sogar "absichtlich" benutzt und funktioniert seit jahren prima:
http://www.doc-diy.net/photo/smatrig/#thecircuit
zitat:
The power supply of the circuit is a rather unusual solution. The
microcontroller is supplied not through the VCC pin but via I/O pins!
This untypical set-up uses the internal protection diodes of the I/O
pins to source supply current to the chip and the rest of the circuit.
The simplified schematic is shown in the sketch below.
SmaTrig
The four output pins of the code switch are connected to I/O pins to
allow detection of the current operation mode. At the same time a
connection to the battery is provided for at least one I/O pin in all
modes except for the off-position (position 0 - binary 0000) of the
switch. This way the power switch could be integrated into the code
switch.
I discovered this effect accidently - it ruined my first design of the
trigger. It just wasn't possible to switch it off because some I/O pins
were connected to the battery and supplied the uC with 'parasitic'
current. Keep in mind that a voltage drop of about 0.6 V across the
protection diodes must be taken into account when supplying the chip
this strange way. The minimum supply voltage of the uC rises form 1.8 V
to about 2.4 V, which is still ok for a lithium cell.
groovy schrieb:> wird sogar "absichtlich" benutzt und funktioniert seit jahren prima:
Quatsch. Das ist in keinster Weise spezifiziert und so auch nicht
vorgesehen! Sowas eignet man sich besser überhaupt nicht erst an.
Immerhin kann die Beschaltung mit Mikrocontroller und ok mal locker über
1mA benötigen. Für diesen Strom sind die Schutzdioden aber nicht
ausgelegt.
Siehe Peter Dannegger, der da 100kΩ in Reihe empfiehlt um den Strom
stark in den Mikroampere Bereich zu drücken.
> http://www.doc-diy.net/photo/smatrig/#thecircuit
Der Schaltplan hat aber auch so seine Fehler...
Zum Beispiel der Kodierschalter hängt ohne Koppelwiderstände direkt an
den Programmierpins. Manche (einfachen) Programmiergeräte schrottet man
damit problemlos.
Simon K. schrieb:> Quatsch. Das ist in keinster Weise spezifiziert und so auch nicht> vorgesehen! Sowas eignet man sich besser überhaupt nicht erst an.
das hab ich auch nie behauptet.
Simon K. schrieb:> Der Schaltplan hat aber auch so seine Fehler...>> Zum Beispiel der Kodierschalter hängt ohne Koppelwiderstände direkt an> den Programmierpins. Manche (einfachen) Programmiergeräte schrottet man> damit problemlos.
mag sein. aber ich hab mittlerweile etwa 10 stück gebaut und es
funktioniert. punkt.
ps. ich bin nicht der autor ^^