Guten Morgen! Ich habe hier das Problem, dass ich einen MCP2515 (CAN-Controller von Microchip) per SPI an einen ATmega32 hängen möchte. Gleichzeitig will ich den ATmega aber auch noch über die gleiche Schnittstelle per STK500 programmieren (ISP halt). Momentan steckt der MCP2515 in einem Steckbrett mit äusserer Beschaltung (24MHz-Quarzoszillator). Wenn ich den ATmega jetzt programmieren will geht das nicht, wenn ich den MCP aber abklemme geht es. Kann das mit zu langen Leitungen zusammenhängen (STK500-Problem)? Wenn ich den ganzen Spaß jetzt auf eine Platine mache, wie muß ich dann den MCP vom "Programmierstrang" lösen? Reicht es einen Pull-Up an dessen CS-Leitung zu hängen? Wie ist das mit der Reset-Leitung, da ich beide Controller über einen Reset-Controller betreiben wollte? Vielen Dank im Vorraus Gruß Rahul
Hi, bei Atmel ist ein Appnote ... normalerweise schaltet man 1k Widerstaende dazwischen. Mfg Dirk
Alternativ den MCP2515 mit Jumper während des Programmierens abkoppeln. Ist zwar nicht sehr elegant, funktioniert aber :)
Hallo, ich verwende den ATmega16 mit dem MCP2515. Habe keine Widerstände im SPI Bus. Die braucht man eigentlich nur wenn noch ein Mikrocontroller am Bus ist. Habe auch keine Probleme beim Flashen. Hält Du den Can-Controller im Reset beim programmieren ? Wenn schließ einfach die Resetleitung vom ISP mit an den Can-Controller. Gruss Daniel
Mahlzeit! Dass das mit dem STK500 nicht funktioniert, liegt wohl an den langen Leitungen auf dem STK und dann auch noch zum Zielsystem (MCP2515). Ich bin gerade dabei eine Platine (mit OrCAD) zu entwerfen, ujnd werde die Widerstände einfach mal vorsehen. Gruß Rahul
Hallo, sorry wenn ich diesen alten Thread nochmal zum Leben erwecke, aber heisst dass dann, dass man die 1k Widerstände auch in die SPI-Leitungen schalten sollte kann muss, wenn man den Atmel als Master und sonst nur Slave-Devices verwendet? Schaltet man die 1k Widerstände in alle Leitung, also Data-In, Data-Out, Clk & SS? Grüße, Marco.
Die müssen einfach in alle Leitungen, die auch der ISP-Stecker belegt. MOSI, MISO, SCK. Beim Reset bin ich mir jetzt nicht sicher. DAmüsste ich nachgucken.
Hab's in der Application Note 910 gefunden ... die müssen nur in die Leitungen MOSI, MISO & SCK. #RESET kommt keine - die hat ja letztendlich auch nichts mehr mit SPI zu tun. Wie komme ich aber auf den Wert von 1k? In der AN steht nur, dass der Wert abhängig von der Belegung des SPI gewählt werden muss. Grüße, Marco.
Alles Quatsch, Du must nur den /CS des MSP mit auf Deinen AVR klemmen, damit dieser ausgewält werden kann und dann noch einen Pull-up (10k) gegen VCC ran. Während Reset sind die AVR-Ausgänge floatend und dann sorgt der Pull-up dafür, daß der MSP still ist (disabled). Peter
Hallo Peter, klingt schon logisch einen Pull-Up am CS zu verwenden um das Device zu deaktivieren, aber das war eigentlich garnicht meine Frage. Ich wollte ursprünglich wissen ob man die Widerstände auch in die SPI-Leitungen schalten sollte, wenn man nur Slave-Devices am Atmel hat. Daraufhin hat sich mit Hilfe der genannten AN rausgestellt, dass Atmel die bei Verwendung eines ISP auch so empfiehlt / vorschlägt. Meine Frage lautete nun letztendlich wie man die Größe des zwischengeschaltenen Widerstandes am besten ermittelt? Grüße, Marco.
Die Schutzwiderstände sind nur nötig, wenn beide Seiten unterschiedliche Stromversorgung haben. CMOS-ICs können nämlich einen parasitären Thyristoreffekt zeigen, wenn an den IO-Pins Spannung liegt, bevor sie an VCC liegt. Sie werden dann schweineheiß und können dauerhaft Schaden nehmen. Ist auch eine beliebte Methode, um LCDs mit internem Controller (HD44780) zu schlachten. Die Widerstände begrenzen also den Strom unter den Zündwert des parasitären Thyristors. Peter
Ne Peter, die Rs in der App910 sind nicht wegen dieses Effektes dort (sonst müssten sie ja in der Leitung zum STK500 drin sein). Sie sind nötig, wenn das 2. SPI Device gegen den SPI Programmer gegenan treiben könnte. Ihre Dimensionierung? Wenn STK500 high "sagt" (+5V) und anderes Device low, dann fliessen bei 1kOhm 5mA - da dürfte dann nicht kaputt gehen, also schon keine ganz verkehrte Wahl. Vielleicht einfach mal auspobieren von 470Ohm bis zu 47kOhm? Das Problem mit den langen SPI-Kabeln und zusätzlich zu vielen SPI-Devices am STK500-SPI-Bus (von denen meinetwegen auch nur der AVR aktiv ist und der Rest per PullUp an CSn sauber deaktiviert wurde) lässt sich dadurch aber nicht unbedingt lösen. Die STK500-Firmware, die bei der 3-er Version vom AVR-Studio beilag war in der Hinsicht stabiler (vermutlich weil langsamer). jörn
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.