Atmega Problem Mehrfachnutzung ISP-Pins

Gast #5801603
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?
Angehängte Dateien:
Gast #5801633
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? :(
Angehängte Dateien:
Gast #5801731
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.
Gast #5801921
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
Gast #5802171
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.
#5802270
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).
Gast #5802799
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.
#5803265
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 ;-)
Gast #5803946
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. :)
Gast #5803962
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 ?
Gast #5804526
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren