Forum: Mikrocontroller und Digitale Elektronik CAN und I2C Projektumsetzung


von Sawyer M. (sawyer_ma)


Lesenswert?

Hallo,

da ich mich gerade in meinem Praxissemester befinde und mein Projekt 
umsetzten muss, benötige ich ein klein wenig Hilfe.

Ich muss ein Bussystem für eine Anschauungswand Planen und umsetzten. 
Geplant sind zwei Bussysteme CAN und I2C. Das Projekt dient zum Erlernen 
der Bussysteme und hat keine tiefere Bedeutung ausser dass es am Ende 
einwandfrei laufen sollte.

Es wird 25 Piggybacks geben welche untereinander auf einer Hauptplatine 
miteinander verbunden sind. Später sollte das System im Multi-Master 
System laufen oder im Master Slave Modus.
Ich hoffe ich habe das Projekt allgemeinverständlich beschrieben.

Benutzt wird der:
Mikrocontroller: C8051F580 der auf jedem Piggyback ist. Somit 25 mal.
Speisung beträgt 3,3 V

So nun die Fragen zu CAN:

Betreiben will ich Full CAN damit ich die 1 MBit/s schaffe. Somit 
brauche ich drei Leitungen: TX, RX und Ground. Busabschlusswiderstände 
mit 120 ohm. Nur bin ich mir nicht sicher ob ich vor jedem 
Mikrocontroller (somit 25 Stück auf jedem Piggyback) 1 Transceiver 
benötige? Ist dieser nicht integriert im Mikrocontroller?

Wie berechne ich die Pull-up Widerstände für dieses System?


So nun die Fragen zu I2C:

Hierbei handelt es sich ja auch um eine 2-Draht Kommunikation. 
SDL(Datenleitung,) SCL (Taktleitung), GND (Ground). Jedoch gibt es hier 
die Einschränkung der 400pF gegenüber Ground. Wie kann ich dies 
berechnen um vorher schon sicherzustellen das ich unter diesem Wert 
bleibe bei 25 Teilnehmer und einer Datenleitungslänge von fast 3 Meter 
an der längsten Stelle? Aufgrund der Datenleitungslänger und Hoffnung 
auf Maximale Geschwindigkeit dachte ich baue in der Hälfte der Leitung 
ein PCA9614 (differenziellen I2C-Buffer) ein, um die Störsicherheit zu 
erhöhen und ein PCA9601DP um die 400 pF auf 4000pF zu erhöhen und genug 
Luft zu bekommen das ich meine Flanken noch erkenne.

Habe ich irgendwas wichtiges vergessen? Ist das überhaupt gut so? Habe 
leider kein rechten unterstützung hier, deshalb hoffe ich auf eure 
mithilfe :)


Vielen Dank schon mal im Vorfeld an euch alle.

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Stephan Maier schrieb:
> Nur bin ich mir nicht sicher ob ich vor jedem
> Mikrocontroller (somit 25 Stück auf jedem Piggyback) 1 Transceiver
> benötige?
Ja.
> Ist dieser nicht integriert im Mikrocontroller?
Nicht im C8051F580.

Du könntest zB einen LPC1100 verwenden, der hat nicht nur den 
CAN-Controller, sondern auch den CAN-Transceiver integriert. Außerdem 
basiert dieser nicht auf der antiquierten 8051-Architektur sondern ist 
ein moderner Cortex-M0.

Stephan Maier schrieb:
> Wie berechne ich die Pull-up Widerstände für dieses System?
Was für PullUps?

von Chris R. (hownottobeseen)


Lesenswert?

Stephan Maier schrieb:
> TX, RX und Ground. Busabschlusswiderstände.
> Nur bin ich mir nicht sicher ob ich vor jedem Mikrocontroller (somit 25
> Stück auf jedem Piggyback) 1 Transceiver benötige?

Auf dem CAN-Bus heißt es CANH und CANL, Rx und Tx hast du nur zwischen 
deinem Controller und dem Transceiver. Das heißt natürlich auch, dass du 
für jeden Controller einen Transceiver brauchst.
Abschlusswiderstände brauchst du jeweils einen an den beiden Enden der 
Busleitung. Idealerweise macht man den Widerstand in 
Experimentieraufbauten schaltbar oder als Zwischenstecker.

Hinsichtlich Konnektoren gibt es übrigens eine Standardbelegung auf 
SubD-9-Steckern.

