- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Mega32 und I²C

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2006
    Ort
    Barsinghausen
    Alter
    36
    Beiträge
    23

    Mega32 und I²C

    Anzeige

    E-Bike
    Hallo,
    ich möchte jetzt so langsam, nachdem ich mir ein mini-Mega32 Board gebastelt hab, was auch super läuft, auf den I²C Bus gehen.
    Ich wollte gerne dann einen Temperatur-Fühler an den I²C anschliessen.
    Ich dachte da so an denn DS1621. Der hat ja die Pinns SDA & SCL. Die müssten doch dann an die entsprechenden Pinns am Mega32 also PortC.0 & PortC.1? GND und VDD sind klar. A0-A2 sind dann für die Adressierung zuständig? Also muss ich den entweder auf 0V oder +5V legen mit Widerständen? Und wenn ich jetzt einen weiteren Temperatur fühler anschliessen möchte wie mache ich das dann? auch an PortC.0 & PortC.1 halt nur mit einer anderen Belegung der A0-A2 am Temperaturfühler? Also kann ich doch dann z.B beim ersten Fühler A0=0;A1=0;A2=0; beim zweiten dann A0=0;A1=0;A2=1; oder? Und wie läuft das dann wenn ich andere x-beliebige I²C's anschliessen möchte? Kann ich das dann auch so mit der Adressierung machen?
    Und kann ich die SDA & SCL Ports am Mega32 auf z.B auf PortA.0 & PortA.1 legen, in BASCOM? Geght das mit Config SDA = PortA.0?
    Ich weiss Fragen über Fragen. Aber ich hoffe dass ihr mir helfen könnt.
    Und Danke jetzt schon einmal.


    MfG
    Nico

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    Also eigentlich ist das I2C einfach wenn man's mal kapiert hat.

    Wichtig und erster Stolperstein ist erst mal das die Datenleitungen SCL und SDA mit jeweils einem 10k Widerstand als Pullup nach VCC gelegt werden. Sonst kannst Du suchen bis Du schwarz wirst.

    Normalerweise sind die Adressleitungen auch mit einem 10k Pullup erst mal auf HI unnd werden dann z.B. mit einem Jumper oder DIP-Switch auf Masse geschaltet (der 10k WIderstand verhindert einen Kurzschluss der VCC nach Masse)

    Die Adressierung welche man einstellt ist meist eine von zweien, die zweite ist für lesen oder Schreiben verantworltich.

    Welche was ist leis bitte im Datenblatt nach.

    Ich hab mal was mit dem PCF8574 gemacht,
    ist ähnlich schau Dir die Anleitung einfach mal an.
    https://www.roboternetz.de/phpBB2/ze...rag.php?t=5862

    Gehe erst mal ganz locker an die Sache ran,
    Wenn Du nicht gerade VCC und GND Vertauscht, kannst Du nicht viel Falsch machen. Komplexere Bausteine sind natürlich mit Vorsicht zu behandeln (z.B. TMC222 Schrittmotortreiber).

    Das Datenblatt sollte man auf jeden Fall zumindest überfliegen, wenn das schon zu verworren und mit speziellen Komandos beschrieben ist, sollte man etwas genauer lesen.



    Es können mehrererererere I2C an die gleiche Leitung angeschaltet werden, wichtig ist nur dass jedes IC seine eigene, eindeutige Adresse hat.
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2006
    Ort
    Barsinghausen
    Alter
    36
    Beiträge
    23
    Hi,
    also so:
    Sorry für das schöne Bild made in Paint. Aber Heute hats irgendwie meinen HDD Wechsel-Rahmen zerbröselt. HDD is noch OK aber den IDE->USB Konverter hats irgendwie nen bissl verflüssigt . UNd auf der HDD is mein SChlatplan-Proggi.


    http://e-nicmar.de/grafik.jpg

    MfG
    Nico


    --------------------------------------------------------
    PS: Mal was zum grübeln (nicht zum Thema): http://e-nicmar.de/stoiber.mp3
    Frage: Was will er uns sagen?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    genau andersrum! So wie du es gezeichnet hast, würdest du die beiden Leitungen nach VCC kurzschließen.

    So ists richtig:
    Code:
                                 VCC
                                  +
                                  |
                                  |
                              '---o---
                              |      |
                              |      |
                             .-.    .-.
                             | |    | |
                             | |    | |
                             '-'    '-'
          .-------.           |      |
          |       |           |      --|                  .------.
          |       |           |        |                  |      |
          |       |--------------------|------------------|      |
          |       |                    |                  |      |
          |       |                  --|                  |      |
          |       |                  |                    |      |
          |       |---------------------------------------|      |
          |       |                                       |      |
          |       |                                       |      |
          |       |                                       '------'
          '-------'
    (created by AACircuit v1.28.5 beta 02/06/05 www.tech-chat.de) <<praktisch für nen kleinen Schaltplan zwischendurch

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2006
    Ort
    Barsinghausen
    Alter
    36
    Beiträge
    23
    Huch. Oki.
    War wohl noch nen bissl geschockt wegen meiner externen HDD. So was hätte ich von einem knapp 40€ teuren externen HDD Gehäuse nicht erwartet....

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.04.2005
    Beiträge
    181
    Hallo,

    ja so sind die Pullups zu beschalten.
    An SCL SDA kannst Du nun parallel weitere Slaves anschliesen.
    Slave IC´s haben eine interne Basisadresse (steht im Datenblatt).
    Wenn der Slave IC noch Adressleitungen hat, dann kannst Du Ihn noch auf der Basisadresse verschieben. Damit kannst Du mehrere IC von der gleichen Sorte an einen I2C Bus hängen. Diese A0, A1,.. brauchen keine Widerstände. Einfach hart auf Masse oder Vcc legen.
    Andere IC´s, z.Bsp der PCF8583 haben eine andere Basisadresse. Damit solltest Du dann alle Adresskonflikte lösen können.
    Reicht das immer noch nicht, kannst Du einen (oder mehrere) I2C Busse aufbauen. Nachdem der AVR aber nur einen Hardware I2C hat, mußt Du die in Software bedienen.
    Ob das Bascom schon beinhaltet, weis ich nicht.
    Peter Fleury hat dazu Bibliotheken (in C oder wars in Asm).

    Bernhard

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2006
    Ort
    Barsinghausen
    Alter
    36
    Beiträge
    23
    Hi,
    also ich hab da jetzt mal ein Layout für erstellt. Ich hoffe es ist alles richtig, weil irgendwie steh ich heute etwas "neben" mir.....
    Ich möchte das ganze dann nämlich auf eine Platine ätzen. Was mit meinem mega-mini-Board dann demnächst auch passieren soll.
    Eigendlich wollt ich das ganz klassisch machen, schön mit WireWrap. Aber irgendwie find ich die Spitze für meine WW-Pistole nicht mehr.....

    Bild hier  


    MfG & Danke
    Nico

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2005
    Ort
    Kaiserslautern
    Beiträge
    794
    Die Address-Leitungen hast du jetzt aber nicht beschaltet...

    Und zu genau denen habe ich noch eine Verständnisfrage:
    Ich habe jetzt einen 3-Pin Male-Header geplant, um das um Jumpern zu können. Links liegt +5V und rechts GND, in der Mitte der Address-Pin des ICs.

    1.) In meiner Anordnung benötige ich dann doch keine 10k, oder?
    2.) Deine Anordnung sieht nur einen 2-Pin Male-Header vor, oder? +5V liegen dann über 10k immer "an" und GND kann (ohne R) zugeschaltet werden, oder?

    3.) Welche Variante ist vorzuziehen? (Bei deiner Variante fließen ja pro Pin 0,5mA, ist zwar wenig, aber immerhin..)

    Gruß, CowZ

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2006
    Ort
    Barsinghausen
    Alter
    36
    Beiträge
    23
    Hi,
    also ich hoffe ich versteh dich richtig und meine antwort stimmt auch so, wenn nicht, bitte verbessern!!! Denn ich beschäftige mich noch nicht so lange mit I2C, genauer erst seit ca. 3-4 Tagen und da hab ich hat nur im Netz gesurft und ein bissl gelesen und zu verstehen versucht....
    Also die A-Leitungen hab ich erstmal nich beschaltet weils mir vorläufig nur um die Grund-Schaltung ging. Die 10K liegen ja zwischen den Datenleitungen und +5V und müssen da, egal wie die A-Leitungen beschaltet sind bleiben.
    Ich werde dann auch noch eine Jumper-Möglichkeit einbauen.
    Hier mal ein Plan den ich im Netz gefunden habe. Da hast du auch ne Jumper-Technik für die A-Leitungen....

    http://www.avrprojects.net/images/ds1621_thermo_sch.gif


    MfG
    Nico

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2005
    Ort
    Kaiserslautern
    Beiträge
    794
    Ja, genauso wie auf diesem Plan ausm I-Net meinte ich meine Version (1.)

    Die Address-Pins solltest du imho schon beschalten (notfalls einfach nach Masse legen), da der IC sonst womöglich eine unklare Adresse hat, da der IC eben nicht eindeutig weis, ob da jetzt Vcc oder GND anliegen soll.

    Gruß, CowZ

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad