-         

Ergebnis 1 bis 10 von 10

Thema: Atmega8 und MAX485 an PC

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345

    Atmega8 und MAX485 an PC

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo zusammen,

    ich hätte mal wieder eine Frage, und zwar habe ich einen Atmega8 mit
    einem Max485 verbunden und versuche nun diesen in ein Bus zu
    integrieren. Nun meine Frage: Die Anschlüsse des Max485 sind nun A und
    B, also Halbduplex. Am PC habe ich RXD+, RXD- und TXD+, TXD- . Für
    Halbduplexbetrieb muss ich nun RXD+ mit TXD+ und RXD- mit TXD-
    verbinden. Aber welcher der beiden Anschlüsse am PC entspricht nun A und
    welcher B?

    Weiter habe ich nun noch einen Kanal für die Flussrichtung des MAX485,
    welcher vom µC kommt. Um zu senden oder empfangen. Welcher Zustand ist
    nun Senden bzw. Empfangen? Pin auf High oder Low?

    ich habe in Bascom die crystal des Atmega8 auf 4000000 eingestellt. Und
    die Baud auf 19200. Ist das so korrekt?
    Und soweit ich weiß "Config COM ..." wird auch nicht benötigt oder?

    Vielen Dank für euere Hilfe
    Klicke auf die Grafik für eine größere Ansicht