Noch ein wichtiger und von neueinsteigern oft nicht beachteter Hinweis: 
Bei CAN brauchst du zur Kommunikation unbedingt zwei Teilnehmer! Wenn 
ein Teilnehmer eine Nachricht nicht versenden kann (weil niemand auf das 
Acknowledge reagiert), macht er einen Resend bis er sich selbst wegen 
Fehlerrate vom Bus nimmt.

Stephan Maier schrieb:
> SDL(Datenleitung,) SCL (Taktleitung), GND (Ground). Jedoch gibt es hier
> die Einschränkung der 400pF gegenüber Ground. Wie kann ich dies
> berechnen um vorher schon sicherzustellen das ich unter diesem Wert
> bleibe bei 25 Teilnehmer und einer Datenleitungslänge von fast 3 Meter
> an der längsten Stelle?

Offiziell heißt die Datenleitung SDA, aber das nur am Rande ;)

Die Kapazität vom Bus hängt einerseits von den Leitungen (Formeln siehe 
Grundstudium der Elektrotechnik ;) ), andererseits aber auch von deinen 
Busteilnehmern bzw. deren Rreiberbausteinen ab. Die Kapazität ist 
wichtig im Zusammenhang mit der Datenrate und den Pull-ups, die du 
verwendest  (bzw. verwenden musst, damit die Kommunikation klappt). 
Bitte behalte im Hinterkopf, dass I²C für Distanzen unter einem Meter 
designed wurde aber gleichzeitig durchaus gutmütig sein kann. Hier im 
Forum haben wohl schon ein paar einen Hausbus damit realisiert.

HTH

Chris

von Sawyer M. (sawyer_ma)


Lesenswert?

Oh entschuldigung das mit den Pul-up`s sollte eigentlich bei I2C stehen. 
Da kam ich wohl durcheinander beim Tippen.

Das mit dem Cortex-M0 hört sich toll an, ich werde gleich mal 
recherchieren und dann hoffen das ich die zustimmung bekomme. Sonst muss 
ich halt den umständlichen Weg wählen.

von Bronco (Gast)


Lesenswert?

Stephan Maier schrieb:
> So nun die Fragen zu I2C:

Beim I2C wird eine logische 0 niederohmig getrieben (d.h. ein Transistor 
verbindet niederohmig mit Masse) und eine logische 1 hochohmig gegen VCC 
gezogen (über den Pullup-Widerstand).

Das führt dazu, dass die fallenden Flanke recht steil sind, aber die 
steigenden Flanken verschliffen sein können. Grund dafür ist der 
R-C-Tiefpass aus Pullup-Widerstand und Leitungskapazität.

Verschliffene Flanken sind aber nur dann ein Problem, wenn die Taktrate 
des I2C-Bus so hoch ist, dass der logische High-Pegel nicht genug Zeit 
hat, auf einen ausreichend hohen Spannungspegel anzusteigen.

Dann hilft:
1. Leitungskapazität verkleinern (geht oft nicht)
2. Pullup verkleinern (Minimum siehe Datenblätter der ICs)
3. Taktrate senken

von Bronco (Gast)


Lesenswert?

Stephan Maier schrieb:
> Oh entschuldigung das mit den Pul-up`s sollte eigentlich bei I2C stehen.
> Da kam ich wohl durcheinander beim Tippen.

Nicht rechnen, messen ;)
Fang mit 10k an und schau Dir die steigende Flanken mit dem Oszi an, 
wenn alle ICs drannhängen.

von Sawyer M. (sawyer_ma)


Lesenswert?

Wow vielen vielen Dank für die vielen und scchnellen Antworten :) ich 
hätte mein Praxissemester bei euch machen sollen ;)


Dr. Sommer schrieb:
> Du könntest zB einen LPC1100 verwenden, der hat nicht nur den
> CAN-Controller, sondern auch den CAN-Transceiver integriert. Außerdem
> basiert dieser nicht auf der antiquierten 8051-Architektur sondern ist
> ein moderner Cortex-M0.

