Hi, wenn man serielle Daten von einem Mikrocontroller an verschiedene Empfänger schicken will, z.B. mal an eine MIDI Schnittstelle, oder RS232 und im nächsten Moment an ein Schieberegister, wie stellt man das üblicherweise an? Einfachere µCs haben ja nur eine serielle Schnittstelle. Wenn ich mehrere Schieberegister habe, kann ich jeweils bei einem den ENABLE Pin verwenden. Wenn ich allerdings noch eine MIDI Schnittstelle ansteuere, wie sorge ich dafür dass diese sich nur zur richtigen Zeit angesprochen fühlt? Muss ich einen Solid-State Switch davor setzen? Wie sieht es mit Demultiplexern aus, verwendet man die an solcher Stelle um Signale zu "routen" und könnt ihr mir ein Standardmodell nennen, z.B. im DIP8 Format? Liebe Grüße und Frohe Weihnachten! Adrian
:
Bearbeitet durch User
Adrian E. schrieb: > wie sorge ich dafür dass diese sich nur zur richtigen Zeit angesprochen > fühlt? Muss ich einen Solid-State Switch davor setzen? Kommt drauf an, wo du umschalten willst - auf TTL-Niveau oder auf Leitungsniveau, z.B. RS232C. Bei letzterem brauchst du Schalter, die die Spannungen schalten können, ja das ist sowas wie ein Relais, egal ob mechanisch oder Halbleiter. Wenn du auf TTL-Niveau umschaltest, brauchst du für jeden Zweig eigene Treiber, das aber dafür den Vorteil, dass du zum Umschalten Logikbausteine verwenden kannst und dass die Treiber verschieden sein können, z.B. RS232C oder RS485 usw. Demultiplexer im 8pol Gehäuse gibt es meines Wissens nicht, weil da zuwenige Pins zur Verfügung stehen, gut geeignet ist ein 74xx138. Georg
Hi, der 74xx138 ist auf jeden Fall schon mal das richtige für etwas größere Schaltungen. Könnte mir noch jemand ein standard Solid State Relais für 5V Digitalsignale empfehlen? Kein nennenswerter Strom, am besten TO-92 Gehäuse. Gruß!
In meinem konkreten Anwendungsfall geht es darum, wahlweise einen MIDI Ausgang oder ein Schieberegister anzusprechen. Da ich nur normale Transistoren da habe, würde ich eine "Enable" Funktion des MIDI Ausgangs jetzt folgendermaßen realisieren: (Siehe Bild) 5V (µC) - Wird vom µC auf high gehalten, beim MIDI Senden Rechteck - Die seriellen Daten vom µC Rechts sieht man noch wo mein Oszilloskop angeschlossen war. Laut MIDI Spezifikation werden 5mA übertragen (In der Testschaltung durch den 1K Belastungswiderstand). Sind die sehr geringen Ströme vom µC zum ersten Transistor problematisch in Bezug auf die Störanfälligkeit? Was mache ich mit so einer Schaltung wenn auf der Leitung zum Empfänger quasi gar kein Strom übertragen wird? (Was für Basisströme berechne ich dann?) Liebe Grüße, Adrian.
:
Bearbeitet durch User
Was sind denn Deine Anforderungen? SPI-Master, I2C-Master oder UART-TX kann man bequem mit beliebigen IO-Pins machen. Dazu brauchst Du keine externen ICs.
Adrian E. schrieb: > Einfachere µCs haben ja nur eine serielle Schnittstelle. Dann nimm halt einen, der mehr hat. Gibt ja genug davon, auch in DIP. Der PIC24FJ128GA202 hat sogar 4 UARTs, 3 SPI und 2 I2C - in SDIP28. Schieberegister kannst Du auch per GPIO steuern. Und wenn Du mehr UARTs brauchst, gibts dawas von Ratiopharm ... äh ... NXP: http://www.nxp.com/documents/leaflet/75015676.pdf fchk
Peter D. schrieb: > Was sind denn Deine Anforderungen? > SPI-Master, I2C-Master oder UART-TX kann man bequem mit beliebigen > IO-Pins machen. Dazu brauchst Du keine externen ICs. In diesem Fall geht es um MIDI, also UART-TX, denke ich. Die Mikrocontroller, die ich bis jetzt verwendet habe (Attiny2313, Atmega8) können nicht die I/O Pins der seriellen Schnittstelle wechseln, soweit ich weiß. Gibt es welche von Atmel die das können? Oder würdest du eine manuelle "Bit-Banging" Lösung vorschlagen? Ich würde gerne erst mal bei Atmel bleiben, da ich dafür die Programmer habe. Gruß! Adrian
Adrian E. schrieb: > In diesem Fall geht es um MIDI, also UART-TX, denke ich. Die > Mikrocontroller, die ich bis jetzt verwendet habe (Attiny2313, Atmega8) > können nicht die I/O Pins der seriellen Schnittstelle wechseln, soweit > ich weiß. Nein, Programmeble Pin Select, d.h. die Zuordnung von Peripheriefunktionen zu (fast) beliebigen IO-Pins, hat AVR nicht. Das haben die meisten PIC24, einige PIC32 und wenige PIC16/PIC18. Ist, wenn vorhanden, sehr schön, um ein optimales Layout einfach hinzubekommen. Du brauchst doch aber nur einen UART für MIDI und ein SPI für Deine Schieberegister. Das hat sogar der Mega8, wobei ich eher den pinkompatiblen, aber besseren Mega88 kaufen würde. Wenn Du zwei UARTs brauchst, gibts zB den Tiny841. > Ich würde gerne erst mal bei Atmel bleiben, da ich dafür die Programmer > habe. Sei doch ehrlicher und sage "weil ich mich darin gerade mit Müh und Not irgendwie eingearbeitet habe". Ein Pickit3-Clone kostet 20 Euro, ist also kein Kostenargument. fchk
Adrian E. schrieb: > Oder würdest du eine manuelle > "Bit-Banging" Lösung vorschlagen? Wieviel MIDIs willst Du denn? Die genannten haben doch eine UART. Bit-Banging für weitere MIDIs geht natürlich auch.
Hallo, > Adrian E. schrieb: > wenn man serielle Daten von einem Mikrocontroller an verschiedene > Empfänger schicken will, z.B. mal an eine MIDI Schnittstelle, oder RS232 > und im nächsten Moment an ein Schieberegister, wie stellt man das > üblicherweise an? MIDI und RS232 sind asynchrone Schnittstellen. Für diese verwendet man möglichst eine UART. Schieberegister haben eine synchrone Schnittstelle (Clock + Data). Dafür ist eine UART NICHT zweckmäßig. Meist gibt es Pins, die leicht als SPI-Interface zu verwenden sind. Einzelne GPIO-Pins als Chip-Selekt bzw. als Latch-Sigbnal zu verwenden bleibt dir dabei völlig frei gestellt. Gruß Öletronika
:
Bearbeitet durch User
U. M. schrieb: > MIDI und RS232 sind asynchrone Schnittstellen. Für diese verwendet man > möglichst eine UART. > > Schieberegister haben eine synchrone Schnittstelle (Clock + Data). Du hast völlig Recht. Ich war mir irgendwie sicher, dass sich die I/O Pins von SPI und UART überschneiden. Dafür muss ich mich entschuldigen, hätte ich mal gleich ins Datenblatt geschaut...
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.