Name:	atmega.JPG
Hits:	25
Größe:	22,0 KB
ID:	19478

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Laut Datenblatt empfängt der Chip sobald Pin 2 auf Low ist und wenn Pin 3 High ist wird der Sender aktiviert. Aber an deiner Stelle würde ich Pin 2 und 3 mit einem Pull-down Widerstand versehen und dann an den Controller anschließen.
    Wenn du nur einen COM Port benutzt brauchst du kein Config COM zu schreiben.
    Der Invertierte Ausgang ist der invertierende Empfänger oder der invertierende Sender, also in deinem Fall der Pin 7 und Pin 6 ist dann der nichtinvertierende Empfänger oder Sender. Und was meinst du mit RXD+ mit TXD+? Du hast nur den einen Baustein und da verbindest du 6 und 7 der beiden Chips. Hast du überhaupt einen fertigen RS485 Empfänger am PC? Weil sonst musst du das RS485 in RS232 umwandeln damit du über RS485 mit deinem Mega kommunizieren kannst.
    Geändert von Kampi (29.07.2011 um 23:17 Uhr)

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345
    Hi, welche größe würdest du wählen für denn Pulldownwiderstand? Du meinst den Widerstand am MAX485 für die Pins 2+3? Es langt doch wenn ich beide Pins gleichtzeitig mit einem Widerstand auf Masse ziehe oder?

    Also am PC ist eine RS422 Schnittstelle mit TXD+ und RXD+ sowie TXD+ und RXD- das heißt es wäre theoretisch Vollduplexbetrieb (also Senden und Empfangen geichzeitig) möglich. RS485 ist allerdings Halbduplex (Senden oder Empfangen) und um aus der RS422 eine RS485 Schnittstelle zu machen muss ich die Klemmen RXD+/TXD+ und RXD-/TXD- zusammenfassen oder?

    Gruß

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Ja es reicht wenn du beide Pins zusammen mit einem Widerstand nach Masse ziehst. RE und WE sind ja jeweils bei unterschiedlichen Pegeln aktiv (einmal bei Low und einmal bei High). Als Pull-up Widerstand kannst du 4,7k-10k nehmen. Das ist eigentlich die gängige Größenordnung dafür. Den Pull-up Widerstand nimmst du einfach damit du einen deffinierten Zustand hast, wenn der Controller mal aus ist. Weil du weißt ja nicht wie der Controllerpin dann geschaltet ist und je nachdem kann sich der MAX dann anders verhalten als du denkst.
    Ob das mit dem Klemmen verbinden so geht kann ich dir leider aus dem Stehgreif nicht sagen, da ich selber noch recht neu auf dem Gebiet bin.

    Edit:
    Hab mir das mal auf der Seite hier angeschaut:
    http://www.pci-card.com/rs422_rs485.html

    Und es müsste gehen wenn du Rx- und Tx- sowie Tx+ und Rx+ zusammen legst. Aus Rx- und Tx- müsste sich dann eine Leitung A(-) und aus Rx+ und Tx+ müsste sich dann eine Leitung B(+) ergeben.
    Geändert von Kampi (30.07.2011 um 11:58 Uhr)

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345
    Hi, müsste das nicht eigentlich ein Pulldownwiderstand sein wenn ich ihn gegen Masse ziehe?

    Also die Seite hatte ich mir auch angeschaut. Aber wenn ich mir das Datenblatt des MAX485 Ansehe dann ist da A+ und B- ???
    aber normaal müssen die Beiden Pegel doch gleich sein wenn ich Sie verbinde!? Das heißt A- vom PC muss auf B- vom µC und A+ vom PC auf B+ vom µC.

    Aber normal wäre es ja A auf A und B auf B oder?

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Zitat Zitat von demmy Beitrag anzeigen
    Hi, müsste das nicht eigentlich ein Pulldownwiderstand sein wenn ich ihn gegen Masse ziehe??
    Stimmt....sorry verschrieben
    Und ja du verbindest normal A mit A und B mit B. Weil A ist das invertierte Signal und B ist das nicht invertierte Signal.
    Und was meinst du mit Pegel gleich sein? Das ist ein differenzieller Bus....d.h. was 1 und was 0 ist hängt davon ab welche der beiden Leitungen High oder Low sind.

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345
    Ja, das is schon klar, nur auf der seite die du vorhin genannt hast, ist A z.b - also low und B + also high. Im Datenblatt des MAX485 is es aber genau herum gedreht, A = + als high und B = - also low. Normal muss man doch beim RS485 alle A miteinernder und alle B miteinander verbinden. Dann sind alle auf dem gleichen Level, alle A low und alle B high. Aber laut dem Datenblatt wäre das dann anders. Am Pc wäre A high und am MAX485 A low, das darf doch nicht sein oder? So meinte ich das. Ich hoffe ich hab es verständlich rüber gebracht?

  8. #8
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Musst du mal ausprobieren wie du das an den PC anschließen musst ^.^
    Ich hab auch erst 2-3x was mit RS485 gemacht und hab da auch nicht wirklich drauf geachtet ob man nun A mit A oder A mit B verbinden muss. Aber ich glaube du musst die drehen......aber wie gesagt probier es aus. Das ist wie RS232 wenn es verdreht ist sendet der nichts bzw. empfängt nichts.

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345
    Ok ich werde es mal versuchen.

    Danke schon mal!

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345
    Hallo, ich bins nochmal.

    Also ich habe jetzt alles wie gesagt angeschlossen. Nun habe ich folgendes Problem, also ich scheine etwas zu empfangen, was aber scheinbar Murks ist. Und zwar versuche ich in 2 Byte die Zahl 300 zu senden. Was in Binärscheibweise ja 00000001 00101100 entspricht. Empfangen werden aber 2 Byte mit 00000000 10000000. Wie kann das sein? Bzw. woran kann das noch liegen? Ich habe bei beiden Teilnehmern 19200 Baud eingestellt. Ich habe zwischen Kanal A und B an beiden Enden einen 120 Ohm Widerstand angeschlossen. Obwohl die Leitungslänge nur ca. 16cm ist.

    Der Atmega 8 ist in Bascom Programmiert. Dort habe ich die Crystal auf 8000000 und die Baud auf 19200 eingestellt. Das müsste doch auch passen oder? Was mache ich Falsch?

    gruß

Ähnliche Themen

  1. PWM mit Atmega8
    Von 206racer im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 12.03.2008, 00:38
  2. Antworten: 23
    Letzter Beitrag: 15.12.2007, 21:36
  3. Unterschied ATmega8-16PC und ATmega8-16AC
    Von Christian 25 im Forum AVR Hardwarethemen
    Antworten: 17
    Letzter Beitrag: 01.10.2006, 21:09
  4. Max485 / Bascom Grundlagen
    Von Elkokiller07 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 12.09.2006, 11:55
  5. RS485 (MAX485) & Widerstände
    Von Spritey im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 10.03.2005, 12:00

Stichworte

Berechtigungen

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