Also Ich dürfte einen Cortex nehmen aber er muss von Silicon Labs kommen 
und die haben keinen mit CAN :( Somit muss ich halt 25 Transceiver 
kaufen. Gibt es da unetrschiedlich gute, ich habe nämlich gesehen das es 
ziemlich viele Varianten von Transceiver gibt?!


Chris R. schrieb:
> Abschlusswiderstände brauchst du jeweils einen an den beiden Enden der
> Busleitung. Idealerweise macht man den Widerstand in
> Experimentieraufbauten schaltbar oder als Zwischenstecker.

Ist nicht für Full CAN immer 120 Ohm?


Chris R. schrieb:
> Die Kapazität vom Bus hängt einerseits von den Leitungen (Formeln siehe
> Grundstudium der Elektrotechnik ;) ),

Habe mein Elektrotechnik 3 Skript schon rausgekramt :D




Also meine Produktliste:

Für I2C benötige ich:

1x PCA9601DP
1x PCA9614
SDA(Datenleitung), SCL (Taktleitung), GND (Ground)
Pull ups


Für CAN benötige ich:

25x Transceiver (die Frage ist nur welcher von den vielen)
CANH, CANL und Ground
Busabschlusswiderstände mit 120 ohm


Vielen Dank euch allen ihr seit mir eine grosse Hilfe.

von Felix L. (flex)


Lesenswert?

