-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Portzustand nach dem einschalten?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576

    Portzustand nach dem einschalten?

    Anzeige

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

    Folgendes Problem:

    Ich habe einen MEGA32 und eine Schaltung, die mir einen Motor ansteuert (PWM)
    Die Schaltung hat einen Enable Eingang der mir den Motor ausschaltet wenn Low anliegt.
    Der AVR steuert das einschalten des Motor's mit diesem Eingang.
    Nach dem aktivieren des AVR soll der Motor zuerst mal ausgeschalten bleiben um dann vom AVR erst aktiviert werden..

    Jetzt habe ich aber beim (ganz neu) einschalten das Problem, das der Motor kurz anläuft

    Ich vermute jetzt mal, dass nach dem einschalten des AVR's alle Ports mal auf High gehen (oder zumindest auf Eingang) und nachher erst den richtigen (programmierten) Zustand einnehmen ?!

    Beim mir muss die Enable Leitung zuerst aber auf Low bleiben..

    Ich schätze mal, Programmtechnisch werde ich dem Problem wohl nicht zu leibe rücken können (Watchdog oder so...)

    Meine Überlegungen wären jetzt ein kleines Relais auf die Leitung zu hängen, die mit einem Co die Enable-Leitung erst nach einer gewissen Zeit freigibt (= vorher gegen Masse zieht)... oder vielleicht einfach einen Inverter in die Leitung hängen.
    Das muss ich dann aber wohl mit einer Diode machen, weil andere Schaltungsteile die Leitung auch gegen Masse ziehen können müssen.

    Das Problem ist nur, dass das Layout schon steht und ich da nicht mehr viel ändern kann/will....


    Was habt Ihr dazu so für Gedanken ? [-o<

    l.G. Roberto

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

    Re: Portzustand nach dem einschalten?

    Hi,
    Zitat Zitat von Roberto
    ... Folgendes Problem ... Was habt Ihr dazu so für Gedanken ...
    Das Problem ist einfach: Du hast die Dokumentation nicht gelesen. Meine Gedanken dazu sind: RTFM.
    Zitat Zitat von Roberto
    ... Ich vermute jetzt mal, dass nach dem einschalten des AVR's alle Ports ...
    Auf Seite 64 - neueste doc : 2503K–AvR–08/07 - steht für jeden einzelnen Portpin der initial value.

    Ich persönlich arbeite derzeit fast ausschließlich mit dem m168 - aber die AvR´s sind in dieser Hinsicht vermutlich fast alle gleich. Gleich zu Beginn meines mains habe ich die wichtigsten Initialisierungen. Problem ist allenfalls, dass die start up Zeit (siehe fuses, dort ist sie in Grenzen definierbar) und die anschließenden grundlegenden Initialisierungen (SP etc) möglicherweise auch in der kürzesten, bei Dir noch funktionierenden, Dauer so lang sind, dass Deine Motoren schon anlaufen. Immerhin sind 4 ms nicht Null - das ist schon in der Größenordnung der Zeitkonstanten von Motoren . . . .

    ... Programmtechnisch werde ich dem Problem wohl nicht zu leibe rücken können (Watchdog oder so...) ...
    Was hat der Watchdog damit zu tun? Das versteh ich jetzt nicht. Aber ich bin auch noch nicht firm mit den Controllern.

    ... Das Problem ist nur, dass das Layout schon steht ...
    Jemand hatte hier im Forum mal einen schwierigen Satz gesagt: "... wenn das Layout schon steht und dann die Überlegungen anfangen ...". Da musst Du wohl oder übel durch. Ideen hast Du ja schon.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi,

    bei meiner C-Control habe ich es so gemacht, daß die PortPin´s über einen "Pull-down" Widerstand (10 k)gegen Masse gezogen werden.

    Evtl. kannst Du den in Deiner Schaltung noch unterbringen?

    liebe Grüße,

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo
    Danke für die schnellen Antworten

    @oberallgeier
    Meine Gedanken dazu sind: RTFM.
    Was meinst Du damit ??
    Auf Seite 64 - neueste doc : 2503K–AvR–08/07 - steht für jeden einzelnen Portpin der initial value.
    Wo finde ich die ?
    Am Anfang vom Programm wird mein Port eh Initialisiert.... aber da scheint noch was dazwischen zu sein..
    start up Zeit (siehe fuses, dort ist sie in Grenzen definierbar) und die anschließenden grundlegenden Initialisierungen (SP etc) möglicherweise auch in der kürzesten, bei Dir noch funktionierenden, Dauer so lang sind, dass Deine Motoren schon anlaufen. Immerhin sind 4 ms nicht Null - das ist schon in der Größenordnung der Zeitkonstanten von Motoren . . . .
    Start up Zeit.... Interessant
    Das Problem ist nur, wenn ich die Spannung ganz weg habe.
    Wenn in den Elkos noch ein wenig drinnen ist kommt es nicht zu dieser Reaktion.
    Auch nicht bei einem Reset!

    @Klingonn77

    bei meiner C-Control habe ich es so gemacht, daß die PortPin´s über einen "Pull-down" Widerstand (10 k)gegen Masse gezogen werden.
    Das geht leider nicht, weil ich schon einen Pull_up habe
    Die Leitung ist somit auf High und jeder Schlatungsteil der will, kann sie dann gegen Masse ziehen.. ( = Motor abschalten)

    l.G. Roberto

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Zitat Zitat von Roberto
    ... RTFM ... Was meinst Du damit ...
    ? ? ? Schon mal was von google gehört? Das ist ein metacrawler - tipp die Buchstaben dort ein, drück die Eingabetaste - und Du wirst sehen: Internet bildet.

    Zitat Zitat von Roberto
    ... neueste doc ... Wo finde ich die ...
    Ist schon lustig - Dein Layout steht - aber Du weißt nicht, wo Du die doc zu Deinem Controller findest.

    Zitat Zitat von Roberto
    ... Am Anfang vom Programm wird mein Port eh Initialisiert ...
    Dann ist doch alles bestens!

    Zitat Zitat von Roberto
    ... aber da scheint noch was dazwischen zu sein ...
    Soweit ich Dich verstanden habe, ist das der Kernpunkt Deines Problemchens.
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    Das geht leider nicht, weil ich schon einen Pull_up habe
    Die Leitung ist somit auf High und jeder Schlatungsteil der will, kann sie dann gegen Masse ziehen.. ( = Motor abschalten)
    Kannst du das bitte näher erläutern. Wer zieht das auf Masse, wenn der Controller noch nicht soweit ist? Das ist vermutlich die Ursache deines Problems. Wie sieht es mit einem Schaltplan (als png) aus?

    Gruß

    Jens

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Genau so hatte ich zeitweise auch gedacht, dass ein Hardware-Pull_down wohl der Bringer wäre. Den Rest dann per Software.
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi,

    bei meinen (früheren) Basteleien habe ich prinzipiell mit PullDown gearbeitet.

    Erstmal alles "tot" machen!
    Wenn dann ein Signal erzeugt werden soll muß halt gearbeitet werden.

    Mitunter verbaute ich so ein paar Bausteine mehr; ist aber für den Hobby-Bereich egal.


    Die PullDown / PullUp kann man auch gut bei den CE (ChipEnable) einsetzen.
    Die Bausteine werden prinzipiell so gesetzt, daß sie ausgeschaltet sind.



    liebe Grüße,

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Roberto
    Das geht leider nicht, weil ich schon einen Pull_up habe
    Die Leitung ist somit auf High und jeder Schlatungsteil der will, kann sie dann gegen Masse ziehen.. ( = Motor abschalten)
    Warum hast du denn an einem Ausgang einen PullUp dran? Das ist doch dann genau das Problem. Oder schaltest du den Pin im Programm zwischendurch mal auf Eingang?
    Mach den weg und schon ist gut. Evtl noch den PullDown dran, wie Klingon77 vorgeschlagen hat.

    Gruß

    Rolf

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Genau so hatte ich zeitweise auch gedacht, dass ein Hardware-Pull_down wohl der Bringer wäre. Den Rest dann per Software.
    Ganz so einfach ist es leider nicht...
    Hier der Schaltplan..
    http://www.pukshofer.com/Privat/Proj...Hauptseite.htm
    der sich inzwischen insofern geändert hat, dass der AVR jetzt über nur eine Leitung und per Dioden, DIE Treiber gegen Masse zieht.
    Wogegen die Komparatoren ihren jeweiligen Treiber einzeln gegen Masse ziehen können (Enable)
    Aber das ändert ja nix am Problem

    Derzeit tentiere ich zu der Überlegung einen pin vom Port über einen Inverter und dann über eine Diode, die Enable Leitung gegen Masse ziehen zu lassen... ?

    Mich würde interessieren, ob der AVR prinzipiell beim Einschalten, alle Ports zuerst auf High schaltet ? Und erst dann, wenn das Programm was anderes sagt, sie Port's dementsprechend schaltet..?


    l.G. Roberto

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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