Hallo, als uC-Neuling bitte ich um Hilfe. Habe meine ersten Gehversuch mit uC auf einem STK500 und einem Atmega32 (geliehen) gemacht. Da der Butterfly mit dem Display für meine geplante Anwendung passen würde, bitte ich um Unterstützung. Ich hänge da beim SPI-Thema mit einem Verständnisproblem. Das Butterflyboard hat ja den uC Atmega169 drauf. Im Datenblatt des Atmega169 sind für SPI die Pins 9-13 angegeben. Wenn ich aber in die Butterfly-Dokumentation gehe, dann sind die Pins (Block rechts unten) für die In-System-Programming verwendet (habe ich so verstanden). Über diese Schnittstelle habe ich beim Ausprobieren mit Hilfe eines Kabels am PC-Paralell-Druckerport den Butterfly geflasht. Da mein Ziel ist Mux/Demux-Bausteine (74HC165 + 74HC595) über uC zu steuern stehe ich jetzt auf dem Schlauch. Nun meine Fragen: - Muss da ein Fuse-Bit (SPIEN) geändert werden, damit quasi aus ISP das SPI wird? - Kann dann das Flashen nur über den UART-Anschluss und den Bootloader erfolgen? - Wie funktioniert die Ansprache/der Anstoss des SPI beim Butterfly? Habe die Funktion des SPI über Wiki und ähnliche Doku verstanden, aber wie wird sie im uC gestartet / gesteuert? Habt bitte Verständnis für einen Anfänger. Danke für Eure Hilfe im Voraus.
Hallo, der SPI wird von Deinem Programm entsprechend bedient. Die Pins sind gleichzeitig der ISP zum programmieren. Entschieden wird das beim AVR vom Reset-Pin. Ist er im Reset (Low) ist er auch im Programmiermode und erwartet an diesen Pins die Kommandos vom Programmieradapter. Läuft er (Rest High) sind es normale I/O-Pins oder eben auch SPI. In die Quere kommen können sich nur angeschlossen Bauteile (Deine '595 z.B.), weil die u.U. den Programmieradapter beis einer Arbeit stören oder weil beim Programmieren die Signale auch an Deinen Schieberegistern anliegen und u.U. diese wild Daten schieben lassen. Ob es konkret stört, hängt von der Anwendung ab. Ein paar flackernde LEDs nerven höchstens beim Programmieren, wild zuckende Motore o.ä. wären da schlimmer. Also abschätzen, was passiert, wenn das parallel dranhängt. Auch daran denken, daß die AVR-Pins im Reset Eingang ohne PullUp sind und angeschlossene Baugruppen das vielleicht nicht gut finden. Programmierbeispiele zum SPI sollten im Tutorial ja zu finden sein. Gruß aus Berlin Michael
Ueblicherweise nimmt man einen Pin als Chipselect fuer ein SPI device. Dieser muss mit einem Pullup, oder Pulldown inaktiv gezogen werden, da der Mega bei einem Reset in einem Tristate Mode ist.
Hallo Michael, zuerst einmal vielen Dank. Da scheint es mir ja besser, wenn ich auf ISP verzchte und die Programmierung über UART vorsehe. Wenn ich bei installierter Anwendung das Prgramm ändern möchte, dann kann ich ja schlecht parallel zu den IC's auch noch die den 169 flashen, wer weiß was da passiert. Noch 'ne Frage zum Programmieren/Flashen: Bisher habe ich alles unter Linux mit einem Editor und AVRDUDE gemacht. So 'ne grafische Oberfläche, wie z.B. AVRStudio habe ich da noch nicht entdeckt. TUT man sich als Änfänger mit so einer Oberfläche wirklich leichter? Gruß Dietmar
Hallo hacky, danke für die Info. Das ist aber für einen Anfänger noch etwas hoch. Hast Du einen Link oder so etwas, wo das noch etwas mehr erklärt ist?
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.