Stephan Maier schrieb:
> Also Ich dürfte einen Cortex nehmen aber er muss von Silicon Labs kommen
> und die haben keinen mit CAN :( Somit muss ich halt 25 Transceiver
> kaufen. Gibt es da unetrschiedlich gute, ich habe nämlich gesehen das es
> ziemlich viele Varianten von Transceiver gibt?!

Die EFM32 Gecko Mikrocontroller von Silabs haben doch CAN, oder nicht?

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Felix L. schrieb:
> Stephan Maier schrieb:
>> Also Ich dürfte einen Cortex nehmen aber er muss von Silicon Labs kommen
>> und die haben keinen mit CAN :( Somit muss ich halt 25 Transceiver
>> kaufen. Gibt es da unetrschiedlich gute, ich habe nämlich gesehen das es
>> ziemlich viele Varianten von Transceiver gibt?!
>
> Die EFM32 Gecko Mikrocontroller von Silabs haben doch CAN, oder nicht?

Hmmm ich weis nicht ob ich blind oder einfach zu unerfahren bin :/ aber 
da steht doch nur USART und I2C.

von Felix L. (flex)


Angehängte Dateien:

Lesenswert?

Stephan Maier schrieb:
> Hmmm ich weis nicht ob ich blind oder einfach zu unerfahren bin :/ aber
> da steht doch nur USART und I2C.

Du hast recht, ich dachte das der Wonder Gecko CAN hat. Dann musst du es 
doch so machen wie oben beschrieben.

von Thomas F. (igel)


Lesenswert?

Stephan Maier schrieb:
> 25x Transceiver (die Frage ist nur welcher von den vielen)

Warum nicht die, die jeder verwendet:

Bei Controllern mit 5V Versorgungsspannung:
PCA82C250 / 251 oder MCP2551

Bei 3,3V Controllerspannung:
SN65HVD230

Und schau dir bei 1MBit die Schaltungsempfehlungen der Tranceiver an:
Beitrag "Re: Bus über 2-Draht-Leitung"

von Nicole F. (Gast)


Lesenswert?

Kurze ot Frage in die Runde. Wenn ihr den Mcp2515 mit einem 16Mhz 
taktet, tut ihr das beim mit spi beschaltetem Mikrocontroller auch?

von Nicole F. (Gast)


Lesenswert?

*Quarz

von Thomas F. (igel)


Lesenswert?

Nicole F. schrieb:
> Kurze ot Frage in die Runde. Wenn ihr den Mcp2515 mit einem 16Mhz
> taktet, tut ihr das beim mit spi beschaltetem Mikrocontroller auch?

Wenn ich am Atmega den UART mitbenutze nehme ich 14,7456 oder 11,0592 
MHz.

von Sawyer M. (sawyer_ma)


Lesenswert?

Hm ich hab grad noch eine Frage, zwecks I2C und CAN. Ich habe nachher 
meine Mikrocontroller (c8051f580) die für das Bussystem verantwortlich 
sind. Wenn ich nun noch zusätzlich einen weiteren Mikrocontroller 
verbaue auf dem Piggyback der für irgendeine Aufgabe zuständig ist (was 
auch immer), wie kommunizieren die zwei miteinander so dass meine Daten 
ins Bussystem kommen oder abgefragt werden können? Muss ich da dann 
wieder ein Bus aufbauen (SPI, UART)  zwischen den zwei Mikrocontrollern 
oder geht das auch einfach.

von Thomas F. (igel)


Lesenswert?

Verstehe deine Frage nicht ganz:

Du hast einen weiteren Controller, der selber nicht am Bus - egal ob CAN 
oder I2C - hängt, aber trotzdem erreichbar sein soll?

Gerade für die Kommunikation von Controllern auf einer Platine 
untereinander gibt es den schnellen SPI. Du kannst dir aber auch einen 
eigenen Bus ausdenken.

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Habe mal ein Bild dazu gezeichnet. Meine Frage ist:

Dadurch das ich ja ein Mikrocontroller verwende als CAN Controller habe 
ich ja nur die vom Prozessor gegebenen Funktionen. Falls ich mal im 
Spezialfall mehr will und noch ein Cortex auf dem Piggyback dazu 
schalten (roter Pfeil) möchte aufgrund von Leistung oder weiteren 
Funktionen, wie mache ich das dann?   Muss ich dafür extra wieder ein 
Bussystem aufbauen (SPI I2C.....) oder gibt es da andere Möglichkeiten.

von Thomas F. (igel)


Lesenswert?

Stephan Maier schrieb:
> Dadurch das ich ja ein Mikrocontroller verwende als CAN Controller habe
> ich ja nur die vom Prozessor gegebenen Funktionen.

Der von dir gewählte 8051 ist ja nicht der kleinste. Der kann schon 
einiges.
Daher ist nicht klar, was du noch mit einem Cortex zusätzlich anfangen 
willst?

Aber wenn du meinst: Natürlich braucht es wieder irgendeine Verbindung 
der beiden. Da es nur zwei Teilnehmer sind, reicht auch eine 
Punkt-zu-Punkt-Verbindung wie RS232. Hängt halt davon ab, wieviel Daten 
du hin- und herschaufeln willst.

von Karl H. (kbuchegg)


Lesenswert?

Grundsätzlich möchte ich aber einwenden, dass du eben nach Möglichkeit 
NICHT einen weiteren Prozessor haben willst.
Es ist ein Irrtum zu glauben, dass sich die Dinge immer einfacher 
gestalten, je mehr Prozessoren im Spiel sind. Denn mit einem 
zusätzlichen Prozessor handelst du dir automatisch eine weitere 
Kommunikationsschicht ein, der dein ursprünglich vorhandener Prozessor 
dann ohnehin noch zusätzlich wuppen muss.

> Wenn ich nun noch zusätzlich einen weiteren Mikrocontroller verbaue
> auf dem Piggyback der für irgendeine Aufgabe zuständig ist
> (was auch immer)

Wenn er für eine weitere Aufgabe zuständig ist, warum soll der dann 
nicht ein eigenes Piggyback für genau diese eine Aufgabe bekommen und er 
ist CAN-Busteilnehmer wie alle anderen auch?

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Ja das mit dem zusätzlichen Controller war nur eine theoretische Frage 
welche mich interessiert hat wie man es lösen würde.


So jetzt hoffe ich das ich nicht alles falsch gemacht habe. Ich habe mal 
ein kleines Schema gezeichnet. Könnt Ihr mir sagen ob das so 
funktioniert wie ich das gelöst habe?

Eine weitere Frage ist, wofür ist das VRef beim CAN-Transceiver. Das 
wurde mir aus dem Datenblatt nicht ganz ersichtlich.


Vielen vielen Dank nochmals für eure Unterstützung :)

von Sawyer M. (sawyer_ma)


Lesenswert?

Ich habe noch eine weitere Frage. Ich würde gerne die Datenleitung von 
CAN und I2C anzapfen um die Übertragung mit einer LED sichtbar zu 
machen. Leider ist es mit nur aus Konstruktionsgründen möglich CAN_H 
oder CAN_L zu überprüfen.

Nun meine Idee, ich benutze einen Differenzenverstärker und ermittle 
damit die Differenz von CAN_H und CAN_L. Mittels eines Schmitttrigger 
prüfe ich das Differenzensignal auf über 0-1,5 V = LED aus und 1,5-3,5 
Volt = LED an.
Wolle es erst mit einem FET machen aber die sind mir zu ungenau was die 
Schwellenspannung angeht von 1,5V.

Bei I2C ist es mir noch nicht so einleuchtend wie ich es machen soll. 
Villt mit einem Inverter an der SCL Leitung.


Vielen Dank für eure Hilfe :)

