Hallo, kann ich bei der ATMEGA8 den PIN 15 (PB3 / MOSI) für zwei Sachen verwenden? Also gemeint ist, beim flashen der Chip möchte ich den PIN15 als MOSI verwenden und nach dem ich den Chip geflasht habe, soll sie als Ausgang PB3 dienen. Ist das möglich, wenn ja, auf was muss ich da achten? danke Frank
Ja ist möglich. Was man dabei beachten sollte, steht in http://ww1.microchip.com/downloads/en/appnotes/atmel-0943-in-system-programming_applicationnote_avr910.pdf Kurz gesagt: Du brauchst nur einen Widerstand.
Ich hab eine Schaltung, bei der MISO und MOSI zum Multiplexen einer 5x7 LED-Punktmatrix verwendet wird. Läuft problemlos.
Stefan ⛄ F. schrieb: > Kurz gesagt: Du brauchst nur einen Widerstand. Wo genau soll ein Widerstand sein? Und wofür? danke im Voraus Frank
steht doch im Text auf Seite 5 Stefan ⛄ F. schrieb: > http://ww1.microchip.com/downloads/en/appnotes/atmel-0943-in-system-programming_applicationnote_avr910.pdf soll man vorlesen? To avoid problems, the In-System Programmer should be able to keep the entire Target System Reset forthe duration of the programming cycle. The target system should never attempt to drive the three SPIlines while Reset is active. man kann das auch übersetzen lassen Um Probleme zu vermeiden, sollte der In-System-Programmierer in der Lage sein, den gesamten Zielsystem-Reset für die Dauer des Programmierzyklus beizubehalten. Das Zielsystem sollte niemals versuchen, die drei SPIlines zu steuern, während Reset aktiv ist.
:
Bearbeitet durch User
Joachim B. schrieb: > Um Probleme zu vermeiden, sollte der In-System-Programmierer in der Lage > sein, den gesamten Zielsystem-Reset für die Dauer des Programmierzyklus > beizubehalten. Das Zielsystem sollte niemals versuchen, die drei > SPIlines zu steuern, während Reset aktiv ist. Und wo bitte ist da der Widerstand gemeint?
Frank Neumann schrieb: > Und wo bitte ist da der Widerstand gemeint? wie denkst du soll es funktionieren wenn 2 Leitungen an eine geht und die eine Leitung die andere behindert? Hast du dir wenigstens mal das Bild angesehen? Der ISP soll ja durch einen Programmer in Besitz genommen werden, gleichwohl willst du an den Pins was anderes anschliessen. Wer setzt sich durch und wie soll das gehen?
Hier verstehe ich die Aufregung nicht so recht: Frank Neumann schrieb: < beim flashen der Chip möchte ich den PIN15 als MOSI < verwenden und nach dem ich den Chip geflasht habe, soll sie als < Ausgang PB3 dienen Bedeutet für mich: Die ISP sieht parallel zum Hi-Z des Pin15 maximal den Eingang einer weiterverarbeitenden Schaltung als Last. Wenn dieser Eingang keine bösen Überraschungen vorhält, sollte die ISP das doch locker schaffen...
Jacko schrieb: > Bedeutet für mich: Die ISP sieht parallel zum Hi-Z des Pin15 maximal > den Eingang einer weiterverarbeitenden Schaltung als Last da könnte ein externer pullup oder sonst was hindern. Klar kann es ohne Widerstand funktionieren, sicher geht man wenn man sich an die Empfehlung im Datenblatt hält. Ich hatte schon Arduino nano nachbauten die ohne R von den Seriellen zum USB gingen, der PIN wollte halt als Sender Tx nicht wackeln (oder war es Rx, vom USB festgehalten?) Egal jedenfalls hätte es funktinieren sollen, tat es aber nicht. Wann immer ich ISP oder RxTx Pins nutze entkopple ich mit 470 Ohm, manchmal auch I2C. 470 Ohm ist hoch genug um den Strom zu begrenzen und niederohmig genug um noch low zu signalisieren. Muss man wirklich über poplige R diskutieren? Steht als Empfehlung im Datenblatt, kann man glauben oder ignorieren, darf sich dann aber nicht wundern wenns Probleme gibt.
:
Bearbeitet durch User
Joachim B. schrieb: > steht doch im Text auf Seite 5 > > Stefan ⛄ F. schrieb: >> > http://ww1.microchip.com/downloads/en/appnotes/atmel-0943-in-system-programming_applicationnote_avr910.pdf > > soll man vorlesen? Besser solltest du auch noch die S.6 lesen Einzig die Peripherie am PB3 muss damit klar kommen, dass das Signal zappelt (S.6 "When programming, oscillations on this pin should be tolerated by the surrounding system when the AVR Reset is active.") Joachim B. schrieb: > wie denkst du soll es funktionieren wenn 2 Leitungen an eine geht und > die eine Leitung die andere behindert? MOSI ist am ATMEGA8 beim Programmierbetrieb (Reset aktiv) ein Input und der Programmer der zugehörige Ausgang. Kannst du bitte mal genau verraten, was sich da deiner Meinung nach behindern soll?
Frank Neumann schrieb: > Wo genau soll ein Widerstand sein? > Und wofür? Steht in der Application Note. So schnell kannst du sie unmöglich gelesen haben.
Stefan ⛄ F. schrieb: > Steht in der Application Note. So schnell kannst du sie unmöglich > gelesen haben. Das beantwortet nicht das "wofür" in der Konfiguration des TO. Widerstände kann man fast überall einbauen.
> Stefan ⛄ F. schrieb: >> Kurz gesagt: Du brauchst nur einen Widerstand. > > Wo genau soll ein Widerstand sein? > Und wofür? Vielleicht magst du dazu http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf Kapitel 3.6.3 lesen, ist auf deutsch.
Stefan ⛄ F. schrieb: > Vielleicht magst du dazu > http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf > Kapitel 3.6.3 lesen, ist auf deutsch. Wozu? Die Beschreibung auf S.6 der AVR910 ist doch völlig klar. Vielleicht findest du mal die Zeit, die Problembeschreibung des TO zu lesen. Die allgemeine Lösung wird zwar funktionieren, ist hier aber überflüssig. Stefan ⛄ F. schrieb: > Kurz gesagt: Du brauchst nur einen Widerstand. Nein, braucht man nicht. Wolfgang schrieb: > MOSI ist ...
Wolfgang schrieb: > Die Beschreibung auf S.6 der AVR910 ist doch völlig klar. Das dachte ich eigentlich auch. Deswegen habe ich dieses Dokument empfohlen. > Die allgemeine Lösung wird zwar funktionieren, > ist hier aber überflüssig. Ich hätte aber schlecht schreiben können, dass er gar nichts machen muss, wenn in der Erklärung dazu (der Appnote) doch ein Widerstand empfohlen wird. Dann hätte man mich dafür "verklagt". Hier wird einem ja jedes Wort im Mund umgedreht. Also lieber doppelt gemoppelt sicher, als jemandem die Chance zu geben, zu widersprechen und damit den TO nur noch mehr zu verwirren. Jetzt sind wir leider wegen dir doch wieder so weit. Und kann dir nicht einmal widersprechen, weil du ja Recht hast.
Stefan ⛄ F. schrieb: > ... und damit den TO nur noch mehr zu verwirren. Die Verwirrung resultiert allenfalls aus dem Versuch, blind irgendwelchen allgemeinen Schaltungsvarianten zu folgen, ohne die Problematik auch nur im Ansatz verstanden zu haben. Im Reset-Zustand wird MOSI am ATmega zu einem Eingang und Probleme beim Programmieren kann es nur geben, wenn dort außer den ISP-Leitungen noch ein anderer Ausgang von irgendwelchen ICs angeschlossen ist, so wie z.B. in der Schaltung am Anfang von deinem Kap. 3.6.3 der Fall ist. Dort ist ein Widerstand erforderlich und nur dort.
Wenn an dem Pin etwas dran hängt, was die Signalpegel so stört, dass die H/L-Pegel vom Programmer für jedes Bit nicht korrekt erkannt werden, gibt es zwei Möglichkeiten: - Trennen über das ziehen von Jumpern. - Oder die Variante mit den Widerständen. Die Widerstände sollten sowieso nicht weggelassen werden, so dass im Falle am Ausgang legieren Teile durch, nicht der µC mit in den Abgrund gerissen wird.
Dieter D. schrieb: > Die Widerstände sollten sowieso nicht weggelassen werden, so dass im > Falle am Ausgang legieren Teile durch, nicht der µC mit in den Abgrund > gerissen wird. Und warum wird dann nicht jeder ISP über Widerstände angeschlossen? ;-) Das ist doch ein völlig anderer Schauplatz.
Wolfgang schrieb: > Und warum wird dann nicht jeder ISP über Widerstände angeschlossen? ;-) Widerstände sollen immer zum vorher das Denken anregen. ;-) > Das ist doch ein völlig anderer Schauplatz. Die Glaskugel zeigt Dir die Gesamtschaltung des TO. Dann mach schnell davon ein Foto mit dem Smartphone für alle. ;-)
Dieter D. schrieb: > Wenn an dem Pin etwas dran hängt, was die Signalpegel so stört, ... Wenn das passiert, liegt der Wurm schon in der zu programmierenden Schaltung. Die Möglichkeit, dass das Etwas so konstruiert ist, dass es die zulässige Maximallast für den DIO nicht überschreitet, finde ich jetzt nicht so her geholt? Sonst gefährdest du nämlich mit dem zusätzlichen Widerstand auch die Normalfunktion des Pins. :-(
Hi Frank Frank Neumann schrieb: > Also gemeint ist, beim flashen der Chip möchte ich den PIN15 als MOSI > verwenden und nach dem ich den Chip geflasht habe, soll sie als Ausgang > PB3 dienen. > > Ist das möglich, wenn ja, auf was muss ich da achten? Natürlich ist das möglich. Die Frage ist doch, soll in deiner Schaltung eine Programmierschnittstelle eingebaut sein, oder programmierst du den Atmega8 extern. Wenn extern, dann brauchst du nichts beachten, wenn in deiner Schaltung, dann würde ich Jumper setzen, um jegliche Beeinflussung durch angeschlossene Peripherie oder anderer Beschaltung auszuschließen. Ich bin mit einer solchen Vorgehensweise (Siehe Skizze) ganz gut gefahren, nachdem es trotz abgeklemmter Peripherie beim Programmieren doch hin und wieder Probleme gab. Gruß oldmax
Guggst Du da http://ww1.microchip.com/downloads/en/Appnotes/AN2519-AVR-Microcontroller-Hardware-Design-Considerations-00002519B.pdf Kapitel 4.1.1 Dort stehen auch andere, sinnvolle Hinweise.
Wem die Widerstands-Lösung zu einfach ist oder der Programmer oder die Anwenderschaltung damit nicht zurecht kommt, kann auch die Luxus-Lösung mit elktronischem Umschalter nehmen: siehe Anhang.
Stefan ⛄ F. schrieb: > Ich hätte aber schlecht schreiben können, dass er gar nichts machen > muss, wenn in der Erklärung dazu (der Appnote) doch ein Widerstand > empfohlen wird. Dann hätte man mich dafür "verklagt". Hier wird einem ja > jedes Wort im Mund umgedreht. Aufgabe nicht gelesen/verstanden Richtige AN*** verlinkt, aber ins falsche Kapitel verwiesen. Dabei erwischt worden! Und jetzt am jammern: "Keiner liebt mich!" (anstelle den Rückwärtsgang einzulegen und einen (sei es auch nur teilweisen) Irrtum zuzugeben) Tipp: Einen Irrtum zugeben zu können, zeugt von einer gewissen Größe, mentalen Stärke. Im Irrtum zu verharren ist einfach nur dumm/borniert. Das Jammern will ich da gar nicht mehr beurteilen.....
Dietrich L. schrieb: > Luxus-Lösung In den meisten Fällen ist das das "Schießen mit Kanonen auf Spatzen". Hier die billig Variante: Die aller meisten SPI Slaves haben einen /CS Eingang. Wenn der per externen Pullup hoch gezogen wird, dann quatschen die Slaves beim ICSP nicht mehr dazwischen.
Dieter D. schrieb: > Wolfgang schrieb: >> Und warum wird dann nicht jeder ISP über Widerstände angeschlossen? ;-) > > Widerstände sollen immer zum vorher das Denken anregen. ;-) In den mir bekannten Atmel/Microchip-Programmern sind die relevanten Leitungen mit Schutzschaltungen versehen. Also, es ist nichts weiter zu beachten.
Martin V. schrieb: > Wenn extern, dann brauchst du nichts beachten, wenn in > deiner Schaltung, dann würde ich Jumper setzen, um jegliche > Beeinflussung durch angeschlossene Peripherie oder anderer Beschaltung > auszuschließen. Du bist auch einer, der für ein unter Wasser schwimmendes Stück Holz eine Brandschutzversicherung abschließt - nur um ganz sicher zu gehen - und die Anforderungen des TO nicht verstanden hat. Dietrich L. schrieb: > Wem die Widerstands-Lösung zu einfach ... Das soll kein universelles Experimentierboard werden, sondern es soll lediglich im Normalbetrieb PB3 (MOSI) als Ausgang genutzt werden. So schwierig ist das doch nun wirklich nicht zu begreifen.
BlaBla schrieb: > In den mir bekannten Atmel/Microchip-Programmern sind die relevanten > Leitungen mit Schutzschaltungen versehen. Naja, der AVR Dragon ist nicht der robusteste Programmer auf dem Markt, dafür ist er aber auch nicht weit verbreitet. Bei allen anderen muss man sich meiner Erfahrung nach nur Gedanken über die Eingänge machen, sofern die an den Ausgänge verbaute Peripherie mit dem Programmiergezappel klarkommt, wie auch oben schon geschrieben.
Frank Neumann schrieb: > Ist das möglich, wenn ja, auf was muss ich da achten? Hi, also, Du nimmst das IC nicht aus der Fassung und steckst es in das STK500 Evaluationsboard? OK. So langsam dämmert es mir, was Du meinst. Ist zwar ungemein bequem, die Programmierausgänge an der Fassung oder wenn IC fest eingelötet ist, als extra Steckverbindungen herauszuführen. (Jetzt kommt es aber auch noch auf den Programmer an. Da gibt es auch Unterschiede. Also, total universal ist das dann ebenfalls nicht.) Hab mich für Lösung im Bild entschieden: Rechts im Bild die 6 ISP Pins. Die Ports sind auch über Steckverbinder geführt, und diese Verbindungen werden während des Flashens abgezogen. Ist das eine Lösung für Dich? ciao gustav
:
Bearbeitet durch User
Arduino Fanboy D. schrieb: > Im Irrtum zu verharren ist einfach nur dumm/borniert. Habe deshalb nachgesehen. Die Angaben von Stefan waren aber richtig. Die einzige Herausforderung war, die drei Quellen und Angaben auseinander zu halten. Also wenn, dann verharrt hier noch Jemand anderes ebenfalls. BlaBla schrieb: > In den mir bekannten Atmel/Microchip-Programmern sind die relevanten > Leitungen mit Schutzschaltungen versehen. Genau so ist es. Die Widerstände schützen z.B. den µC im Normalbetrieb. Kann ja sein, dass der µC mit 3,3V arbeitet, der Lastschaltkreis an 5V hängt und LowThrhGateMosfets an 24V schaltet.
Arduino Fanboy D. schrieb: > Einen Irrtum zugeben zu können, zeugt von einer gewissen Größe, mentalen > Stärke. Ich muss überhaupt nichts zugeben, schon gar nicht dir gegenüber. Du bist ein Streitsüchtiger Hammel der sich in jeden Thread einmischt, wo sich die Gelegenheit ergibt, andere schlechte zu behandeln. Auf dein Verhalten kann die Welt gut verzichten.
Stefan ⛄ F. schrieb: > Ich muss überhaupt nichts zugeben, schon gar nicht dir gegenüber. Nein?!? Kannst du einen Irrtum wenigstens vor dir selbst zugeben, und beharrst nur in der Öffentlichkeit weiter darauf? Merke: Wenn hier jemand Mist erzählt, dann weise ich denjenigen darauf hin. Dass dir das nicht schmeckt, wenn du der Betroffene bist, ist offensichtlich. Geht mir aber am Arsch vorbei.
Hi Wolfgang schrieb: > Du bist auch einer, der für ein unter Wasser schwimmendes Stück Holz > eine Brandschutzversicherung abschließt - nur um ganz sicher zu gehen - > und die Anforderungen des TO nicht verstanden hat. Hä... was willst du? Wenn es dir nicht gut geht, ist in diesen zeiten ja auch durchaus zu veerstehen, dann trink einen Tee oder geh zum Arzt, aber laß doch bitteschön diese Pöbeleien. Frank Neumann schrieb: > Hallo, > > kann ich bei der ATMEGA8 den PIN 15 (PB3 / MOSI) für zwei Sachen > verwenden? > Also gemeint ist, beim flashen der Chip möchte ich den PIN15 als MOSI > verwenden und nach dem ich den Chip geflasht habe, soll sie als Ausgang > PB3 dienen. > > Ist das möglich, wenn ja, auf was muss ich da achten? > > danke > Frank Aus diesem Text geht überhaupt nicht hervor, ob der Controller extern geflasht wird, oder ob er ihn in seiner Schaltung mit einem Programmierstecker versehen will. Wenn du es besser weißt, gut, kann ja sein, dann frage ich mich, wieso so arrogant und schnöselig deine Texte ausfallen. Schlechte Erziehung? Oder vielleicht gar keine? Nun, ich will hier nicht den Besserwisser spielen, aber es ist schon auffällig, das nicht nur deine Antworten jeden guten Stil verloren haben. Vielleicht mal kurz drüber nachdenken und sich nicht anonym hinter der Tastatur verstecken und vielleicht noch das Windelhöschen wechseln (lassen). Ich glaub nicht, das, wenn du mir gegenüber wärest, in diesem Ton sprechen würdest. Also, und das ist eine Bitte an alle, versucht euch mal vorzustellen, ihr würdet an einem großen Tisch sitzen. Dann werdet ihr vielleicht wieder ein wenig höflicher. Und ja, auch ich bin genervt von Corona Gruß oldmax
Frank Neumann schrieb: > Also gemeint ist, beim flashen der Chip möchte ich den PIN15 als MOSI > verwenden und nach dem ich den Chip geflasht habe, soll sie als Ausgang > PB3 dienen. Hilfreich wäre es gewesen, wenn du gezeigt hättest, was an den PB3 angeschlossen werden soll (Schaltbild also) und bereits einige der angefallenen Fragen beantwortet hättest. So muss ich alle Varianten aufzählen 😀 ... a) Wenn du den Mega8 programmierst, bevor er auf das Zielboard aufgelötet wird, kannst du später den Portpin für alles nutzen, was im Datenblatt zulässig ist - eben als ganz normalen Portpin. b) Wenn du den Mega8 im eingelöteten Zustand programmieren willst, dann hängt es davon ab, was an den Pin sonst noch angeschlossen ist. Ist er später ein Ausgang, so gibt das eher selten Probleme. Aber das, was normalerweise an dem PB3 hängt, bekommt die Daten beim Programmieren mit. Ob das deine Schaltung verträgt, kann ich mangels Schaltplan nicht sagen. Der Rest der Schaltung sollte jedenfalls keinen Mist machen, wenn dieser PB3 vom Programmieradapter bedient wird. Die Last daran darf auch nicht so groß sein, dass der Programmieradapter seine Pegel nicht mehr schafft. In dem Fall hilft nur, den Weg zur Last aufzutrennen während des Programmierens (Jumper). Ist er später ein Eingang, dann hängt in der Schaltung ja irgendwo ein Ausgang eines anderen Teils dran, das den PB3 bedienen will. Damit käme der Programmieradapter nicht mehr zurecht. Meist hilft dann ein Widerstand zwischen dem Teil und dem Portpin, z.B. 1k, und der Programmieradapter wird direkt an den Mega8 angeschlossen. Verfälscht dieser Widerstand im Normalbetrieb den Weg zu PB3, dann hilft auch da sicher: Jumper zum Auftrennen während des Programmierens. Auch für MISO (PB4) und SCK (PB5) sind diese Überlegungen anzustellen. Zusammengefasst: beim Programmieren treibt der Programmieradapter MOSI und SCK und damit alles, was daran hängt. Und der MEGA8 treibt den MISO und alles was daran hängt. Und das alles muss der Rest der Schaltung zulassen ohne die Programmiersignale zu beeinträchtigen und die Schaltung zu beschädigen.
HildeK schrieb: > So muss ich alle Varianten > aufzählen 😀 ... Da haste dir aber viel Mühe gegeben. Irgendwie logisch das ganze. So dermaßen logisch, dass ich vermute, dass die Erklärung nicht auf fruchtbaren Boden fällt. Oder bin ich da zu pessimistisch?
Hör' doch mal auf zu meckern. Du bist nicht der einzige Mensch mit Intelligenz im Kopf.
Arduino Fanboy D. schrieb: > So dermaßen logisch, dass ich vermute, dass die Erklärung nicht auf > fruchtbaren Boden fällt. > Oder bin ich da zu pessimistisch? Wir werden sehen. Vermutlich zu pessimistisch, ich glaub noch an das Gute 😀. Vielleicht kommt aber auch gar kein Feedback mehr vom TO. Meine Aufzählung war im Prinzip eine Zusammenfassung vieler anderer Antworten, nur sind die halt weit verteilt und manche ohne ein Begründung oder ohne Nennung der Seiteneffekte. Ein TO, der diese Frage stellen muss, hat offenbar noch nicht den vollen Durchblick, was zunächst nicht schlimm ist. Da sollte man am Stück wenigstens die wichtigsten notwendigen Betrachtungen aufzählen - ganz umfassend wird's eh nie sein - so dass er eine Chance hat, die Problematik zu erkennen.
Beitrag #6501002 wurde von einem Moderator gelöscht.
Hallo, ihr mit euren Widerständen und Jumper. :-) Wie wäre es mit einer Vollautomatik für alle Fälle?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.