SPI Schnittstelle

OP #3270080
Lesenswert?

Hallo, ich bin Anfänger und verwende einen ATtiny84A.
http://www.atmel.com/Images/doc8183.pdf

Für das Programmieren verwende ich AVRStudio5 mit JTAGICE mkII. Der µC 
unterstützt ISP.

Auf der Platine will ich nun eine Möglichkeit schaffen, um den 
Programmer mit der Platine zu verbinden, den µC also in der Schaltung zu 
programmieren. Das Anschlusskabel des JTAGICE hat 10 Pins, wieviel Pins 
des µC benötige ich dafür? Im Datenblatt unter 19.5 "Serial Programming" 
sind 6 Pins angeführt: VCC,MOSI,MISO,SCK,RESET,GND. Muss ich nun einfach 
diese 6 Pins des µC an eine 10-Pin-Stiftleiste auf der Platine führen? 
Was passiert dann mit den anderen 4 Pins?

Muss ich da sonst noch irgendwas beachten (zusätzlichen Widerstände 
etc..)?

Danke!
Gast #3270093
Lesenswert?

Ich glaube du verwechselt die drei Begriffe SPI, ISP und JTAG
- SPI ist eine serielle Schnittstelle, die nicht zur Programmierung des 
µC verwendet wird
- ISP steht für In-System-Programmer, über diese Schnittstelle kannst du 
dein Programm auf den Mikrocontroller übertragen
- JTAG ist ebenfalls eine Programmierschnittstell, über die mal ein 
Programm auf dem µC auch wärend der Laufzeit Debuggen kann.

Meines wissens ist der ATtiny84A nicht über JTAG prgrammierbar und der 
Programmer JTAGICE mkII scheint laut Datenblatt keine SPI zu 
unterstützen.

Die Belegung der SPI-Connenctoren findest zu hier:
http://www.incunabulum.de/projects/poelcontrol/notizen/con-isp.png
#3270094
Lesenswert?

Die 6 Pins sind korrekt und reichen aus. Die 10 Pin Stecker sind 
veraltet. Meist sind die übrigen Pins auf Masse gelegt.
Ich würde nur noch 6 Pin ISP-Stecker verbauen (Wannenstecker).

ISP kann direkt mit dem Controller verbunden werden.
100nF Ablockkondensatoren an VCC und GND schadet nicht.

Im übrigen verwechselst du SPI und ISP. Bitte korrekte Terminologie 
sonst gibts Konfusion. ISP kann mittels SPI gemacht werden, ist trotzdem 
was anderes.


gruß cyblord
#3270116
Lesenswert?

Werner Weinwurm schrieb:
> Heißt das, ich kann mit dem JTAG ICE mk2 meinen ATtiny84A nicht
> programmieren???

Doch das sollte gehen. Es gibt mehrere Möglichkeiten zu programmieren. 
Eine davon ist ISP über die SPI-Schnittstelle mit den 4 Signalen (MOSI, 
MISO, SCK, RESET) + 2 Versorgung = deine 6 Anschlüsse. Es gibt aber noch 
HV, JTAG, DebugWire usw. Davon kann nicht jeder Controller alles.

http://www.atmel.com/tools/AVRJTAGICEMKII.aspx?tab=devices

gruß cyblord
Gast #3270129
Lesenswert?

cyblord ---- schrieb:
> Es gibt mehrere Möglichkeiten zu programmieren.
> Eine davon ist ISP über die SPI-Schnittstelle mit den 4 Signalen (MOSI,
> MISO, SCK, RESET) + 2 Versorgung = deine 6 Anschlüsse.

okay, wenn dem so ist, dann muss du die Anschlüsse wie auf dem oben 
geposten Bild (Link) verbinden.

Mich wundert nur, dass hier
http://www.atmel.com/tools/AVRJTAGICEMKII.aspx

nichts von SPI-Unterstützung steht, oder ist SP = SPI?
OP #3271346
Lesenswert?

Hallo...

Noch eine Frage dazu: Kann ich die Pins für die Programmierung (MOSI, 
MISO,...) direkt an den µC anschließen oder sind da dazwischen noch 
Vorwiderstände notwendig?

Der MOSI-Pin wird während des Betriebes zur Ansteuerung einer LED 
verwendet. Während der Programmierung wird der µC ja resettet, oder? 
Kann es durch die Programmierung dazu kommen, dass die LEDs in diesem 
Fall leuchten?