: Bearbeitet durch User
von Steffen R. (steffen_rose)


Lesenswert?

Wenn Du Aufwand betreiben willst, kannst Du einen zweiten Transceiver 
dran hängen und hättest CANRX wieder.

von Thomas F. (igel)


Lesenswert?

Hast du nicht die Pull-up Widerstände links und rechts vom Bustreiber 
vertauscht?
Und der 33R ist wohl eher ein 330R. Dann stimmts auch mit dem Datenblatt 
überein.
Einen Abblockkondensator dazu kann nicht schaden.


VRef am Transceiver kannst du offen lassen.

Zum 8051 kann ich dir nichts sagen.

von Thomas F. (igel)


Lesenswert?

Stephan Maier schrieb:
> Ich würde gerne die Datenleitung von
> CAN und I2C anzapfen um die Übertragung mit einer LED sichtbar zu
> machen.

Oben hast du was von 1MBit auf dem CAN geschrieben. Nur mit einer LED 
wirst du da nichts sehen, die Botschaften sind einfach zu kurz.

Schliesse lieber eine oder zwei LED an den 8051 an und zeige Senden und 
Empfangen per Software an. Den Bus musst du schon mit einem DSO ansehen 
um was zu sehen.

Mach doch mal den Schaltplan fertig.

von  Gast (Gast)


Lesenswert?

Hm,


ich würde hier noch einiges vorsehen.

- Quarz
- Abblockkondensatoren an VDDA
- Das C2 Debuginterface (Pullup nicht vergessen)
- I2C würde ich über die Crossbar eher auf Port 1 verschieben, evtl. 
braucht
  man die Externe Refernzspannung doch einmal
- Alle nichtbelegten Ports zumindestens auf Stecker, damit man diese 
später
  doch mal verwenden kann
- Der CAN Transceiver freut sich auch über Abblockkondensatoren
- Jumper für CAN Terminierung
- HEX-Coderschalter für Node-ID
- ein paar Debug LEDs


Such dir mal die Doku des Entwicklungskites für diesen Typ, da ist 
normalerweise auch ein Schaltplan mit enthalten.

Evtl. solltest du dir auch den F582 überlegen, der hat auch alles drauf, 
das QFP-32 Gehäuse hat aber einen größeren Pitch und lässt sich schöner 
mit der Hand löten.


mfg
Gast

von Sawyer M. (sawyer_ma)


Lesenswert?

 
Super vielen Dank für die zahlreichen Denkanstösse. Ich habe auch alles 
verstanden was ich noch am besten umsetzen sollte oder verbessern bis 
auf

Gast schrieb:
> - Jumper für CAN Terminierung
> - HEX-Coderschalter für Node-ID

von Thomas F. (igel)


Lesenswert?

Stephan Maier schrieb:
>> - Jumper für CAN Terminierung

Der CAN-Bus hat zwei Abschlusswiderstände, einen an jedem Ende.
Da du ja alle Platinen gleich gestalten willst, dürfen die in der Mitte 
angeordneten CAN-Teilnehmer keinen Widerstand haben. Nun kann man den 
beim Bestücken einfach weglassen oder aber einlöten und zusätzlich einen 
Jumper dazu um den dann still zu legen.


>> - HEX-Coderschalter für Node-ID

Im I2C-Bus hat jedes Gerät eine eigene Geräteadresse.
Die kannst du nun fest in die Software reinschreiben, dann braucht aber 
jede Platine eine eigene Software-Version. Oder der Controller fragt 
beim Einschalten einen Codierschalter ab und weiß so seine Adresse.

von Sawyer M. (sawyer_ma)


Lesenswert?

desweiteren habe ich noch eine Frage bezüglich zum JTAG oder C2. Woher 
finde ich Angaben oder genaue Daten wie ich ein JTAG oder C2 aufbaue. 
Ich finde leider nichts bis auf den Bericht in mikrocontroller.net

von Thomas F. (igel)


Lesenswert?

Willst du keine Knöpfe, Taster, LED, oder LCD-Anzeigen auf deinen 
Platinen vorsehen?

