SPI Device Parallel zum In-System-Programmer

Gast #2155665
Lesenswert?

Hallo,

ich habe ein SPI-Device welches ich über die Atmel-Hardware ansteuern 
möchte. Wenn jedoch ein neues Programm auf den Controller gespielt wird, 
so werden die Datenleitungen benutzt, ohne dass das externe Device 
deaktiviert ist. Dem Device werden also irgendwelche Informationen 
mitgeteilt die im ungünstigen Fall (bei entwprechendem Befehl) auf dem 
Device gespeichert werden.

Da es für die AVRs auch soetwas wie einen Bootloader gibt, sollte es 
doch kein Problem sein den entsprechenden CS-Eingang des Devices während 
des Programmiervorgangs über einen Portpin auf High zu legen?

Laut Datenblatt hat der Reset Vector die Adresse 0. Reicht es, wenn ich 
einfach folgende ISR definiere?
1
ISR(0x00)    // reset vector
2
{
3
   PORTD = 0x02;
4
}

Bevor ich mir meinen µC zerschieße frag ich lieber nochmal nach. :)
#2155808
Lesenswert?

Daniel schrieb:
> Wenn's geht würde ich gerne den internen Pullup Widerstand des µC
> nehmen. Gibts da eine Möglichkeit (zum Beispiel durch eine ISR)?
Nein. Denn auf die Register hast du während des direkten Beschreibens 
per Schnittstelle keinen Einfluss.

Anständig geht das anders: Du nimmst Buffer/Bustreiber aus der 74er 
Reihe, die über einen enable Eingang verfügen und setzt den an die 
Reset-Leitung deines Atmels oder an einen Portpin mit Pullup.
Das sind 2 ICs und du bist alle Sorgen los.

Der Reset-Kondition kann selten genug Beachtung gegeben werden. Denn 
wenn deine Pins floaten, können sie sich in dümmsten Fall Daten 
einfangen.
Ich hatte den Fall mal auf einer Platine mit parallel geführten 
seriellen Schnittstellen. Die hochohmige hat sich die Daten der anderen 
eingefangen und fleißig zu sinnfreien Ergebnissen verarbeitet.
Gast #2170071
Lesenswert?

Leichte Abwandlung bei mir:

Ein Mega soll per SPI sowohl mit Schieberegistern als auch wahlweise mit 
einem andere Mega kommunizieren.

Gibt es eine Möglichkeit, dass ich beide Megas jeweils einzeln 
umprogrammieren kann (mit ISP über SPI) während der andere läuft?

Bisher tendiere ich zu Jumpern, um die Spannungsversorgung des jeweils 
anderen Megas während der Programmierung abzuklemmen. Oder Jumper in den 
direkten SPI-Leitungen.

Gruß,
Olaf

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