PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Programmierung mit Transistor an Attiny13 möglich



tobiastob
30.03.2008, 17:27
Hallo,
ich versuche mit einem AVR mkII meinen Attiny13 zu programmieren. An Pin 6 (d.h. PB1) des Attinys habe ich einen Pullup Widerstand mit 2,2 kOhm und dahinter das Gate eines Hexfets (IRL3803) angeschlossen. Drain führt über eine Freilaufdiode (d.h. Diode 1N4004 parallel geschaltet) zu einem Motor (12 Volt, 0,5 A) Source liegt auf GND. Das sollte so ja eigentlich auch funktionieren. Wenn ich nun in Bascom PB1 auf 1 setze, der IRL3803 also durchschaltet, läuft der Motor auch. Anschließend lässt sich der Attiny aber nicht mehr programmieren. Trenne ich die Verbindung, d.h. das Kabel zwischen dem Pullup des Hexfets und dem PB1 (Pin 6) des Attinys und gebe der Schaltung wieder Strom, funktioniert es wieder.
Seltsam finde ich dabei, dass Pin 6 ja gar nicht zum Programmieren des Attinys benötigt wird. Es ist also wirklich nur der Transistor über den Pullup angeschlossen.

Hat jemand eine Idee, woran es liegen könnte, dass es trotzdem nicht funktioniert?

Grüße tob

Hubert.G
30.03.2008, 19:51
Wie kommst du darauf das Pin 6 nicht zu programmieren benötigt wird? Da liegt doch MISO drauf.

uwegw
30.03.2008, 20:08
Laut Atmel darf der Pullup an mosi nicht kleiner als 820 Ohm sein. Sollte also theoretisch bei dir in Ordnung sein. Praktisch würde ich es trotzdem mal mit nem größeren Pullup versuchen.

tobiastob
30.03.2008, 20:43
Danke für die Hinweise. Ich hab ihn auch an MISO angeschlossen. Da habe ich mich vertan, tut mir leid. Das scheint also nicht das Problem zu sein. Neu ist mir aber, dass MISO grundsätzlich einen Pullup Widerstand braucht. Ich versuchs mal mit einem größeren. Oder brauche ich einen separaten Pullup Widerstand, der zwischen Pin 6 des Attinys und Pin 1 des Programmers liegt? Im Datenblatt des Attinys habe ich leider nichts dazu gefunden.
Gibt es eigentlich grundsätzlich bzw. häufig Probleme, wenn man die Pins, die zur Programmierung gebraucht werden, nebenbei auch für andere Zwecke nutzt? Das lässt sich ja beim Attiny13 kaum vermeiden. Ich hab da ständig Probleme. Gibts dazu vielleicht auch eine Faustregel (Dioden, Widerstände oder ähnliches)?

Grüße tob

Besserwessi
30.03.2008, 21:02
Die Pins die zum Programmieren gebraucht werden sollte nicht zu stark belastet werden. In ndiesem Fall ist der MOSFET eine relativ große Kappatzitive belastung. Wie viel ungefähr steht im Datenblatt des FETs, aber das kann schon mal 1 nF sein. Das ist dann zu viel um da noch schnelle Signale rüberzuschicken. Eventuell kann das Porgrammieren noch gehen, wenn man es langsamer macht, bei einiges Programmierern kann man das einstellen.
Ungefähr vertragen sollten die ISP Leitungen etwa 1 KOhm oder 330 pF vertragen, wenn der AVR die Leitungen treibt, sonst hängt das vom Programmierer ab, etwa 2 KOhm und 100 pF sollten aber eigentlich gehen..

Hubert.G
30.03.2008, 22:19
Im Datenblatt steht das die Gatekapazität 5nF ist. Das ist schon gewaltig, hast du da keine Probleme beim Schalten.

tobiastob
30.03.2008, 22:55
Probleme beim Schalten habe ich nicht. Ich habe den IRL3803 auch schon ein paar mal im Forum angetroffen. Ist es doch so ungewöhnlich ihn direkt an einen Pin eines Atmels anzuschließen?

Das heißt in meinem Fall aber wohl, dass ich den nicht an MISO anschließen sollte, weil die Datenübertragung sonst gestört wird. Welcher Pin würde sich denn besser eignen? Ich möchte den MOSFET auch mit PWM ansteuern.

Falls es nicht schon zu viele Fragen sind: Ich suche auch noch einen ADC Eingang um einen Sensor über einen Spannungsteiler anzuschließen und noch einen ADC Eingang um ein 10k Ohm Poti anzuschließen. Welche der Pins ADC-fähig sind, habe ich schon heraus gefunden, steht ja auch im Datenblatt. Aber leider ergeben sich eben ständig Probleme, da ich die meisten Pins des Attiny13 auch zum Programmieren benötige.

Ich kann z.B. das 10 kOhm Poti an Pin 2 anschließen, darf seinen Widerstand aber nicht unter 1 kOhm senken, sonst gibts Probleme. Alternativ ginge wohl auch ein 1kOhm Widerstand zwischen Poti und Pin. Ist das eine Notlösung oder überhaupt die einzige Lösung?

Würde mich freuen, wenn mir jemand einen Tipp geben könnte, welche Pins sich da eignen.

Grüße tob

Hubert.G
31.03.2008, 17:35
Die Frage ist wie oft du programmieren willst. Wenn es nur ein paar mal ist, würde ich eine Lötbrücke machen die den IRL wegschaltet.
Wenn du den IRL nur zum gelegentlichen Schalten von 10A verwendest wird es kaum Probleme geben. Bei PWM sieht das dann schon anders aus, und wenn du einmal versuchst 12V und 100A zu schalten, was der IRL können sollte, wird es kaum öfter als einmal funktionieren, da das ausschalten mit dem Strom des µC zu lange dauern wird. Der PullUp verzögert das zusätzlich.

Besserwessi
31.03.2008, 18:47
Man könnte auch einen extra Gate Treiber zwischenschalten, dann könnte man weiter den Pin Nehmen. Man muss nur darauf auchen das der Motor beim Programmieren nicht anläuft.

tobiastob
08.04.2008, 22:59
Ich möchte schon gerne, dass ich ihn häufiger programmieren kann.
Am IRL3803 hängt nur ein Motor, der bei 12 Volt 0,5 A zieht. Wird also nicht vorkommen, dass der IRL gleich 100 A schalten muss, nur die Frequenz der PWM könnte ein Problem sein.
Hier http://www.mikrocontroller.net/topic/82812 steht (ganz unten), dass ein 2,2 kOhm Widerstand reicht, um den IRL von der ISP Leitung zu entkoppeln. Ist das in meinem Falls auch so?

Bedeutet
Laut Atmel darf der Pullup an mosi nicht kleiner als 820 Ohm sein. , dass ich die 2,2k (bzw. wie du sagst mehr als 820 Ohm) zwischen Pin 6 des Tinys und den entsprechenden Pin des Programmers legen muss?
Ich würde es ja ausprobieren, aber momentan funktioniert hier wenig und ich würde mich daher sehr freuen, wenn mir jemand helfen könnte, zumindest diese Fehlerquelle auszuschließen, sonst verzettel ich mich hier völlig.

Grüße tob