Auch wenn dann mal alle Controller miteinander kommunizieren können, 
steht Mensch davor und langweilt sich, da es keine Möglichkeit gibt mit 
dem Systen zu interagieren: Keine Knöppe drücken und die Reaktion darauf 
abwarten...

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Doch doch das kommt alles noch, jedoch wollte ich erst einmal das Schema
für die Grundschaltung (Bussystem, Controller, ...) aufbauen und
anschließend den Rest was auf die Piggyback Oberseite kommt hinzufügen.
Auf dem Bild kannst du mal Anfänge der Planung sehen was drauf kommt, 
nur die Stromversorgung wurde anders geregelt als anfänglich geplant.

: Bearbeitet durch User
von Thomas F. (igel)


Lesenswert?

Soll das Projekt innerhalb eines Praxissemesters in Hardware fertig 
werden oder nur durchgeplant?

Wenn du Hardware aufbauen und in Betrieb nehmen willst, bist du mit den 
Grundplatinen und deren Sotware schon gut beschäftigt.
Pass auf dass dir nicht die Zeit wegläuft.

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

So, ich habe jetzt mal alles so gut wie fertig gestellt. Ich hoffe es 
passt alles. Oben meintet Ihr ja ich solle es fertig einstellen damit 
man überhaupt eine Aussage machen kann zu meinem Schema.

In den Anlagen ist:

Speisung:
Dies dient nur zur überprüfung ob auch alle Speisungen vorhanden sind.

Reset:
Erklärt sich von selbst.

Piggyback:
In diesem Dokument sind alle wichtigen Bausteine für die 
Buskommunikation über I2C und deren Node-ID und CAN. Desweiteren noch 
eine Schnittstelle C2 sowie der Controller selbst.


Testpunkte habe ich noch nicht eingezeichnet, die kommen noch!

Es wäre toll wenn Ihr mir Kritik sowie bessere Lösungsvorschläge machen 
könntet. Man lernt bekanntlich am meisten aus Fehlern und guten Ideen 
anderer.

Vielen vielen Dank euch allen.

: Bearbeitet durch User
von Sawyer M. (sawyer_ma)


Lesenswert?

Erste eigene Nachbesserung: Node-ID Pull Down`s vergessen. Wenn Schalter 
nicht geschalten hängt mir der Eingang am Schieberegister in der Luft. 
Habe Pull Down`s angebracht.

von Thomas F. (igel)


Lesenswert?

Thomas Forster schrieb:
> Hast du nicht die Pull-up Widerstände links und rechts vom Bustreiber
> vertauscht?
> Und der 33R ist wohl eher ein 330R. Dann stimmts auch mit dem Datenblatt
> überein.

Willst du bei den Speisungs-LED bei jeder ca. 20mA verbraten?
5-10mA würden sicher auch reichen, einfach als Vorschlag.

von Sawyer M. (sawyer_ma)


Lesenswert?

