Hallo, bevor ich anfange zu löten brauche ich eure Hilfe. Ich möchte eine Schaltung mit einem Atmega32 (SMD) und einem Display löten. Da ich den Atmega danach nicht mehr aus der Schaltung bekomme um ihn alleine zu programmieren möchte ich ISP benutzen und den dann per ISP des STK-600 dierekt auf der Platine programmieren. Das Display hat ein CS der high-Aktiv ist es liefert keinerlei Daten (über MISO) zurück sondern kann nur empfangen. Die Schaltung möchte ich wie in der angehängten Zeichnung aufbauen. Meine Frage an euch, kann/wird das so funktionieren? Habe dazu 3 Fragen: 1. Da der Atmega über SPI auch gleichzeitig (über MISO) Daten liest, ich aber keine vom Display bekomme, würde ich gerne den Pin 7 (PB6 / MISO) über den (grünen) 10k Pulldown-Widerstand auf low legen, damit nur Nullen eingelesen werden. Kann ich so trotzdem noch über ISP den Atmega programmieren? (da ja der Programmer (der dann der Master ist und der Atmega der Slave) die Daten über denselben MISO-Pin in den Atmega schreibt) 2. Habe irgendwo gelesen, dass man in die Leitungen zum ISP Widerstände vorsehen soll. Habe die mal blau eingezeichnet. Brauche ich die? Wenn ja - wofür? 3. Habe über das Datenrichtungsregister DDRB den SS Pin auf high/Ausgang gesetzt um somit den Atmega als Master einzustellen. Der Programmer müsste ja, damit der Atmega nun der Slave ist diesen SS-Pin auf low legen. Macht der Programmer das so? Funktioniert das dann trotzdem, dass ich den SS Pin auf high gelegt habe? Oder spielt das keine Rolle weil beim Programmieren der RESET-Pin des Atmega ja auf low gezogen wird und somit mein 'auf high legen' garnicht ausgeführt wird? Vielen Dank schonmal für eure Hilfe!
T. Baumbach schrieb: > Hallo, > > bevor ich anfange zu löten brauche ich eure Hilfe. > Ich möchte eine Schaltung mit einem Atmega32 (SMD) und einem Display > löten. > Da ich den Atmega danach nicht mehr aus der Schaltung bekomme um ihn > alleine zu programmieren möchte ich ISP benutzen und den dann per ISP > des STK-600 dierekt auf der Platine programmieren. > Das Display hat ein CS der high-Aktiv ist es liefert keinerlei Daten > (über MISO) zurück sondern kann nur empfangen. > Die Schaltung möchte ich wie in der angehängten Zeichnung aufbauen. > Meine Frage an euch, kann/wird das so funktionieren? > Habe dazu 3 Fragen: > > 1. > Da der Atmega über SPI auch gleichzeitig (über MISO) Daten liest, ich > aber keine vom Display bekomme, würde ich gerne den Pin 7 (PB6 / MISO) > über den (grünen) 10k Pulldown-Widerstand auf low legen, damit nur > Nullen eingelesen werden. > Kann ich so trotzdem noch über ISP den Atmega programmieren? ja. der programmer ist "stärker" > (da ja der Programmer (der dann der Master ist und der Atmega der Slave) > die Daten über denselben MISO-Pin in den Atmega schreibt) > > 2. > Habe irgendwo gelesen, dass man in die Leitungen zum ISP Widerstände > vorsehen soll. Habe die mal blau eingezeichnet. > Brauche ich die? Wenn ja - wofür? > kann man weglassen. schützt vor ESD uund kurzschlüssen. allerdings ist 1k zu viel. besser 33..100ohm. > 3. > Habe über das Datenrichtungsregister DDRB den SS Pin auf high/Ausgang > gesetzt um somit den Atmega als Master einzustellen. > Der Programmer müsste ja, damit der Atmega nun der Slave ist diesen > SS-Pin auf low legen. Macht der Programmer das so? Funktioniert das dann > trotzdem, dass ich den SS Pin auf high gelegt habe? > Oder spielt das keine Rolle weil beim Programmieren der RESET-Pin des > Atmega ja auf low gezogen wird und somit mein 'auf high legen' garnicht > ausgeführt wird? genau. im reset sind die pins 'tri-stated' > > Vielen Dank schonmal für eure Hilfe!
T. Baumbach schrieb: > über den (grünen) 10k Pulldown-Widerstand auf low legen, damit nur > Nullen eingelesen werden. Warum? Schalt den internen Pullup ein und gut ist. Das, was da eingelesen, wird vom Programm nicht beachtet und dem Controller ist das egal. mfg.
Es gibt auch sowas wie Jumper, damit man eben diese Sorgen nicht haben muss. Wenn der Programmer eben doch nicht so ganz stark ist verbrät er dir auch die Fuses und das war es dann mit dem Chip, wenn du keinen HV Programmer hast.
Christian J. schrieb: > Es gibt auch sowas wie Jumper, damit man eben diese Sorgen nicht > haben > muss. > Wenn der Programmer eben doch nicht so ganz stark ist verbrät er dir > auch die Fuses und das war es dann mit dem Chip, wenn du keinen HV > Programmer hast. "Mäuseklavier" gibt's kleiner und als einmal alles Schalter. GND nicht vergessen ...
Hi http://www.atmel.com/Images/Atmel-2521-AVR-Hardware-Design-Considerations_ApplicationNote_AVR042.pdf 3.1.1 Shared Use of SPI Programming Lines MfG Spess
T. Baumbach (Gast) > Atmega32_SPI_ISP.png Nicht so günstig. Lass die 3x 1k weg. >Da der Atmega über SPI auch gleichzeitig (über MISO) Daten liest, ich >aber keine vom Display bekomme, würde ich gerne den Pin 7 (PB6 / MISO) >über den (grünen) 10k Pulldown-Widerstand auf low legen, damit nur >Nullen eingelesen werden. Kann man machen, ist aber unkritisch. >Kann ich so trotzdem noch über ISP den Atmega programmieren? Sicher. >Habe irgendwo gelesen, dass man in die Leitungen zum ISP Widerstände >vorsehen soll. Habe die mal blau eingezeichnet. >Brauche ich die? Wenn ja - wofür? Nein. Lass sie weg. >Habe über das Datenrichtungsregister DDRB den SS Pin auf high/Ausgang >gesetzt um somit den Atmega als Master einzustellen. Nein, als Master stellt man das SPI über ein anders Bit ein. ABER dennoch muss SS als Ausgang geschaltet werrden. Also alles OK. >Der Programmer müsste ja, damit der Atmega nun der Slave ist diesen >SS-Pin auf low legen. Nein. Bei ISP hat der SS Pin keine Funktion. >Funktioniert das dann trotzdem, dass ich den SS Pin auf high gelegt >habe? Ja. >Oder spielt das keine Rolle weil beim Programmieren der RESET-Pin des >Atmega ja auf low gezogen wird und somit mein 'auf high legen' garnicht >ausgeführt wird? Ja.
> Wenn der Programmer eben doch nicht so ganz stark ist verbrät > er dir auch die Fuses Er meint damit, dass der Programmer die Fuses möglicherweise falsch setzt. Die 1k Widerstände erhöhen die Wahrscheinlichkeit dieses Fehlers. Also alss sie weg.
Die 1K sind nach Atmel datasheet falsch eingezeichnet .. Quasi kommt direkt an den Atmega der ISP Slot und der 1K und alles was nicht programmiert hinter die 1K. (Du hast es falschrum im Bild) Schon besprochen hier: Beitrag "ISP Programmieren, trotz Geräte am spi bus" Denke das das sonst mit den 1K okay ist.. Hätte auch das gleiche wie spess53 angemerkt. Edit: Bild angehängt
:
Bearbeitet durch User
Hi, danke für alle die mir hier schon geholfen haben. Habe eine neue Zeichnung angehängt. 1. Habe den Pulldown-Widerstand an PB6 weggelassen, und wie Thomas Eckmann gesagt hat den Pin (per Software) in den High-Z / Tristate Modus zu setzen. 2. Bin mir über den Wert der blauen Widerstände nicht sicher, easylife hat gesagt 1k wäre zu groß, 33-100Ohm wären besser - was ist nun richtig? 3. Die letzte Antwort von Philipp K. hat mich einwenig verwirrt, wo jetzt die Widerstände zu setzen sind. Habe in der Zeichnung zwei Optionen gemacht, ich denke so wie in der linken Zeichnung (A) müsste es korrekt sein - oder? Danke nochnmal...
1. Links isses richtig 2. In Deiner ersten Schaltung hatten Deine Widerstände für das eigentliche Spi-ISP Problem keinen nutzen,man hätte diese dort an der Stelle mit 100Ohm als Kurzschlussschutz(oder was auch immer) einsetzen können. 3. Normalerweise sind für die Trennung 1k bis auf wenige Ausnahmen okay.. und auch diese probleme hättest Du in der Suche finden können. (Wie die anderen auch)
Hi >Habe eine neue Zeichnung angehängt. Du solltest alle Posts lesen. Die richtige Lösung hatte ich dir schon gestern gepostet: Beitrag "Re: SPI und ISP in derselben Schaltung" MfG Spess
@Philipp, danke, aber dann sind doch die Widerstände in der Zeichnung von Atmel korrekt. Direkt an den Pins des Atmega wird abgegriffen für ISP. Dann kommen die Widerstände und dahinter liegt dann der SPI-Bus. Also was deiner Meinung nach ist in der Atmel-Zeichnung falsch? Habe mir auch mal Gedanken über die Stromzufuhr gemacht. (siehe angehängtes Bild). Das Display braucht ja Strom und weitere Verbraucher (z.B. Rest der Schaltung, ein Motor oder was auch immer) auch. Wenn ich nun den Atmega flashen also programmieren möchte, habe ich die eigentliche Stromversorung der Schaltung ja abgeschaltet. Dann stecke ich den 6 poligen Stecker des STK-600 (oder anderen Programmers) and den ISP-Anschluss. Wenn ich die rot eingezeichnete Diode NICHT hätte, dann würden ja die Verbraucher sofort Strom ziehen und zwar aus dem Programmer, was bei zuviel Strom evtl. den Programmer beschädigen könnte. Meine Frage nun , macht man das dann so mit der Diode, wie ich sie (rot) eingezeichnet habe oder muss ich da mit einem Jumper o.ä. arbeiten, damit der Programmer nicht die Vebraucher mit Strom versorgt? Danke nochmals...
Normalerweise dient die VCC Leitung am ISP Stecker dazu, dass der Programmer sich auf diese Spannung einstellen kann. Die Schaltung braucht nach wie vor ihr eigenes Netzteil. Die Idee, den Programmer zur Stromversorgung zu missbrauchen ist nicht im Sinne der Erfindung und sollte daher auch in jedem Fall mindestens durch Jumper oder Schalter abschaltbar sein.
T. Baumbach schrieb: > Also was deiner Meinung nach ist in der Atmel-Zeichnung falsch? Nein Nur Dein kompletter Schaltplan im Eröffnungspost war falsch.. das Atmel was falsch gemacht hat habe ich nie geschrieben ;) Spess53 hat als erstes den richtigen Tip gegeben. Und das mit dem Netzteil ist Anwendungsabhängig wenn Du zum Beispiel 400ma hast und der Programmer USB-VCC direkt durchbrückt kannste das nebenbei noch zum testen laufen lassen.. (mach ich so)
:
Bearbeitet durch User
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.