Digitales Signal erzeugen und auswerten mit PIC

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 30 12 2024  23:51:39      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Digitales Signal erzeugen und auswerten mit PIC
Suche nach: pic (2056)

    







BID = 440237

Peo

Gesprächig



Beiträge: 181
Wohnort: Baden-W.
 

  


Hallo

Ich würde gerne mit einem PIC mehrere andere PICs ansteuern, ohne bei dem "Master-PIC" für jeden gesteuerten PIC einen PIN zu nutzen.

Am geschicktesten wäre dafür ja z. B. ein binäres Signal vom Master zu senden, dass dann die anderen nur auswerten müssen.

Als etwas "rustikale" Lösung habe ich mir gedacht, dass eine Leitung auf High geschaltet wird und die anderen PICs zählen, wie viele Impulse während dessen auf Leitung zwei gesendet werden. Sobald die Stuerleitung wieder Low ist, werten die PICs die Zahl aus und handeln entsprechend. Geht die Steuerleitung wieder auf High, geht es von vorne los.

So etwas kann ich problemlos programmieren. Aber ich finde, es ist weder elegant noch praktikabel, wenn man bis zu 20 PICs ansteuern will.

Wie kann ich es dann machen, dass ich die Botschaft binär verschlüssle und dann entschlüsseln kann.

mfg

Peo

BID = 440241

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

 

  

Wenn du "problemlos" programmieren kannst, dann benutze doch einfach I²C.

Ich bin grade ebenfalls an einer, allerdings bidirektionalen, Vernetzung mehrer µCs.

Allerdings bin ich AVR-Nutzer, und die AVRs, die ich programmiere unterstützen auch den sog. SLave-Modus: Ein Register wird mit einer Adresse geladen und sobald diese Adresse angesprochen wird, kann er sich die Daten vom Bus holen.
Nur eben so, dass jeder µC berechtig ist, an andere Daten zu senden.

Bei dir ist es noch einfacher, da du nur in eine Richtung Daten senden willst:

Jeder PIC bekommt eine Adresse, der Master sendet dann erst die Adresse und nach einem Acknoledgement (Bestätigung) eines Slaves kommen dann die Daten.

Sollte der PIC keinen Slave-Modus unterstützen, musst du I²C softwaremäßig implementieren.

Edit:

Es gingen auch noch viele andere Möglochekteiten, z.b. wie eine UART, SPI oder eine eigene serielle Schnittstelle mit Interruptleitung, Takt- und Datenleitung. Findige Leute nutzen die Interruptleitung gleich als Taktleitung, somit reduziert sich die Hardware auf 2 IO-Pins.

Du musst nur zusehen, dass der Takt nicht zu hoch ist, damit der andere PIC sich synchronisieren kann. Interruptleitung ergibt insofern Sinn, dass die Taktleitung nicht gepollt werden muss.
Dann geht es analog zum I²C-Bus weiter: Erst Adresse, dann Daten senden. Möglicherweise noch eine Checksumme (, die allerdings nur dann Sinn macht, wenn die Verbindung bidirektional ist, was wieder komplizierter wird.)

Kurz gesagt: sehr viele Wege führen nach Rom.

_________________


[ Diese Nachricht wurde geändert von: DonComi am  1 Jul 2007 17:30 ]

BID = 440372

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein

Aufgabenstellung klingt nach SPI - Bus: fixe Hardware (1 Master xxx-Slaves) Alle Slaves und der Master in einem Ring vernetzen, dann ist der Rest nur noch Software ...

BID = 440394

qutom

Gelegenheitsposter



Beiträge: 58
Wohnort: Marl

Zum vernetzen von Pics würde ich I2C, SPI oder RS232 nehmen, diese Schnittstellen haben viele Pics als Hardware schon on Chip.
Aber wie siehts mit der Stromversorgung aus? Wenn Du da die Stromversorgung per Bus auch noch nehmen willst, kommste da schnell auf viele Leitungen. Ich würde da den 1-Wire Bus nehmen, dann sinds nur 3 Leitungen.

BID = 440529

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Na, der I²C-Bus ist ein "Inter Integrated Circuit"-Bus. Der ist einfach gemacht worden, um verschiedene Periferie auf z.b. einem Board oder einem System zu vernetzen.

Stromversorgung sollte ja kein Problem darstellen, wenn alles in einem System ist, also die gleiche Versorgung hat.

Sollten die PICs aber von verschiedenen Geräten versorgt werden und ein Bus aus dem Gerät herausgeführt werden rate ich dringends zur galvanischen Trennung.

Aber das wird der Fragesteller besser wissen als wir.

Und nebenbei hatte ich UART, I²C und SPI bereits vorgeschlagen.

_________________

BID = 440688

Peo

Gesprächig



Beiträge: 181
Wohnort: Baden-W.

Hallo

Erst einmal Danke für die Tipps.
Da ich neu im Bereich kommunizierender Chips bin, sind mir die ganzen aufgeführten Protokolle unbekannt.

Meine (derzeitig geplante) Lösung sieht wie folgt aus:

2 Kanäle für die Kommunikation.

Kanal 1 ist CLOCK
Kanal 2 wird für die Daten genutzt.

Der Master sendet ein Clock Signal aus, auf das die anderen PICs reagieren und ein Programm aufrufen, mit dem Sie bei den folgenden sechs CLOCK Signalen (ich will 6 Bit senden) jeweils den PIN der Datenleitung testen. Nach jedem Test schieben Sie die Bits im Register eins nach links und addieren 0 oder 1 zum Register dazu.

