Forum: Mikrocontroller und Digitale Elektronik SPI Device Parallel zum In-System-Programmer


von Daniel (Gast)


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. :)

von holger (Gast)


Lesenswert?

Häng einen Pullup an CS.

von Daniel (Gast)


Lesenswert?

Was für ein riesen Brett vorm Kopf!?


Danke dir! ;)

von Daniel (Gast)


Lesenswert?

Das Thema ist doch noch nicht ganz beendet.


Wenn's geht würde ich gerne den internen Pullup Widerstand des µC 
nehmen. Gibts da eine Möglichkeit (zum Beispiel durch eine ISR)?

von Michael H. (michael_h45)


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.

von Daniel (Gast)


Lesenswert?

Hallo Michael, danke für deine Antwort.

Ich denke Pullup-Widerstände sind da schon günstiger, raumsparender und 
eleganter.

von Meiermann (Gast)


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

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
Noch kein Account? Hier anmelden.