- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: M32: Spannung an I/O-Ports

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Anzeige

    Praxistest und DIY Projekte
    Mit dem (seriellen ?) RP6-Programmer kenn ich mich leider nicht aus.
    Ciao sagt der JoeamBerg

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Mit den RP 6 kenne ich mich leider auch nicht aus, aber wenn dein Programmer
    für seriell ausgelegt ist sollte das so wie Du es eingestellt hast klappen.
    Ich benutze das AVR Studio (Gewohnheit). Poni Prog habe ich aber auch
    schon benutzt und eben kurz aufgerufen um nach den alten Einstellungen
    zu schauen. Das habe ich auch nur seriell und com Pord eingestellt, es ist
    aber auch ein Test Knopf vorhanden. Ich vermute das man damit die
    Verbindung testen kann. Wie man mit Poni Prog Fuses anzeigt/Ändert?

    Gruß Richard

  3. #13
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Der RP6 verwendet einen Bootloader über die Serielle Schnittstelle - damit kann man die Fusebits (aus gutem Grund) nicht ändern!

    Die sollten im Werk schon richtig gesetzt worden sein und JTAG ist deaktiviert.


    Also - trenne ALLE Kabel die Du abtrennen kannst (nicht nur vom betroffenen Steckverbinder sondern ALLE) und vor allem den L293 aus dem hoffentlich vorhandenen Sockel ziehen (man sockelt solche ICs aus genau diesem Grund).
    Dann nochmals messen.

    Und das verwendete Testprogramm hier posten.

    MfG,
    SlyD

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    28
    Beiträge
    175
    Hallo,

    ich habe das Erweiterungsmodul jetzt ganz vom Roboter getrennt, ich habe alles abgesteckt.
    Beim Messen erhalte ich wieder die im ersten Beitrag des Threads bereits erwähnten Ergebnisse.

    Im Programm habe ich einfach alle I/O-Ports (außer den ADCs) auf high gesetzt, um dann zu messen:

    Code:
    #include "RP6ControlLib.h"
    
    int main(void)
     {
      initRP6Control();
      
      DDRD |= IO_PD5;
      DDRD |= IO_PD6;
      DDRC |= IO_PC2;
      DDRC |= IO_PC3;
      DDRC |= IO_PC4; 
      DDRC |= IO_PC7; 
      DDRC |= IO_PC5;
      DDRC |= IO_PC6;
     
      PORTD |= IO_PD5;
      PORTD |= IO_PD6;
      PORTC |= IO_PC2;
      PORTC |= IO_PC3;
      PORTC |= IO_PC4;
      PORTC |= IO_PC7;
      PORTC |= IO_PC5;
      PORTC |= IO_PC6;
      
      while(1);
      
      return 0;
     }
    lg
    Michi

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    28
    Beiträge
    175
    Hallo,

    ich hab jetzt mein Testprogramm noch erweitert, jetzt werden auch alle ADCs als I/Os definiert und auf high gesetzt:
    Code:
    #include "RP6ControlLib.h"
    
    int main(void)
     {
      
      
      initRP6Control();
      initLCD();
     
      showScreenLCD("Roboterkran:","Testprogramm");
     
      DDRD |= IO_PD5;
      DDRD |= IO_PD6;
      DDRC |= IO_PC2;
      DDRC |= IO_PC3;
      DDRC |= IO_PC4; 
      DDRC |= IO_PC7; 
      DDRC |= IO_PC5;
      DDRC |= IO_PC6;
      
      DDRA |= ADC2;
      DDRA |= ADC3;  
      DDRA |= ADC4;   
      DDRA |= ADC5;   
      DDRA |= ADC6;
      DDRA |= ADC7;
     
      PORTD |= IO_PD5;
      PORTD |= IO_PD6;
      PORTC |= IO_PC2;
      PORTC |= IO_PC3;
      PORTC |= IO_PC4;
      PORTC |= IO_PC7;
      PORTC |= IO_PC5;
      PORTC |= IO_PC6;
      
      PORTA |= ADC2;
      PORTA |= ADC3;  
      PORTA |= ADC4;   
      PORTA |= ADC5;   
      PORTA |= ADC6;
      PORTA |= ADC7;
      
      while(1);
      
      return 0;
     }
    Dann habe ich wieder die anliegende Spannung gemessen - bei allen ADCs ziemlich genau 5V.
    Wenn's nicht JTAG ist, was könnte dann die Fehlfunktion - nur auf PORTC wohlgemerkt - verursachen?

    lg
    Michi

  6. #16
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Hi RobotMichi,

    leider kann ich kein Bascom. Aber so wie ich Deinen Code verstehe, setzt Du da etliche DDRnx´s auf 1 => Du definierst die zugehörigen Pins als Ausgänge. Dann setzt Du noch etliche PORTnx´s => damit weist Du den Controller an, den entsprechenden Pin (!) auf 1 = high = 5V zu schalten. Und das stellst Du ja dann auch fest, oder habe ich da etwas falsch verstanden?

    Wenn ich einen ADC einlesen möchte, dann ist der entsprechende Pin bei mir ein Eingang, das entsprechende DDRnx wird auf 0 (in Worten: Null) gesetzt, in C sieht das etwa so aus: ((ADDR) &= ~(1<<(BIT))). Beim ADC macht es eigentlich wenig Sinn, den internen Pullup einzuschalten. Der bleibt auf Null oder wird in dieser speziellen Anwendung (als analoger Eingang), wenn vorher etwas Unklares passiert sein könnte, explizit auf Null gesetzt. Bei manchen "anderen" Eingängen wird der interne PullUp geschaltet - das kommt aber ganz auf die Problem-/Fragestellung an. Denk daran:

    Pins/Ports mit DDRnx als Ein- (0) oder Ausgänge (1) definieren, Pull Ups bei Eingängen (DDRnx = 0!!) mit PORTnx (1) aktivieren, mit (0) ausschalten, Ausgänge (DDRnx = 1 !!) mit PORTnx einschalten durch (1) oder ausschalten durch (0). Geschaltete Ausgänge können etwa 20 mA treiben - siehe Datenblatt für ausführlichere Angaben.
    Ciao sagt der JoeamBerg

  7. #17
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Michi:
    Wenn's nicht JTAG ist, was könnte dann die Fehlfunktion - nur auf PORTC wohlgemerkt - verursachen?
    Manchmal mißt man mit Messgeräten auch "Mist".

    Schließ doch mal an alle Pins von PortC je eine Low-Current-LED mit Vorwiderstand 1500 Ohm gegen Masse an.

    Die müßten dann korrekt an oder aus sein (je nach Programm! Du kannst sie ja auch mal blinken lassen!).

    Gruß Dirk

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    28
    Beiträge
    175
    Hallo,

    @Dirk: Ich habe deinen Rat mit den LEDs befolgt - Die LED an IO_PC3 leuchtet bei high gar nicht und bei IO_PC2 nur schwach. Bei den anderen lässt sich die LED korrekt schalten.
    Das heißt, ich habe keinen "Mist" gemessen, die Ergebnisse des Tests mit den LEDs und die der Messung bestätigen sich.

    lg
    Michi

  9. #19
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Michi:
    Die LED an IO_PC3 leuchtet bei high gar nicht und bei IO_PC2 nur schwach. Bei den anderen lässt sich die LED korrekt schalten.
    Da bleiben nur 2 Möglichkeiten, wenn da sonst keine Hardware dranhängt:
    1. Die Verbindung vom Prozessorpin PC2 und PC3 zum Stecker, an dem du die LED anschließt, hat ein Problem. Durchmessen!
    2. Du hast (leider) diese 2 Pins geschrottet.

    Gruß Dirk

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    28
    Beiträge
    175
    Hallo,

    wie's aussieht sind die beiden Pins defekt.
    Die Leitungen haben jedenfalls kein Problem, ich habe auch die Ausgangsspannung direkt am µC gemmessen - das sind die selben Werte wie am Stecker.

    Ob ich das selber war oder ob die Pins nicht doch schon bei der Lieferung kaputt waren, stelle ich dennoch in Frage.
    Ich habe nämlich vor kurzem eine neue M32 bekommen, weil ich die alte eingeschickt hatte, da der µC immer heiß wurde.

    Wenn ich die Pins selbst geschrottet habe, wie könnte das passiert sein?
    Ich hatte einmal einen billigen L293D Motortreiber - da gibt es offfenbar auch qualitative Unterschiede - der ist durchgebrannt.
    Der IC-Sockel war verschmort und der Motor hat verrückt gespielt. Könnte es sein, dass der Motortreiber, nachdem er durchgebrannt war, die Motorspanung (ca.10V) zu den Steuerpins (eben den betroffenen!) durchgestellt hat und so die Pins geschrottet hat?

    lg,
    Michi

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests