Forum: Mikrocontroller und Digitale Elektronik Atmega Problem Mehrfachnutzung ISP-Pins


von Wilma Streit (Gast)


Angehängte Dateien:

Lesenswert?

Ich bastle gerade mit einem Atmega 328 herum und bin da auf eine 
merkwürdige Sache gestoßen. Programmiert wird per ISP. Die MISO MOSI und 
SCK Pins verwende ich aber auch noch anderweitig. Jeder von ihnen einen 
NPN in Emitterschaltung an, der als Schalter dient. Als Basiswiderstand 
habe ich 1,2 k und parallel Basis-Emitter 470k geschaltet.
Ich halte mich also an die AVR Hardware Application Note und diese Wald 
und Wiesen Schaltstufe benutze ich so oder so ähnlich auch des Öfteren 
in meinen Projekten.

Jetzt stehe ich plötzlich vor dem Rätsel, dass ich mit der Beschaltung 
keine Verbindung zwischen AVR MKII Programmer und uC mehr herstellen 
kann. Selbst mit ISP-Takt 2 kHz kann ich nicht mal die Device ID 
auslesen. Wenn ich nur die Transistoren wieder auslöte, klappt es 
wieder.


Dummer Weise hat mein Oszi sich vor einigen Wochen verabschiedet und ich 
kann mir die Signalverläufe nicht anschauen. Weiß jmd was was ich nicht 
weiß und kann mir auf die Sprünge helfen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wilma Streit schrieb:
> Weiß jmd was was ich nicht weiß und kann mir auf die Sprünge helfen?
Löte doch mal statt der Transistoren die 1k2 Widerstände raus und miss 
nach, welchen Widerstand die tatsächlich haben. Wenn es c.a 1,2kOhm 
sind, dann löte da mal 10k Widerstände rein...

: Bearbeitet durch Moderator
von spess53 (Gast)


Lesenswert?


von Hannes J. (hannes_j)


Lesenswert?

spess53 schrieb:
> Hi
>
> 
http://ww1.microchip.com/downloads/en/AppNotes/AN2519-AVR-Microcontroller-Hardware-Design-Considerations-00002519B.pdf
>
> S.10
>
> MfG Spess


Ich denke genau die AN meint sie und die Schaltung entspricht dem auch 
so wie ich das sehe. Was ist los mit dir?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hannes J. schrieb:
> und die Schaltung entspricht dem auch so wie ich das sehe.
Jetzt muss nur noch der Programmieradapter in etwa dem entsprechen, wie 
der, den der Ersteller der Appnote vor sich hatte...

von Wilma Streit (Gast)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Wilma Streit schrieb:
>> Weiß jmd was was ich nicht weiß und kann mir auf die Sprünge helfen?
> Löte doch mal statt der Transistoren die 1k2 Widerstände raus und miss
> nach, welchen Widerstand die tatsächlich haben. Wenn es c.a 1,2kOhm
> sind, dann löte da mal 10k Widerstände rein...

Jupp die 1k2 stimmen. Mit 10k klappt die Verbindung für f(ISP) < 64 kHz. 
Ich hab noch ein älteres Layout ausgekramt wo die selbe Schaltung 
funktioniert. Der Unterschied hier ist, dass ich da noch genug Platz 
hatte um zwischen den Leiterbahnen Masseflächen zu erzeugen.


Habe mal zwei Ausschnitte gemacht. Die alte Variante funktioniert? :(

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wilma Streit schrieb:
> Die alte Variante funktioniert?
Hast du das ISP-Kabel zwsichen ISP-Stecker und Programmer irgendwie 
verlängert?

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

Wilma Streit schrieb:
> Als Basiswiderstand
> habe ich 1,2 k und parallel Basis-Emitter 470k geschaltet.

Die 1,2k wirken als Pulldown, das ist aber nicht spezifiziert.
Lt. Manual ist nur ein Pullup >820Ω erlaubt.

Die 470k spielen keine Rolle, sie werden durch die BE-Diode überbrückt. 
Kannste auch weglassen.

von Wilma Streit (Gast)


Lesenswert?

Lothar M. schrieb:
> Wilma Streit schrieb:
> Die alte Variante funktioniert?
>
> Hast du das ISP-Kabel zwsichen ISP-Stecker und Programmer irgendwie
> verlängert?

Naja, verlängert nicht. Ich benutze tatsächlich einzelne Verbinder von 
ca 10 cm, da ich kein Kabel mit 6pol Wannenstecker habe.


Peter D. schrieb:
> Die 1,2k wirken als Pulldown, das ist aber nicht spezifiziert.
> Lt. Manual ist nur ein Pullup >820Ω erlaubt.

Achso, daran habe ich ja tatsächlich gar nicht gedacht. Ja dann war es 
wohl reines Glück dass es bisher so oft funktioniert hat. Hmm, eine Idee 
wie ich die Schaltung trzd noch benutzen könnte? Wohl nur indem ich den 
Basis Vorwiderstand so groß wie möglich wähle?


Und in Zukunft dann an der Stelle die Schaltung etwas ummodeln um einen 
PNP benutzen zu können. Oder direkt einen Mosfet nehmen? Wie würdet ihr 
das machen? Geht um eine einfache PWM von ca 5 kHz.

von Wilma Streit (Gast)


Lesenswert?

Peter D. schrieb:
> Die 470k spielen keine Rolle, sie werden durch die BE-Diode überbrückt.
> Kannste auch weglassen.

Der soll im RESET für definiertes Potenzial sorgen..

von Harry (Gast)


Lesenswert?

Ich hab fast das was du willst in Betrieb: Mega8 MOSI/MISO über 1k auf 
die Basis des Transistors, aber ich steuere PNP-Transistoren an. Ich 
multiplexe damit ein 5x7-LED-Display.
Wie schon gesagt wurde, glaube ich auch, daß der Progger das können muß.

von wendelsberg (Gast)


Lesenswert?

Harry schrieb:
> Wie schon gesagt wurde, glaube ich auch

Wie schon gesagt, Glaube gehoert in die Kirche, das hier ist Technik, da 
wird berechnet. Vielleicht auch noch gemessen, aber dann ist Schluss! 
;-)



wendelsberg

von M.A. S. (mse2)


Lesenswert?

Peter D. schrieb:
> Die 1,2k wirken als Pulldown, das ist aber nicht spezifiziert.
> Lt. Manual ist nur ein Pullup >820Ω erlaubt.

Wo steht das?
In der weiter oben verlinkten APnote steht lediglich etwas von mind. 330 
Ohm in jeder Leitung, egal, wohin sie danach führen.

von Wilma Streit (Gast)


Lesenswert?

Ich denke ich pack das Ding mal in die Schublade, bis ich wieder ein 
Oszilloskop habe. Ohne macht das ganze eh nicht so richtig Spaß!

von Asdf (Gast)


Lesenswert?

M.A. S. schrieb:
> Peter D. schrieb:
> Die 1,2k wirken als Pulldown, das ist aber nicht spezifiziert.
> Lt. Manual ist nur ein Pullup >820Ω erlaubt.
>
> Wo steht das? In der weiter oben verlinkten APnote steht lediglich etwas
> von mind. 330 Ohm in jeder Leitung, egal, wohin sie danach führen.

Nein, das steht da nicht. Die 330Ohm sind nur zum Schutz des Proggers 
gedacht.

In der AppNote steht genau genommen gar nichts zu den Widerständen. 
Evtl. findet man was in den Daten des Proggers zu dessen Treiberleistung

von Peter D. (peda)


Lesenswert?

Wilma Streit schrieb:
> Der soll im RESET für definiertes Potenzial sorgen..

Ein BJT braucht Basisstrom, d.h. er sperrt auch ohne Pulldown. Nur ein 
FET braucht einen Pulldown.
BJTs benutze ich nur noch sehr selten, FETs habe oft bessere 
Eigenschaften.

von Wilma Streit (Gast)


Lesenswert?

Peter D. schrieb:
> Ein BJT braucht Basisstrom, d.h. er sperrt auch ohne Pulldown. Nur ein
> FET braucht einen Pulldown.
> BJTs benutze ich nur noch sehr selten, FETs habe oft bessere
> Eigenschaften.

Kommt drauf an was man will, nicht? Per se würde man wohl erstmal keinen 
Unterschied bemerken und die Schaltung würde genauso funktionieren wie 
ohne diesen Widerstand. Allerdings war die allererste Version der 
Schaltung und des Layouts vor vielen Monden mal eine Projektarbeit im 
Fach EMV-gerechtes Schaltungsdesign. Und wenn es um maximale 
Störfestigkeit geht hat der Widerstand dann eben auch beim BJT seine 
Berechtigung. Aber ja, in der jetzigen Anwendung hätte man ihn auch 
streichen können.

von Peter D. (peda)


Lesenswert?

Wilma Streit schrieb:
> Allerdings war die allererste Version der
> Schaltung und des Layouts vor vielen Monden mal eine Projektarbeit im
> Fach EMV-gerechtes Schaltungsdesign.

Wenn der Transistor auf einem Programmierpin liegt, dann wird er beim 
Programmieren eh lustig hin- und herschalten, da hilft auch der 
Widerstand nicht. Und im Betrieb ist der Ausgang des MCs niederohmig 
(Push/Pull).

