PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Fehlerbehandlung des VNH2SP30-E Motortreibers



Ritchie
26.02.2012, 16:47
Hallo Zusammen,

hat jemand Erfahrung mit dem Fehlerhandling der Kontrollers "VNH2SP30-E" gemacht.

Laut Tabelle des Datenblatts ist ein Fehlerzustand vorhanden, wenn min der DIA-A Eingang auf Low geht.
Ich habe in der Schaltung 10kOhm Pullups eingebaut!

Wenn ich iState=0; entferne arbeitet die Schaltung nicht mehr, da ich einen Abbruch wegen Motorstatus bekomme.

Wenn ich die Signale mit einem Logikstift prüfe, sind die Signale auch auf High, also alles o.k. Der Fehler muss also in der folgenden Routine sein. Da ich von PIC ASM komme, habe ich ein wenig Probleme mit dem Ansprechen von I/Os unter C bei atmega.



// Definition of the I/O Setup of Port C
// Bit set to 1 = Output 0=Input
#define PORTC_DIRECTIONMASK 0x00
#define PORTC_PULLUP_SETUP 0x04

#define DATA_SCL PINC0
#define DATA_SDA PINC1
#define INPUT_BUMPER_DOWN_L PINC2
#define INPUT_MOTOR_L_DIAGB PINC3
#define INPUT_MOTOR_L_DIAGA PINC4
#define INPUT_MOTOR_R_DIAGA PINC5
#define INPUT_MOTOR_R_DIAGB PINC6
#define INPUT_FREE_PINC7 PINC7


//
// Get the state of the motor driver
//
char getMotorState(void)
{
char iState=0;

if( !(PINC & (1 << INPUT_MOTOR_R_DIAGA))) iState |= 0x1;
if( !(PINC & (1 << INPUT_MOTOR_R_DIAGB))) iState |= 0x2;
if( !(PINC & (1 << INPUT_MOTOR_L_DIAGA))) iState |= 0x4;
if( !(PINC & (1 << INPUT_MOTOR_L_DIAGB))) iState |= 0x8;

iState=0;

return (iState);
}

Gruss R.

Ritchie
28.02.2012, 20:21
Hallo Zusammen,

hier der Code, der wohl auf den ersten Blick laufen sollte:


char getMotorState(void)
{
char iState=0;

if( (PINC & (1 << INPUT_MOTOR_L_DIAGA)) == 0 && (PINC & (1 << INPUT_MOTOR_L_DIAGB))== 1) // check feed backs
iState |= 0x1;

if( (PINC & (1 << INPUT_MOTOR_R_DIAGA))== 0 && (PINC & (1 << INPUT_MOTOR_R_DIAGB)) == 1)
iState |= 0x2;

return (iState);
}


Ursache meines Fehler ist, das ich die Wahrheitstabelle falsch gelesen habe. Wenn Diag B auf 0 geht, ist das ein normaler Zustand.

Siehe Datenblatt Seite 8/26 oder auch letztes Impulsdiagram Seite 12/26

Gruss R.