Hallo, ich lese hier immer viel mit und bin Jetzt mal an einen Punkt
gekommen, wo ich mal Ideen bzw. vllt noch sinnvolle Ergänzungen
bräuchte.
Zu meinen Vorhaben ich wollte mir ein experimentierbord aufbauen mit dem
Schwerpunkt Bus System( ein Thema das mich sehr reizt). Bis jetzt habe
ich nur kleine Board bzw. Adapter zum programmieren und halt alle Pins
nach außen geführt, nur solangsam wird der Schreibtisch sehr voll und
mit den ganzen steckboards sehr unübersichtlich. Jetzt dachte ich mir
alles mal auf einer Platine zubringen.
Nun zu meiner frage, ich hab mir schon Gedanken gemacht was ich da so
alles unterbringen möchte, nun wollte ich mich erkundigen, ob es noch
sinnvolle Ergänzung, gibt die ich übersehen habe.
Hier mal eine grobe Übersicht über bisherigen ich nenn es mal Bauteile
die ich verbauen möchte.
Steckplatz für die ganzen Microcontroller(Attiny85,4313,ect),(Atmega
644,328,etc.) mit SPI, ISP und I2C zusammen gefügt ( Problem bis jetzt
ich kann während des progens immer nur ein UC auf die Sockel stecken,
wenn es da nen tippt gibt wie ich immer nur ein UC proggen kann die
andern jedoch in den Sockel lassen kann immer her mit der Info :-))
I2C / Rs232 USB Schnittstelle: MCP2221
Kleiner Lasten Esel L293D evtl mit MCP 23008
MCP 4151 SPI Poti
2 EEProms einmal SPI einmal I2C 24LC512
Schnittstelle für Hd 2x16 Dispaly über I2C
FTDI I2C zu low Speed CanBus und SPI zu high Speed CanBus
2 Port Erweiterungen I2C und SPI MCP 23017 und MCP 23s08
ISP Anschluss (Progammierer MY USB LIGHT)
16 Taster 8 davon direkt an IO 8 weitere über Widerstandsnetzwerk über
ADC
I2C / SPI Ausgang für Erweiterungen
Spannungsregler lm317 mit schiebeschalter zum wechseln der UC Spannung
von 3,3V oder 5V
Diverse LED
2x Dip 8 Fach Dip Switches
So das war das grobe was ich mir gedacht habe, nun wäre schön evtl noch
Ergänzungen zubekommen auf die ich selber nicht kam :-) und vllt ne
Lösung zu mein Programmier Problem.
Patrick schrieb:>> Steckplatz für die ganzen Microcontroller(Attiny85,4313,ect),(Atmega> 644,328,etc.) mit SPI, ISP und I2C zusammen gefügt ( Problem bis jetzt> ich kann während des progens immer nur ein UC auf die Sockel stecken,> wenn es da nen tippt gibt wie ich immer nur ein UC proggen kann die> andern jedoch in den Sockel lassen kann immer her mit der Info :-))
Der SPI und / oder I2C-Master müssen tri-state werden, in dem Moment, wo
die Slaves per ISP programmiert werden. Das machst Du am einfachsten,
indem die Resets der Slaves jeweils über Dioden (Schottky) den
Master-Reset ebenfalls auslösen (Dioden-Logik).
Das ist nen super Tipp.
Nur das Problem, mit dem programmieren meinte ich anders.
Ich hab einen ISP Anschluss.
Dieser ist mit VCC MOSi MISO SCK RESET und GND aller UCs verbunden.
Zum Proggen müsste ich jetzt alle UCs bis auf den zu programmierenden
entnehmen. Das würd ich gerne umgehen. Schalter bei 6 Leitungen wäre,
etwas schwer.
Und mehrere ISP Anschlüsse wollte ich eigentlich vermeiden. Wenn ich
mehrere ISP Anschlüsse verwenden würde wäre dein Tipp perfekt.
Dann brauchst Du Reset an allen (wegen Hochohmigkeit) bzw. an dem zu
programmierenden uC und Du mus mindestens z.B. die SCK-Leitung an den
nicht zu programmierenden uCs unterbrechen.
Patrick schrieb:> Also wenn ich nur die SCK Leitung, mit Jumpern machen würde würd es> funktionieren ?
Nein!
Die anderen Prozessoren laufen ja los, und zucken vermutlich auf den
Leitungen rum, je nach Programm.
Den Reset per Jumper.
Einen Reset per Jumper zum ISP Stecker
Alle anderen Resets auf GND
Nachtrag:
Ich halte das ganze für unsinnig.
Ist aber nicht meine Baustelle.
Variante A
Jeder uC hat einen ISP-Stecker. Wenn die uC alle per I2C verbunden sind,
muss Du den BusMaster auch resetten, in dem Moment, in dem Du die
anderen uCs programmierst -> Dioden-Logik. Das geht bei I2C, weil da die
ISP und I2C Pins unterschiedlch sind. Bei SPI geht das nicht.
Aufwand hier: Umstecken des ISP-Steckers
Variante B
Ein ISP Stecker für alle. Hier müssen alle den Reset bekommen, aber die
SPI darf ja nur für den Ziel-uC aktiviert sein. Deswegen musst Du bei
(N-1) uC z.B. das SCK Signal unterbrechen.
Aufwand hier: (N-1) Jumper umstecken
Zieht der Programmer die UCs dauerhaft auf Reset oder ist das ein und
ausgeschalte ?
Im Anhang hab ich das mal mit den SCK Leitungen gemacht. Wenn der
Programmer, eh den Reset ausführt kann ich die Leitungen vom Reset
erstmal zusammenfügen oder?
Hallo,
eine ergänzende Sucheanfrage zu I²C mit dig-eingängen:
Es gibt z.B. PCF8574C und PCF8575C für8 oder 16 I/O, soweit klar.
Es gibt auch den PCA9555 mit interrupt, verstehe ich den Baustein
richtig daß Eingangssignale ein FlipFlop setzen, der gespeicehrter Wert
ausgelesen wird und mit dem Read-Impuls das FlipFlop dann wiede
rgelöscht wird.
Daher auch kurze high-Signale werden erkannt und über den I²C-Bus an den
Controller weitergeleitet.
Oder geht das auch mit den PCF8574 und PCF8575?
Gruß
Wenn er genauso wie der MCP 23017 aufgebaut ist dann ist es so du hast 2
Ports mit IO Port A und B beide haben je ein Interupt Pin.
Dieser ist "frei" Programmierbar zb ich nutze PIN A.1 als Eingang, dann
kann er so eingestellt werden das bei Pegeläderung zb. LOW auf High der
Interupt ausgelöst wird. Und der Uc dann am INT Eingang dies mitbekommt
und entsprechend handeln kann.
kleines Bsp. ausm Gebrauch hier im Haus.
An Port hängen 8 Türkontaktschalter, ändert einer der Türkontakte sein
Pegel wird der Interupt ausgelöst und das am INT0 des Uc mitgeteilt.
Dieser führt in der Int-Routine,dann folgendes aus:
er sendet eine Lese Berechtigung per i2c für den Port A und schaut
welcher Türkontakt geschaltet hat. und schaltet dem entsprechend die
dazugehörigen Webcams an.
hoffe mal hab deine frage richtig verstanden.
Somit kann der Slave dem Master etwas mitteilen was onst nur im
Mulitmaster betrieb möglich ist. Nachteil sind zusätzliche Leitungen für
jeden INT Pin
Arduino F. schrieb:> Nachtrag:> Ich halte das ganze für unsinnig.
den Endruck habe ich auch.
Wenn man so universell haben will, gibt's von Atmel nicht das fertige
s.g. STK500 oder STK600 ?
SPI hin, I2C her, entweder beherscht man oder nicht. Bei allen
Controller sind das gleiche.
Ansonsten Arduinos von A...Z erfüllen dem Lernzweck auch, warum das Rad
neu erfinden?
Weil man etwas Herstellt was man an seine Bedürfnisse anpassen kann und
nicht 0815 ist.
Auch Super aussage entweder man beherrscht es oder nicht. Also mit
andern worten, brauchst du kein Testboard für Schaltungen und
Entwicklungen du baust auf Programmierst und alles läuft 100% i.o.
Glückwunsch zum Wasserfall Modell die 60er lassen grüßen.