von Wilma Streit (Gast)


Lesenswert?

Peter D. schrieb:
> Wilma Streit schrieb:
> Allerdings war die allererste Version der
> Schaltung und des Layouts vor vielen Monden mal eine Projektarbeit im
> Fach EMV-gerechtes Schaltungsdesign.
>
> Wenn der Transistor auf einem Programmierpin liegt, dann wird er beim
> Programmieren eh lustig hin- und herschalten, da hilft auch der
> Widerstand nicht. Und im Betrieb ist der Ausgang des MCs niederohmig
> (Push/Pull).

Richtig. Das hast du gut erkannt. Und U = R/I.  Und trzd kannst du ohne 
Kenntnis der restlichen Schaltung kaum pauschal sagen, ob der Widerstand 
nun dort gebraucht wird oder nicht. Zumal es nichts zum Thema beträgt. 
Trotzdem vielen Dank für deine Mühe.

von Hannes B. (Gast)


Lesenswert?

Der Widerstand hat unter EMV Gesichtspunkten auf jeden Fall eine 
Berechtigung. Jeder der was anderes behauptet hat entweder keine Ahnung 
oder hat nicht lang genug nachgedacht.
Die Schaltung sollte so auf jeden Fall tun. Probiere Mal einen anderen 
Programmer.

von Joachim B. (jar)


Lesenswert?

Wilma Streit schrieb:
> Und U = R/I.

darüber würde ich echt streiten wollen!

V = V/A² ???

von Crazy Harry (crazy_h)


Lesenswert?

wendelsberg schrieb:
> Harry schrieb:
>> Wie schon gesagt wurde, glaube ich auch
>
> Wie schon gesagt, Glaube gehoert in die Kirche, das hier ist Technik, da
> wird berechnet. Vielleicht auch noch gemessen, aber dann ist Schluss!
> ;-)
>
> wendelsberg

Da du anscheinend alle Progger dieser Welt kennst: berechne es. Meiner 
kann es und das glaube ich nicht, ich weiß es ;-)

von Wilma Streit (Gast)


Lesenswert?

Joachim B. schrieb:
> Wilma Streit schrieb:
>> Und U = R/I.
>
> darüber würde ich echt streiten wollen!
>
> V = V/A² ???

Ironie funktioniert im Internet einfach nicht..




----------------------
Update: Es war wirklich der Programmer. Hatte hier noch einen Arduino 
rumliegen und habe den mal als ISP Programmer ausprobiert. Danke nochmal 
für die Hilfe. :)

von Proletikus (Gast)


Lesenswert?

Bei den IO Pin, speziell bei Mehrfachnutzung sollte man immer bedenken :
- Es gibt ein Leben vor dem ersten Programmieren. Die meisten
  Pins sind dann Tristate. Ist dieser Zustand sicher ?
- MISO, MOSI & SCK haben eine eigene funktion wenn Reset = 0 ist.
  Ist dieser Zustand sicher ?

Speziell im Hinblick auf Ausgangsstufen. Faengt da ein Motor an zu 
drehen? faengt eine Heizung an zu Heizen ?

von Wilma Streit (Gast)


Lesenswert?

Proletikus schrieb:
> Bei den IO Pin, speziell bei Mehrfachnutzung sollte man immer
> bedenken :
> - Es gibt ein Leben vor dem ersten Programmieren. Die meisten
>   Pins sind dann Tristate. Ist dieser Zustand sicher ?
> - MISO, MOSI & SCK haben eine eigene funktion wenn Reset = 0 ist.
>   Ist dieser Zustand sicher ?
>
> Speziell im Hinblick auf Ausgangsstufen. Faengt da ein Motor an zu
> drehen? faengt eine Heizung an zu Heizen ?

Warum erzählt hier ständig irgendjemand etwas, was weder gefragt war 
noch sonst irgendwas beiträgt? Ist das hier so ein Spiel?


Ich mach mit... Wenn man delay.h benutzen will, sollte man mit #define 
F_CPU den Takt festlegen.

von Hannes J. (hannes_j)


Lesenswert?

:-D

von Joachim B. (jar)


Lesenswert?

Wilma Streit schrieb:
> Warum erzählt hier ständig irgendjemand etwas, was weder gefragt war
> noch sonst irgendwas beiträgt? Ist das hier so ein Spiel?

offensichtlich

Wilma Streit schrieb:
> Und U = R/I

Wilma Streit schrieb:
> Ironie funktioniert im Internet einfach nicht..

hat hier einer nach Ironie gefragt?

von Hannes J. (hannes_j)


Lesenswert?

Joachim B. schrieb:
> hat hier einer nach Ironie gefragt?

ja

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.