Habe die Widerstände neu berechnet und treibe die LED`s nun mit 10mA. 
Danke für den Hinweis :)

Dem VDDA habe ich nachträglich nun auch noch Abblockkondensatoren 
spendiert.

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

ich habe ein weiteres Schema gezeichnet und bin mir diesmal sehr 
unsicher ob ich das so machen darf und kann.

Ich soll laut Aufgabenstellung den Bus auf Aktivität mit einer LED 
überprüfen. Meine Schaltung ist oben als Bild abgehangen.

CAN-BUS

Idee, ich ermittle die Differenz mittels einem Differenzenverstärker. 
Dabei ergeben sich Werte zwischen 0 und 3,5V. Anschliesend führe ich das 
Differenzensignal auf einen Schmitttrigger welcher eine Schaltschwelle 
von 1,5V hat. Unter 1,5 ist mein Bus inaktiv alles drüber aktiv.



I2C-BUS

Idee, ein ganz normaler invertierender Verstärker da Aktiv  auf Lowpegel 
ist und inaktiv auf Highpegel.


Ich hoffe man kann es so machen. Vielleicht habt ihr mir ja ein 
Denkanstoß zu dieser und zu meiner oben gefragten fertigen Schaltung. 
Vielen Dank euch allen.

von Thomas (kosmos)


Lesenswert?

was machst du eigentlich wenn auf der 3,3V Leitung 5V anliegen? Deine 
LED würde melden das alles o.k. ist.

von Sawyer M. (sawyer_ma)


Lesenswert?

Thomas O. schrieb:
> was machst du eigentlich wenn auf der 3,3V Leitung 5V anliegen? Deine
> LED würde melden das alles o.k. ist.

Ich verstehe leider nicht ganz wie du das meinst?

von Thomas F. (igel)


Angehängte Dateien:

Lesenswert?

Schau dir C3 und C4 in deinem Schaltplan nochmal an.

von Sawyer M. (sawyer_ma)


Lesenswert?

Thomas Forster schrieb:
> Schau dir C3 und C4 in deinem Schaltplan nochmal an.

Ohjemine, was hab ich den da für ein Sch... gemacht. Danke :)

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Aber denkt ihr das so alles Funktionieren würde wie ich es bis jetzt 
geplant habe?

Desweiteren hänge ich gerade an einer weiteren Aufgabe fest (das Projekt 
ist echt heftig merke ich so langsam :D ). Ich soll ein TFT Touch 
Display 7" auf ein Piggyback setzen auf das alle weiteren Piggybacks 
Zugriff bekommen können über den I2C-Bus oder CAN-Bus. Nun habe ich 
"nurnoch" 34 I/O`s frei. Die meisten Display`s haben I2C für das 
Capacitive Touch und 24 Bit (RGB) für das Display. Theoretisch würde das 
reichen für meine Zwecke. Jedoch frage ich mich ob das theoretisch auch 
praktisch umsetzbar ist. Das I2C würde ich halt da es schon vom anderen 
Bussystem benutzt wird selbst auf ausgewählte I/O`s Programmieren das 
sollte nicht das Problem darstellen.


Was meint Ihr??

: Bearbeitet durch User
von Thomas F. (igel)


Lesenswert?

Sawyer Ma schrieb:
> Ich soll ein TFT Touch
> Display 7" auf ein Piggyback setzen auf das alle weiteren Piggybacks
> Zugriff bekommen können über den I2C-Bus oder CAN-Bus.

Das ist ein Display ohne Controller. Du brauchst entweder einen 
Displaycontroller oder einen ARM mit eingebautem Display-Controller.

von Sawyer M. (sawyer_ma)


Lesenswert?

Thomas Forster schrieb:
> Sawyer Ma schrieb:
>> Ich soll ein TFT Touch
>> Display 7" auf ein Piggyback setzen auf das alle weiteren Piggybacks
>> Zugriff bekommen können über den I2C-Bus oder CAN-Bus.
>
> Das ist ein Display ohne Controller. Du brauchst entweder einen
> Displaycontroller oder einen ARM mit eingebautem Display-Controller.

Aber ich habe doch auf dem Piggyback ein c8051f580, würde der das nicht 
schaffen mit noch 34 freien I/o´s?

Haben die Displaycontroller einen Vorteil gegenüber meines uC 
(Geschwindigkeit, Handhabung)? Ich denke mir halt der Displaycontroller 
muss ja nachher auch wieder irgendwie mit meinem C8051 kommunizieren um 
an den Bus angebunden zu sein.

: Bearbeitet durch User
von Thomas F. (igel)


Angehängte Dateien:

Lesenswert?

Sawyer Ma schrieb:
>> Das ist ein Display ohne Controller. Du brauchst entweder einen
>> Displaycontroller oder einen ARM mit eingebautem Display-Controller.
>
> Aber ich habe doch auf dem Piggyback ein c8051f580, würde der das nicht
> schaffen mit noch 34 freien I/o´s?

Hm, also dir fehlt sowas wie eine Grafikkarte.
Das Display erwartet einen Datenstrom mit 40MHz, Datenblatt Seite 8 
oben.

Prinzipiell kann man sowas auch ohne Displaycontroller machen:
Beitrag "Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen"

Ich würde mich da aber nicht dranwagen, mein Respekt an Benedikt!

von Sawyer M. (sawyer_ma)


Angehängte Dateien:

Lesenswert?

Ok super danke jetzt hab ich es verstanden was du mir sagen wolltest. 
Also brauche ich Theoretisch so ein Board wie oben angehangen. Dieses 
Steuer ich dann über I2C oder sonstiges (kommt ja dann auf das jeweilige 
Board drauf an) an.

Kennt jemand zufällig noch ähnliche Boards mit TFT 7" Display mit Touch 
(am besten Capacitiv) und am liebsten günstig ;) .

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