LG
#3271349
Lesenswert?

@ Werner Weinwurm (bj20)

>Noch eine Frage dazu: Kann ich die Pins für die Programmierung (MOSI,
>MISO,...) direkt an den µC anschließen

Das MUSST du sogar.

>oder sind da dazwischen noch
>Vorwiderstände notwendig?

Nein. Wenn es Probleme gibt, dann muss die Peripherie entkoppelt werden.

>Der MOSI-Pin wird während des Betriebes zur Ansteuerung einer LED
>verwendet. Während der Programmierung wird der µC ja resettet, oder?

JA.

>Kann es durch die Programmierung dazu kommen, dass die LEDs in diesem
>Fall leuchten?

JA.
OP #3272351
Lesenswert?

Hallo, bin gerade dabei, die Schnittstelle zu verbinden. Auf der Platine 
habe ich einen 10-Poligen Header, der zum Stecker vom JTAGICE mk2 passt. 
Ich würde die Pins nun wie im linken oberen Bild von folgendem Link mit 
dem µC verbinden:
http://www.incunabulum.de/projects/poelcontrol/notizen/con-isp.png

Richtig?


Was muss ich dann im AVRStudio einstellen? Würde ich die JTAG 
Schnittstelle verwenden, dann ist am Pin 2 +5V, das würde dann mit Gnd 
verbunden werden und zu einem Kurzschluss führen. Ich muss also vor dem 
Programmieren ISP für die Programmierschnittstelle einstellen, oder?

Hab ich das richtig verstanden, dass ich dann mit dieser 
Programmiermethode nicht debuggen kann?

Danke, lG
Gast #3272413
Lesenswert?

Hi

>Ich würde die Pins nun wie im linken oberen Bild von folgendem Link mit
>dem µC verbinden:
>http://www.incunabulum.de/projects/poelcontrol/not...

>Richtig?

Nein. Das ist die Belegung des 10pol. ISP Steckers. Sieh in der Hilfe 
des AVR-Studios zum JTAGICE nach welche Pins des Steckers den 
ISP-Leitungen entsprechen.

In der Hilfe zum 4er Studio ist das unter

JTAGICE mkII User Guide->Connecting the JTAGICE mkII->Connecting to an 
SPI target

zu finden.

Beim JTAGICE MKII sollte eigentlich ein ISP-Adapterkabel, allerdings für 
den sechspoligen ISP-Anschluss, dabei sein.

MfG Spess
#3272469
Lesenswert?

spess53 schrieb:
> Beim JTAGICE MKII sollte eigentlich ein ISP-Adapterkabel, allerdings für
> den sechspoligen ISP-Anschluss, dabei sein.
Das ist das Teil mit dem bunten 5cm langen Flachbandkabel. Das wird auf 
die Platine am Ende des FPC-Kabels vom JTAGICE gesteckt. Die schwarze 
Buchse ist dann die Isp- und Debugwire-Schnittstelle. Ohne Adapter ist 
das die Jtag-Schnittstelle.
Wenn du den Adapter verbummelt hast, musst du dir den selbst bauen oder 
eine 10-polige Stiftleiste auf dein Board setzen und das entsprechend 
verkabeln.
Dabei handelt es sich dann aber nicht um die alte 10-polige 
Isp-Schnittstelle!

mfg.
Gast #3273823
Lesenswert?

Hi

>Eine kleine Frage hätte ich trotzdem noch: Wie ist das nun mit dem
>Debuggen während der Laufzeit, wenn ich mit dieser Methode programmiere?

Der ATTiny84A hat DebugWire. Das läuft über den gleichen Steckverbinder.

MfG Spess
OP #3280218
Lesenswert?

Hallo...

Ich habe noch ein Problem: Verwende jetzt doch AVR STudio 4 mit dem 
alten JTAGICE (grau) mit serieller Schnittstelle...

Die 6 Pins hab ich wie oben besprochen herausgeführt. Dabie ist SCK, 
MOSI, MISO und RESET direkt herausgeführt, für VCC und GND hab ich nicht 
direkt das Signal vom µC genommen, sondern allgemeine VCC und GND punkte 
auf der Platine. Ist das ein PRoblem, dass die beiden Pins VCC und GND 
nicht DIREKT mit der Schnittstelle verbunden sind?? Ich bekomm nämlich 
beim Verbindungsversuch immer eine Fehlermeldung (siehe Anhang)

Hat jemand eine Idee, woran das liegt?
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren