- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 24

Thema: AT Mega 128 und P82b715 / P82b96 Probleme ??

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Die Frage wäre ob man das ganze evlt mit nem normalen TTL oder Cmos Baustein Puffern könnte ?
    Du könntest z.B. einen SN74HC32 zum Ausprobieren nehmen. Sind ODER-Gatter. Zwei Eingänge eines Gatters überbrücken. Dann folgt der Ausgangszustand, des Gatters, dem Eingangszustand.
    Oder Du legst einen Eingang eines ODER-Gatters auf 0V (LOW), und den anderen Eingang verbindest Du mit dem ATmega-Ausgang. Gibt dasselbe Ergebnis.

    Der SN74HC32 "Can Drive Up To 10 LSTTL Loads". Sollte also ausreichend sein. Ein ATmega sollte das aber auch schaffen. Daher wunder Dich nicht, falls das nichts ändert.


    MfG

  2. #2
    Benutzer Stammmitglied Avatar von modtronic
    Registriert seit
    14.05.2011
    Ort
    Hagen
    Alter
    48
    Beiträge
    68
    Zitat Zitat von Moppi Beitrag anzeigen
    Du könntest z.B. einen SN74HC32 zum Ausprobieren nehmen. Sind ODER-Gatter. Zwei Eingänge eines Gatters überbrücken. Dann folgt der Ausgangszustand, des Gatters, dem Eingangszustand.
    Oder Du legst einen Eingang eines ODER-Gatters auf 0V (LOW), und den anderen Eingang verbindest Du mit dem ATmega-Ausgang. Gibt dasselbe Ergebnis.

    Der SN74HC32 "Can Drive Up To 10 LSTTL Loads". Sollte also ausreichend sein. Ein ATmega sollte das aber auch schaffen. Daher wunder Dich nicht, falls das nichts ändert.


    MfG
    Nabend

    Das war mein erster Gedanke das es vermutlich auch nicht gehn wird.
    Hat den niemand sowas schonmal gebaut ?

    Frage ist, ob man das ganze noch mit den Pull Ups beeinflussen könnte, bzw ich frage mich was ist am MCP anders als an dem P82b715 ??

    Ich verwende 4,7K, vllt verkleinern, vergrössern ?

    Grüsse
    Pat

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Hallo!

    Die Pull-Ups beeinflussen den ATmega nicht. Nur die Datenübertragung von einem P82B715 zum anderen. Wenn die Übertragung von einem P82B715 zum andern also funktioniert (mit anderen ATmega-Modellen) müssen die Widerstände nicht geändert werden. Jedenfalls laut Datenblatt. Da steht auch ne Formel zur Berechnung drin.

    Stell doch mal bitte einen Schaltplan oder Flussdiagramm (mit Bezeichnung der ICs) hier ein, dass man erkennt, wie die Kommunikation läuft, das macht es etwas einfacher.

    Das Problem äussert sich, das sobald nur ein IC am BUs hängt dieser nicht mehr sauber arbeitet.
    Mir z.B. ist noch nicht klar, wie das genau aussieht, wenn "nur ein IC am BUs hängt".
    Ist für mich unlogisch, da Du doch immer zwei brauchst, also ein Paar?

    Ich kenne den MC23017 nur vom Sehen, habe aber keinen Plan, wie man den anschließt. Ich sehe aber was von ITB und ITA, was bestimmt etwas mit den Ports zu tun hat. Ich sehe auch noch RST, was vermutlich RESET bedeutet. Vielleicht hast Du einen Programmierfehler beim ATmega128? - Programmcode und Funktion prüfen.


    MfG
    Geändert von Moppi (09.12.2019 um 21:40 Uhr)

  4. #4
    Benutzer Stammmitglied Avatar von modtronic
    Registriert seit
    14.05.2011
    Ort
    Hagen
    Alter
    48
    Beiträge
    68
    Hallo

    Wenn ein MCP direkt am I2C Bus läuft, aber über den Busextender nicht, kann es ja kein Programmfehler sein.

    ich habe mir die Datenblätter jetzt auch nochmal angesehn und mir hat es gerade keine Ruhe gelassen.
    Ich habe die Pullups erst auf 20K erhöht, was dann bei den direkten MCP am Bus den gleichen Fehler zur Folge hat wie an den Dezentralen.
    Dann habe ich die Pullups auf 1,5K verringert und sie da....es läuft

    ich habe dann nochmal meine Oskar angeschlossen und das was sie ändert ist die Differenz zwischen Low und High.
    zwar unlogisch weil eigentlich keine Pullups nötig sind auf der Senderseite.
    Ich habe jetzt zwei MCPs auf der externen Platinen am laufen. Wenn es so geht lasse ich das ganze so

    So ganz logisch scheint es nciht, aber es erklärt mir nur, das der 128er AT Mega doch anders sein muss, vllt aufgrund der SMD Bauweise ?

    Wenn Interesse besteht stelle ich mal von dem ganzen Bilder ein ??

    Grüsse
    Patrick

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Die Pull-Up-Widerstände bestimmen den Spannungspegel, der an der Gegenstelle ankommt. Es handelt sich ja um einen Leitungstreiber. Normal werden da offene Kollektoren verwendet, deswegen der Widerstand gegen eine positive Spannung. Wenn Du den Widerstand verkleinerst, steigt die Spannung bei LOW-Pegel und bei HIGH-Pegel. Es ist schon sinnvoll, auszuprobieren, welche Widerstandswerte am besten funktionieren. Da spielt vor allem der Leitungswiderstand eine Rolle. Klemme mal die eine Seite einer Leitung an 5V an und messe am anderen Ende. Es kann ein nicht unerheblicher Spannungsabfall auftreten. Z.B. misst Du dann keine 5V mehr, sondern nur noch 4.8V oder 4.5V. Aber wir kennen die Leitungslängen hier nicht. Musst Du selber schauen, wie es sich damit verhält. Nimm Widerstandswerte, die für Deinen Zweck (Kabel und deren Länge) sicher funktionieren. Wenn es dann jetzt funktioniert, ist es ok so. Alles andere kannst Du nur mit Messen herausbekommen, wie Pegel, die der ATmega am Ausgang liefert und ob der Pegel Einfluss auf das Signal auf der Leitung hat.



    MfG

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Guten Morgen,

    was ist am MCP anders als an dem P82b715
    Ich dachte die ganze Zeit, Du setzt P82b715 ein.

    Dafür gibt es dieses Bild für die Beschaltung:
    Klicke auf die Grafik für eine größere Ansicht

Name:	82715min.jpg
Hits:	6
Größe:	35,3 KB
ID:	34554
    Da brauchst Du die beiden Pull-UPs an den Treiber-Ausgängen.





    MfG

    - - - Aktualisiert - - -


    Beim MCP23017 steht im Datenblatt:

    3.5.7 PULL-UP RESISTOR CONFIGURATION REGISTER

    The GPPU register controls the pull-up resistors for the port pins. If a bit is set and the corresponding pin is configured as an input, the corresponding port pin is internally pulled up with a 100 kOhm resistor.
    Der 100k-Pull-UP ist also offenbar nur zuschaltbar, wenn ein Port des MCP23017 als Input konfiguriert wird. Je nach Leitung (-länge) können 100k aber zu viel sein. So dass Du einen extra Pull-UP an der Leitung benötigst.

    Für den Fall, dass Du etwas nachrechnen willst:

    Für den P82b715 steht unter 9.2.2 Detailed Design Procedure genau, wie man die Pull-UPs berechnet, welche Auswirkungen dies auf das Signal hat, dass man bei mehreren Widerständen an einer Leitung die gegenseitige Beeinflussung berücksichtigen muss (Parallelschaltung), und dass vom Prinzip her nur ein Pull-UP an einer Leitung notwendig ist.
    Geändert von Moppi (10.12.2019 um 05:59 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Moppi Beitrag anzeigen
    Normal werden da offene Kollektoren verwendet, deswegen der Widerstand gegen eine positive Spannung.
    Der Open-Collector bzw. Open-Drain Ausgang gehört zum Konzept des I2C Busses. Sowohl SCL als auch SDA können von jedem Gerät am Bus angesteuert werden und das ist über OC Treiber gelöst. Die I2C Leitungen sind immer OC. Damit eine Leitung High werden kann, muß an jeder Leitung ein Pullup sein.
    Zitat Zitat von Moppi Beitrag anzeigen
    Dafür gibt es dieses Bild für die Beschaltung:
    [/COLOR]Klicke auf die Grafik für eine größere Ansicht

Name:	82715min.jpg
Hits:	6
Größe:	35,3 KB
ID:	34554
    Da brauchst Du die beiden Pull-UPs an den Treiber-Ausgängen.
    Dieses Bild ist missverständlich. Natürlich müssen sowohl links als auch rechts an SDA/SCL ebenfalls Pullups sein. Diese müssen nicht unbedingt sichtbar sein, es können auch interne Pullups z.B. in einem µC sein. Verhalten sich die verschiedenen Atmegas da gleich?

    Zitat Zitat von Moppi Beitrag anzeigen
    Der 100k-Pull-UP ist also offenbar nur zuschaltbar, wenn ein Port des MCP23017 als Input konfiguriert wird. Je nach Leitung (-länge) können 100k aber zu viel sein. So dass Du einen extra Pull-UP an der Leitung benötigst.
    Diese Pullups sind an den Portpins des MCP, nicht an den Datenleitungen. Wie soll es auch möglich sein, bei einem Slave Pullups am Bus einzuschalten, wenn der Bus wegen fehlender Pullups gar nicht geht.

    Die Größe der Pullups ist unkritisch.

    Zitat Zitat von modtronic Beitrag anzeigen
    Ich habe die Pullups erst auf 20K erhöht, was dann bei den direkten MCP am Bus den gleichen Fehler zur Folge hat wie an den Dezentralen.
    Dann habe ich die Pullups auf 1,5K verringert und sie da....es läuft
    Das darf so nicht sein, du hasst dort ein anderes Problem.

    Zitat Zitat von modtronic Beitrag anzeigen
    ich habe dann nochmal meine Oskar angeschlossen und das was sie ändert ist die Differenz zwischen Low und High.
    zwar unlogisch weil eigentlich keine Pullups nötig sind auf der Senderseite.
    Vielleicht ist es dieses Problem: selbstverständlich sind auf allen drei Segmenten des Busses Pullups nötig. Wenn es auf der µC Seite bisher ohne sichtbare Pullups lief, hast du möglicherweise in deinem Treiber interne Pullups eingeschaltet und das funktioniert beim 128 etwas anders.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  8. #8
    Benutzer Stammmitglied Avatar von modtronic
    Registriert seit
    14.05.2011
    Ort
    Hagen
    Alter
    48
    Beiträge
    68
    Mahlzeit

    Zum Verständnis.
    ich betriebe die MCP23017 nur als Outputs
    Von der Schaltung ist das ganze so aufgebaut

    AT-Mega 128 -> P82B715 -> P82b715 -> MCp23017
    Sender Empfänger

    Der Empfänger mit dem MCp23017 sitzt mit dem Spannungsregler auf einer Platine

    Als Kabel wird ein 4 poliges abgeschirmtes Kabel verwendet
    auf der Empfängerplatine ist ein 78s05 verbaut für die Versorgung der dez. Platine
    Der Schirm ist nur am Sender auf Masse gelegt

    Die Pull Ups auf der Treiberseite als LSCL und LSDA sind immer vorhanden gewesen. (330 Ohm)
    laut dem Datenblatt soll es angeblich nicht nötig sein, auf der Senderseite am I2C Bus (CPU)
    also scl und sda an der CPu diese einzubauen
    So läuft es allerdings auch bei zb dem Mega 16 Problemlos. Hier wird nur die Empfängerseite, also das zurückwandeln des Busses auf den I2C mit Pull Ups versehn, die Senderseite hat die 330 Ohm.

    Am At-mega 128 habe ich nun als Pull Ups des I2C Busen 1,5K genommen
    da läuft es. Ohne geht es auch nicht.

    Ich habe nun auf der Dezentralen externe Platine die Pull Ups auf 2,2K (i2c) geändert.
    so läuft alles stabil

    das der Mega 128 irgendwie anders sein muss, zeigt schon die Hardwaretechnische Sache
    das ich die Pullups anpassen mussn bzw das erprobte und Funktionierende am Mega 16, 32 und 8 am Mega 129 nicht funktioniert.
    Kabellänge ist ca 4m, das ganze drei mal in die Gleiche Richtung verlegt, daran kann es als nicht liegen.

    Wenn es so läuft, lasse ich das laufen, weil ich habe mich jetzt fast 1 Woche damit befasst.

    Grüsse
    Patrick

Ähnliche Themen

  1. Case Probleme mit Mega 16
    Von MasterMX im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 06.01.2010, 08:41
  2. Probleme mit Hardware Twi an Mega 16
    Von dreadbrain im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 07.01.2007, 21:26
  3. Probleme mit Lcd und Mega 16
    Von dreadbrain im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 10.04.2006, 16:11
  4. Probleme mit Mega 8 und USART
    Von Panzer im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 16.12.2005, 15:35
  5. Probleme mit Parity bei Mega 162
    Von Simon79 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 17.05.2005, 07:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen