- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: Fehler in Schaltplan von M32?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2008
    Ort
    Allgäu
    Alter
    36
    Beiträge
    220

    Fehler in Schaltplan von M32?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo leute, bin gerade auf der Suche nach einem interrupt- eingang auf der M32. nun gibt es bei den freien I/O- ports zwei freie interrupteingänge.

    nun ist mir aber aufgefallen, dass PD3 im schaltbild des M32 µc mit INT1 und PD2 mit INT0 beschriftet sind. allerdings sind rechts daneben PD3 mit INT2 und PD2 mit INT1 beschriftet.

    ist das jetzt absicht oder ist das ein fehler?

    weil in der funktionsbibliothek der M32 werden in initRP6Control() wiederum PD3 mit INT1 und PD2 mit INT0 deklariert.

    wer kann mir sagen, was jetzt eigentlich stimmt?

    mfg andi

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    allerdings sind rechts daneben PD3 mit INT2 und PD2 mit INT1 beschriftet.
    mach mal n screenshjot, ich bin grad das datenblatt durchflogen und kann eine ederartige darstellung nicht finden! es ist IMMER PD2 - INT0

    jedenfalls stimmt es dass PD2 INT0, PD3 INT1 und PB2 INT2 ist .... oder hast dich evtl. verlesen udn hast PB2 mit PD2 verwechselt ?

    sehr verwirrend ^^ sag erstmal von welchem dokument du redest und macht wie gesagt evtl. nen screenshot/foto

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651

    Re: Fehler in Schaltplan von M32?

    Hallo andi, Nachbar,

    Zitat Zitat von proevofreak
    ... interrupt- eingang auf der M32 ... PD3 mit INT1 und PD2 mit INT0 deklariert ... sagen, was jetzt eigentlich stimmt ...
    Die wirklich verbindliche Aussage steht natürlich im Datenblatt des Herstellers. Aktuell ist es das 8155B–AvR–07/09. Da drin steht - z.B. auf Seite 2 das, was ja nicht unbekannt ist: einen Int2 gibts garnicht am Port D. Also richtig ist: PD2 ist INT0 und PD3 ist INT1 (weil die Zählweise bei den Controllern ja doch fast immer mit der Null anfängt). Alles klar jetzt?
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    die Pins am XBUS Steckverbinder heissen INT1 - INT3 und INTU (U=User = nicht belegt kann frei belegt werden). Wurde einfach so definiert.

    Die Bezeichnungen haben nichts damit zu tun wie die Interrupts vom MEGA32 intern belegt sind. Am XBUS kann ja beliebige Hardware angeschlossen werden, nicht nur das MEGA32 Erweiterungsmodul.


    Die INTx Leitungen sind dafür vorgesehen das I2C Slave Hardware Module eine Zustandsänderung signalisieren können ohne über den I2C Bus abgefragt werden zu müssen. Die Reaktionszeit kann so verkürzt und die Buslast drastisch reduziert werden (sonst müsste ja alle x-Millisekunden eine Anfrage gesendet und beantwortet werden...).


    Beim M32 Board wird standardmäßig eine der Interrupt Leitungen verwendet (und die muss vom Programm nichtmal als Interrupt behandelt werden, polling reicht schon völlig).
    Nämlich die vom Controller auf dem Mainboard. Wie das verwendet wird sieht man in den Beispielprogrammen.
    Z.B. wenn das ACS ein Hindernis erkennt, wird über INT1 signalisiert das sich "irgendwas" geändert hat. Der Master kann dann über den Bus abfragen was denn genau los war und drauf reagieren...


    MfG,
    SlyD


    PS:
    Du kannst die Interrupt Belegung auf dem M32 Modul sogar ÄNDERN! Da ist ein nicht bestücktes Jumperfeld auf dem M32 Modul (I1, I2, I3, INT1, INT2, INT3, INTU, welche Pins standardmäßig verbunden sind ist weiss gekennzeichnet - man kann hier die Leiterbahn zwischen den Pads auftrennen bei Bedarf)

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2008
    Ort
    Allgäu
    Alter
    36
    Beiträge
    220
    hallo,
    hier nochmal zum besseren verständnis meiner anfrage der schaltplan der M32:
    http://rapidshare.de/files/48802881/...L_M32.pdf.html

    wenn ihr den genau an der stelle der portbelegung des M32 µc anschaut, werdet ihr das gleiche feststellen wie ich.

    im controller- blockschaltbild steht PD3 (INT1) und PD2(INT0). Rechts daneben steht allerdings bei Pin von PD2(INT1) und am Pin von PD3(INT2).

    in der funktionsbibliothek wird allerdings PD3 mit INT1 und PD2 mit INT0 deklariert.

    liege ich mit meiner annahme richtig, dass es so richtig ist:
    PD3(INT1) und PD2(INT0)

    ich hoffe mein problem ist jetzt verständlich.

    mfg

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hi,

    nochmal:
    der Netzname im Schaltplan hat nichts mit der internen Pinbezeichnung des Controllers zu tun. Die XBUS Bezeichnungen wurden unabhängig von den Bezeichnungen vom AVR definiert, noch bevor das M32 Modul überhaupt entwickelt wurde.
    Ausserdem - es sind nur Namen, man hätte die Signale auch Horst, Franz und Kalle nennen können :P


    Auszug aus RP6Control.h:

    Code:
    #define BUZ 	(1 << PIND7)	// Output
    #define IO_PD6 	(1 << PIND6)	// I/O
    #define IO_PD5 	(1 << PIND5)	// I/O
    #define STR 	(1 << PIND4)	// Output
    
    #define EINT2 	(1 << PIND3)	// INT1 (Input - Pullup)
    #define EINT1 	(1 << PIND2)	// INT0 (Input - Pullup)
    
    #define TX 		(1 << PIND1)	// USART TX (Output)
    #define RX 		(1 << PIND0)	// USART RX (Input)
    Die Pins werden korrekt als EINT1 und 2 deklariert EINT = External INTerrupt
    Daneben im Kommentar(!!) steht als Hilfe, dass das Controller intern eigentlich die Interrupts 0 und 1 sind.

    Die Interrupt Event Handler müssen natürlich als INT0 und INT1 deklariert werden, weil die Bezeichnung beim MEGA32 nunmal so ist. Das kann bei anderen Controllern aber schon wieder ganz anders aussehen


    MfG,
    SlyD

    PS:
    Die Schaltpläne sind auf der RP6 Homepage unter Dokumentation zu finden. Ich denke das geht schneller die dort runterzuladen als mit Rapidshare rumzuhantieren

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2008
    Ort
    Allgäu
    Alter
    36
    Beiträge
    220
    danke slyd; ich hoffe jetzt habe ich dich verstanden.

    aber für was sind eigentlich die ganzen INTx_eventHandler?

    kann ich die nicht einfach löschen und zum beispiel wenn die ISR (INT1_vect) selbst programmieren?

    zur erklärung: ich will an den eingang PD3 einen IR- empfänger anschließen und damit den interrupt auslösen.

    mfg

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Natürlich kannst Du das auch selbst machen.
    Kannste alles aus der Lib löschen und selbst schreiben das ist kein Problem.

    Beim ACS und anderen Dingen wurden schon EventHandler eingeführt und da bot es sich an das einfach für alles herzunehmen.

    MfG,
    SlyD

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2008
    Ort
    Allgäu
    Alter
    36
    Beiträge
    220
    gut danke, dann werd ich mich mal in den nächsten tagen daran machen es zu programmieren.

    mfg

Berechtigungen

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

LiTime Speicher und Akkus