PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SPI und ISP mit AT90CAN128



AR@HTL
07.11.2006, 21:37
Hallo!

Wir bauen im Zuge einer Diplomarbeit einen Roboter und müssen auch Platinen planen. Dabei ist folgendes Problem aufgetreten:
Wir wollen sowohl SPI zur Kommunikation auf der Platine und auch ISP zum Programmieren am Prozessor (AT90CAN128) verwenden. Das Problem besteht nun darin, dass der Pin PB1 (SCK) sowohl für SPI als auch für ISP benötigt wird. Wie SPI anzuschließen ist geht aus dem Datenblatt des Prozessors hervor (MOSI, MISO, SCK), wie ISP angschlossen werden muss haben wir im Datenblatt nicht gefunden. Wir haben jedoch ein Entwicklungsbord (ATMegaEvoBoard mit AT90CAN128), auf dem ISP-Programming möglich ist. So haben wir uns beim Schaltplan dieses Boards schlau gemacht und wollten ISP wie am Entwicklungsboard anschließen. Hierbei wird jedoch PE0 (RXD0), PE1 (TXD0) und eben auch PB1 (SCK) verwendet.
Wie kann man also verwirklichen, dass beides funktioniert?

Danke schon im Vorraus!
mfg Patrick

askazo
08.11.2006, 08:30
Der ISP-Programmer ist eigentlich auch nix anderes als ein SPI-Master.
Ich weiß nicht, woher Du die Anschlussbelegung mit PE0 und PE1 hast, aber normalerweise wird der ISP ebenso wie ein SPI-Gerät an MISO, MOSI und SCK angeschlossen (zusätzlich noch an RST).

Schau Dir mal die Application Note AVR910 (http://www.atmel.com/dyn/resources/prod_documents/DOC0943.PDF) an, speziell Seite 3, da steht alles drin...


Ich habe gerade noch mal Datenblätter gewälzt - der Mega128CAN hat eine extra SPI-Schnittstelle zum Programmieren (PDI, PDO auf PE0, PE1). Die SCK Leitung wird gemeinsam mit dem normalen SPI benutzt.
Ich würde einfach die SCK-Leitung so beschalten, wie es in der AppNote angegeben ist und PDI, PDO ganz normal verbinden.

Bin mir nicht sicher, aber eigentlich sollte auch der 128er über MISO und MOSI zu programmieren sein...


Gruß,
askazo

AR@HTL
09.11.2006, 12:59
Danke für die Hilfe!

Ich habe die Beschaltung von der Dokumentation unseres Entwicklungsboards (http://www.microcontroller-starterkits.de/ATMegaEvoBoard.zip). Meinst du mit "Mega128CAN" den AT90CAN128? Denn ich habe auf der Atmel HP keinen Mega128CAN gefunden?!
Ich hab mir nun überlegt, wie ich den Controller beschalten will--> siehe Bild unten
Stimmbt diese Beschaltung? Wenn nein, wie dann?

mfg

askazo
09.11.2006, 13:30
Ja, mit Mega128CAN meinte ich den AT90CAN128.... ;)
Ist mir sowieso schleierhaft, warum die den AT90... genannt haben, bis auf die zusätzliche CAN-Schnittstelle ist der nämlich nahezu identisch mit dem ATMega128, die sind auch Pin-Kompatibel.

Deine Beschaltung sollte so funktionieren. Wenn Du auf Nummer sicher gehen willst, kannst in die SCK-Leitung zwischen dem ISP-Anschluss und der Abzweigung zum SPI noch einen Widerstand einsetzen, so wie's auch in der Application Note gemacht wird. Als Wert würde ich 10k nehmen.

Gruß,
askazo