Forum: Mikrocontroller und Digitale Elektronik Atmega8 zwei Stück parallel schalten?


von Martin S. (panik)


Lesenswert?

Hallo Leute

ich habe mir ein nettes Gerät mit dem Atmega8 und ein paar Anzeigen 
gebastelt. Das funktioniert super aber es soll erweitert werden.

Der Atmega ist vom Speicher voll belegt (99%) und jetzt wollte ich die 
Hardware mit einem anderen Atmega8 nutzen. Meine Idee ist jetzt den 
zweiten µC einfach huckepack auf den 1. zu löten und zwischen den 
Controllern mittels Reset-Pin umzuschalten. Also lt. Datenblatt sollte 
der abgeschaltet Controller (Reset auf Masse) ja hochohmig sein. 
Logischerweise würde ich sicherstellen das nie beide Controller Reset 
auf Vcc bekommen.
Es wird immer der interne Takt verwendet, also auch das sollte klappen.

Würde das so funktionieren?

von Peter D. (peda)


Lesenswert?

Du weißt aber schon, daß der ATmega328P pinkompatibel zum ATmega8 ist?


Peter

von Martin S. (panik)


Lesenswert?

ja, das weiss ich aber ich wollte meinen 1.Controller unverändert lassen 
und jederzeit wieder aktivieren.
Würde das klappen?

von Ronald S. (mline)


Lesenswert?

Was ist so schlimm daran den 8er durch einen 328er zu ersetzen?!
Fix auf ne Platine gelötet? :D

von TheMason (Gast)


Lesenswert?

also die variante mit dem mega328p dürfte einfacher sein.
weil der speicher von dem einen controller voll ist heißt es ja nicht 
das du durch einen 2. controller mehr speicher gewinnst. im gegenteil 
... du mußt die grundlegenden funktionen ja 2 mal haben. inkl. der 
verwaltung welche der erweiterungen denn gerade läuft ...
dann dürfte es ein problem werden, wie willst du den datenaustausch 
zwischen den controllern machen wenn nur 1 gleichzeitig laufen darf ...
und bedenke, wenn die controller umgeschaltet werden läuft das programm 
immer wieder von vorne an ...

ergo -> lieber nen größeren controller nehmen. hat den vorteil das sich 
dann noch mehr features einbinden lassen.

von TheMason (Gast)


Lesenswert?

>ja, das weiss ich aber ich wollte meinen 1.Controller unverändert lassen
>und jederzeit wieder aktivieren.

wenn du den quellcode für einen atmega328p compilierst dann hast du doch 
immer noch die originalversion, nur eben angepasst für einen mega328p

von Karl H. (kbuchegg)


Lesenswert?

So wie ich das verstanden habe, möchte er die Peripherie quasi für ein 
ganz anderes Programm wiederverwenden, ohne den ersten Prozessor 
auslöten zu müssen.

Mehr oder weniger also:
Irgendwo gibt es einen Kippschalter (oder so), der die grundlegende 
Funktion des Gerätes umschaltet. Intern passiert dabei nichts anderes 
als der Reset entsprechend umgeschaltet wird.

Was ich davon halte: Öhhhhm. Da sag ich lieber nichts dazu :-)
Stelle mir gerade vor, wie ein Historiker in 300 Jahren das Gerät findet 
und rätselt, wie das wohl funktioniert hat :-)

von Martin S. (panik)


Lesenswert?

Ja, ich will einfach zwischen den Controllern umschalten. Die Controller 
sollen auch keine Daten austauschen.
Ich deute die Antworten als "könnte klappen"

Mal abgesehen vom "Sinn", spricht technisch etwas dagegen?

von Benedikt K. (benedikt)


Lesenswert?

Martin S. schrieb:

> Mal abgesehen vom "Sinn", spricht technisch etwas dagegen?

Wenn du rein zufällig an die SPI Pins das passende Bitmuster anlegst, 
kannst du den anderen AVR löschen oder die Fusebits verstellen.

von groof (Gast)


Lesenswert?

Mach es einfach!
Wenn es Probleme gibt, wirst Du es schon merken.

von Martin S. (panik)


Lesenswert?

Danke für den Tip, das wäre echt ein Grund den Unfug zu lassen.

Ist so ein Zufall eigentlich möglich, braucht der AVR nicht erst etliche 
Kommandos zur Initialisierung?

von der mechatroniker (Gast)


Lesenswert?

> Wenn du rein zufällig an die SPI Pins das passende Bitmuster anlegst,
> kannst du den anderen AVR löschen oder die Fusebits verstellen.

Ich stelle mir gerade vor, wie man durch Verteilen auf 2 AVRs richtig 
böse selbstmodifizierende Programme entwickeln könnte...

von wieder (Gast)


Lesenswert?

>Ich stelle mir gerade vor, wie man durch Verteilen auf 2 AVRs richtig
>böse selbstmodifizierende Programme entwickeln könnte...
Sei lieber still, sonst will man nach nmap auch noch den avr-gcc auf 
eine schwarze Liste von pöhsen Hackertools setzen ;)

von paranoid (Gast)


Lesenswert?

> Ich stelle mir gerade vor, wie man durch Verteilen auf 2 AVRs richtig
> böse selbstmodifizierende Programme entwickeln könnte...

2 Atmels parallel = Skynet o_O

SCNR

von groof (Gast)


Lesenswert?

Ich dachte, ein AVR steht immer im Reset? Dadurch sollte er sich durch 
nichts beeinflussen lassen.

von Karl H. (kbuchegg)


Lesenswert?

groof schrieb:
> Ich dachte, ein AVR steht immer im Reset? Dadurch sollte er sich durch
> nichts beeinflussen lassen.

Fast.
Wenn nicht das Signal für den Mega8 in den ISP Modus zu gehen ein 
gezogener Reset Pin wäre :-)

von groof (Gast)


Lesenswert?

Tschuldigung, ich arbeite normalerweise mit PICs. Die verhalten sich 
beim aktiven Reset nicht so schwachsinnig.

von Peter D. (peda)


Lesenswert?

groof schrieb:
> Tschuldigung, ich arbeite normalerweise mit PICs. Die verhalten sich
> beim aktiven Reset nicht so schwachsinnig.

Nö, der machts genauso "schwachsinnig".

Z.B. in der PIC18FX220 Programmierbeschreibung steht, im 
Programmiermodus ist /MCLR = high (Seite 8, Figure 2-11).

Wie viele andere MCs auch.

Ergibt auch Sinn, denn damit wird sichergestellt, daß sich die CPU im 
Betrieb nicht versehentlich selbst in den Programmiermodus schaltet.

Und auch, daß nicht eine arbeitende CPU mit den Programmierleitungen 
kämpft (im Reset sind alle Pins Eingänge).


Peter

von Εrnst B. (ernst)


Lesenswert?

Dafür brauchen die PICs 12V am Reset-Pin um in den Programmiermodus zu 
kommen.

Und wenn dir das "Schwachsinnige" AVR-Verhalten nicht passt: Dieses ist 
optional, mittels SPIEN-Fuse einach abzuschalten.

von groof (Gast)


Lesenswert?

> Und wenn dir das "Schwachsinnige" AVR-Verhalten nicht passt: Dieses ist
> optional, mittels SPIEN-Fuse einach abzuschalten.

Na also, geht doch.
Damit ziehen die AVRs mit den PICs wieder gleich.

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.