Nachdem der 6. Zyklus durchlaufen ist. wertet jeder PIC den übertragenen Wert aus in dem er ihn mit einem gespeicherten Wert vergleicht und dann entsprechend handelt.

Die andere Frage ist die der galvanischen Trennung. Wie schnell sind denn Optokoppler? Ich kann entweder den Master vom den anderen PICs trennen (2 Optokoppler pro PIC) oder alle PICs mit der gleichen Stromversorgung antreiben und deren Ausgänge galvanisch trennen (4 Optokoppler je PIC).

mfg

Peo

[ Diese Nachricht wurde geändert von: Peo am  3 Jul 2007 15:16 ]

BID = 440700

cholertinu

Inventar



Beiträge: 3755
Wohnort: CH


Zitat :
Peo hat am  3 Jul 2007 15:15 geschrieben :

(4 Optokoppler je PIC).

Wie kommst du auf 4 bei zwei verwendeten Übertragungsleitungen (Clock+Data)?
Du arbeitest ja unidirektional.

BID = 440705

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein


Zitat :
Peo hat am  3 Jul 2007 15:15 geschrieben :

Hallo

Erst einmal Danke für die Tipps.
Da ich neu im Bereich kommunizierender Chips bin, sind mir die ganzen aufgeführten Protokolle unbekannt.


Diese Protokolle haben den Vorteil, dass sie von relativ viel Hardware "verstanden" wird.
Adressierung (welcher der angeschlossenen Slaves ist gemeint) und Kommandos (was soll der Slave denn tun) sind im protokoll schon festgelegt, wobei natürlich nicht jeder beliebige Slave auch jedes Kommando versteht.
Ebenso sollte es einen Slave nicht stören, wenn ein anderer ein Kommando bekommt.


Zitat :
Peo hat am  3 Jul 2007 15:15 geschrieben :


Die andere Frage ist die der galvanischen Trennung. Wie schnell sind denn Optokoppler? Ich kann entweder den Master vom den anderen PICs trennen (2 Optokoppler pro PIC) oder alle PICs mit der gleichen Stromversorgung antreiben und deren Ausgänge galvanisch trennen (4 Optokoppler je PIC).


Eine galv. Trennung brauchst Du für die Sende - und Empfangsrichtung pro Leitung.
Wenn möglich entkoppelt man die Empfänger, da es immer nur einen Sender, jedoch mehrere Empfänger geben kann.
Aufwändiger werden bidirektionale Signalleitungen (Datenleitungen)
Hier muss die Empfangsrichtung "stumm" geschaltet werden, wenn gesendet wird. Per default sollte diese Leitung aber immer abgehört werden. (Evtl. um einer Datenkollision vorzubeugen).

BID = 440823

Peo

Gesprächig



Beiträge: 181
Wohnort: Baden-W.

Hallo

Also schließe ich die Empfänger-Pics über Optokoppler an den Sender PIC an.

Brauche ich da nun pro Empfänger-PIC die Optokoppler oder reicht es, wenn ich die Ausgänge des Master-PIC an die Optokoppler anschließe und das Signal dann von dort an alle Sender-PIC verteile?

Wie schnell schaltet ein Optokoppler? Wenn das Signal zu schnell ist, würde ja sonst die Übertragung nicht funktionieren.


mfg
Peo

Nachtrag: die vier Optokoppler hätten den jeweiligen gesteuerten PIC von den angehängten Bauelementen getrennt.

BID = 440866

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein


Zitat :
Peo hat am  4 Jul 2007 07:25 geschrieben :

Also schließe ich die Empfänger-Pics über Optokoppler an den Sender PIC an.

Brauche ich da nun pro Empfänger-PIC die Optokoppler oder reicht es, wenn ich die Ausgänge des Master-PIC an die Optokoppler anschließe und das Signal dann von dort an alle Sender-PIC verteile?

Für alle PICs (Sender / Empfänger ist erstmal Nebensache), die auf gemeinsamen Potential sind (=gleiche Masse), benötigst Du keinen Optokoppler (wg. galv. Trennung).
Alle anderen musst Du mit Optokoppler anklemmen, sonst ist die Trennung nicht mehr gegeben.

Zitat :

Wie schnell schaltet ein Optokoppler? Wenn das Signal zu schnell ist, würde ja sonst die Übertragung nicht funktionieren.

Gibt's sicherlich in ausreichender Geschwindigkeit.
Früher hab' ich die bei HP gesucht - bin abert schon zu lange nicht mehr in der Richtung aktiv gewesen, um Dir einen aktuellen Tip zu geben, sorry!

BID = 440871

cholertinu

Inventar



Beiträge: 3755
Wohnort: CH


Zitat :
hajos118 hat am  4 Jul 2007 10:14 geschrieben :

Wie schnell schaltet ein Optokoppler? Wenn das Signal zu schnell ist, würde ja sonst die Übertragung nicht funktionieren.

Was ist für dich "schnell"?

Wir verwenden für die etwas schnellere Übertragung mit Optokopplern häufig den Sharp PC410:
http://www.datasheetcatalog.com/dat.....shtml
Oder für zwei Leitungen den Typ PC4D10, da sind gleich zwei drin.

Mit diesen Optokopplern kommst du locker bis zu einer Übertragungsrate von 1MBit/s hoch.

BID = 441334

Peo

Gesprächig



Beiträge: 181
Wohnort: Baden-W.

Hallo

Danke für die Tipps.

mfg

Peo


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag       heute wurden bisher 34 Beiträge verfasst
© x sparkkelsputz        Besucher : 182631460   Heute : 7550    Gestern : 7815    Online : 172        30.12.2024    23:51
6 Besucher in den letzten 60 Sekunden        alle 10.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0466129779816