Subversion Repositories BL-Ctrl

Rev

Rev 50 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 50 Rev 51
1
#ifndef _MAIN_H
1
#ifndef _MAIN_H
2
 #define _MAIN_H
2
 #define _MAIN_H
3
 
3
 
4
#define MOTORADRESSE      0   // Adresse (1-4)     0 = Motoradresse über Lötjumper auf BL-Ctrl V1.1
4
#define MOTORADRESSE      0  // Adresse (1-4)     0 = Motoradresse über Lötjumper auf BL-Ctrl V1.1
5
 
5
 
6
#define MANUELL_PWM       0   // zur manuellen Vorgabe der PWM  Werte: 0-255
6
#define MANUELL_PWM       0   // zur manuellen Vorgabe der PWM  Werte: 0-255
7
#define TEST_MANUELL      0   // zum Testen der Hardware ohne Kommutierungsdetektion  Werte: 0-255 (PWM)
7
#define TEST_MANUELL      0   // zum Testen der Hardware ohne Kommutierungsdetektion  Werte: 0-255 (PWM)
8
#define TEST_SCHUB        0       // Erzeugt ein Schubmuster        Werte: 0 = normal 1 = Test
8
#define TEST_SCHUB        0       // Erzeugt ein Schubmuster        Werte: 0 = normal 1 = Test
9
#define POLANZAHL        12   // Anzahl der Pole (Magnete) Wird nur zur Drehzahlausgabe über Debug gebraucht
9
#define POLANZAHL        12   // Anzahl der Pole (Magnete) Wird nur zur Drehzahlausgabe über Debug gebraucht
10
#define MAX_PWM         255
10
#define MAX_PWM         255
11
#define MIN_PWM           3
11
#define MIN_PWM           3
12
#define MIN_PPM          10   // ab hier (PPM-Signal) schaltet der Regler erst ein
12
#define MIN_PPM          10   // ab hier (PPM-Signal) schaltet der Regler erst ein
13
#define FILTER_PPM        7   // wie stark soll das PPM-Signal gefiltert werden (Werte: 0-30)?
13
#define FILTER_PPM        7   // wie stark soll das PPM-Signal gefiltert werden (Werte: 0-30)?
14
 
14
 
15
#define SIO_DEBUG         0   // Testwertausgaben auf der seriellen Schnittstelle
15
#define SIO_DEBUG         0   // Testwertausgaben auf der seriellen Schnittstelle
16
#define X3D_SIO           0       // serielles Protokoll des X3D (38400Bd) Achtung: dann muss SIO_DEBUG = 0 sein
16
#define X3D_SIO           0       // serielles Protokoll des X3D (38400Bd) Achtung: dann muss SIO_DEBUG = 0 sein
17
 
17
 
18
 
18
 
19
#define _16KHZ    // Schaltfrequenz  -- die gewünschte einkommentieren
19
#define _16KHZ    // Schaltfrequenz  -- die gewünschte einkommentieren
20
//#define _32KHZ    // Schaltfrequenz  -- die gewünschte einkommentieren
20
//#define _32KHZ    // Schaltfrequenz  -- die gewünschte einkommentieren
21
 
21
 
22
#define FDD6637_IRLR7843  1  // bessere MosFet bestückt? bewirkt höhere Stromgrenzen  
22
#define FDD6637_IRLR7843  1  // bessere MosFet bestückt? bewirkt höhere Stromgrenzen  
23
 
23
 
24
#ifdef _16KHZ
24
#ifdef _16KHZ
25
#ifdef FDD6637_IRLR7843        // bessere Fets = mehr Strom zulassen
25
#ifdef FDD6637_IRLR7843        // bessere Fets = mehr Strom zulassen
26
 #define MAX_STROM        200  // ab ca. 20A PWM ausschalten
26
 #define MAX_STROM        200  // ab ca. 20A PWM ausschalten
27
 #define LIMIT_STROM      120  // ab ca. 12A PWM begrenzen
27
 #define LIMIT_STROM      120  // ab ca. 12A PWM begrenzen
28
#else
28
#else
29
 #define MAX_STROM        130  // ab ca. 13A PWM ausschalten
29
 #define MAX_STROM        130  // ab ca. 13A PWM ausschalten
30
 #define LIMIT_STROM       65  // ab ca. 6,5A PWM begrenzen
30
 #define LIMIT_STROM       65  // ab ca. 6,5A PWM begrenzen
31
#endif
31
#endif
32
#endif
32
#endif
33
 
33
 
34
#ifdef _32KHZ
34
#ifdef _32KHZ
35
#define MAX_STROM        130  // ab ca. 13A PWM ausschalten
35
#define MAX_STROM        130  // ab ca. 13A PWM ausschalten
36
#define LIMIT_STROM       50  // ab ca. 5,0A PWM begrenzen
36
#define LIMIT_STROM       50  // ab ca. 5,0A PWM begrenzen
37
#endif
37
#endif
38
 
38
 
39
#define SYSCLK  8000000L        //Quarz Frequenz in Hz
39
#define SYSCLK  8000000L        //Quarz Frequenz in Hz
40
 
40
 
41
 
41
 
42
//Robbe Roxxy 2824-34 mit Todd 10x4,5 bei 16kHz
42
//Robbe Roxxy 2824-34 mit Todd 10x4,5 bei 16kHz
43
//PWM   Strom   Schub
43
//PWM   Strom   Schub
44
//10   0,18A    21g
44
//10   0,18A    21g
45
//20   0,30A    38g
45
//20   0,30A    38g
46
//30   0,40A    49g
46
//30   0,40A    49g
47
//40   0,54A    60g
47
//40   0,54A    60g
48
//50   0,70A    83g
48
//50   0,70A    83g
49
//60   0,95A   102g
49
//60   0,95A   102g
50
//70   1,25A   128g
50
//70   1,25A   128g
51
//80   1,50A   151g
51
//80   1,50A   151g
52
//90   1,83A   175g
52
//90   1,83A   175g
53
//100  2,25A   206g
53
//100  2,25A   206g
54
//110  2,66A   228g
54
//110  2,66A   228g
55
//120  3,10A   257g
55
//120  3,10A   257g
56
//130  3,55A   278g
56
//130  3,55A   278g
57
//140  4,00A   305g
57
//140  4,00A   305g
58
//150  4,50A   330g
58
//150  4,50A   330g
59
//160  5,30A   355g
59
//160  5,30A   355g
60
//170  5,85A   387g
60
//170  5,85A   387g
61
//180  6,40A   400g
61
//180  6,40A   400g
62
//190  7,10A   425g
62
//190  7,10A   425g
63
//200  7,60A   460g
63
//200  7,60A   460g
64
 
64
 
65
//0,5A  63g 14%
65
//0,5A  63g 14%
66
//1,0A 110g 24%
66
//1,0A 110g 24%
67
//1,5A 170g 32%
67
//1,5A 170g 32%
68
//2,0A 195g 37%
68
//2,0A 195g 37%
69
//2,5A 230g 41%
69
//2,5A 230g 41%
70
//3,0A 260g 46%
70
//3,0A 260g 46%
71
//3,5A 290g 50%
71
//3,5A 290g 50%
72
//4,0A 310g 53%
72
//4,0A 310g 53%
73
//4,5A 340g 58%
73
//4,5A 340g 58%
74
//5,0A 360g 63%
74
//5,0A 360g 63%
75
//5,5A 380g 67%
75
//5,5A 380g 67%
76
//6,0A 400g 68%
76
//6,0A 400g 68%
77
//6,5A 420g 70%
77
//6,5A 420g 70%
78
//7,0A 450g 75%
78
//7,0A 450g 75%
79
//7,5A 460g 78%
79
//7,5A 460g 78%
80
//8,0A 475g 82%
80
//8,0A 475g 82%
81
//9,0A 550g 86%
81
//9,0A 550g 86%
82
//11 A 600g 100%
82
//11 A 600g 100%
83
 
83
 
84
 
84
 
85
#include <stdio.h>
85
#include <stdio.h>
86
#include <stdlib.h>
86
#include <stdlib.h>
87
#include <string.h>
87
#include <string.h>
88
#include <avr/io.h>
88
#include <avr/io.h>
89
#include <avr/pgmspace.h>
89
#include <avr/pgmspace.h>
90
#include <avr/interrupt.h>
90
#include <avr/interrupt.h>
91
#include <avr/eeprom.h>
91
#include <avr/eeprom.h>
92
#include <avr/boot.h>
92
#include <avr/boot.h>
93
#include <avr/wdt.h>
93
#include <avr/wdt.h>
94
 
94
 
95
#include "twislave.h"
95
#include "twislave.h"
96
#include "old_macros.h"
96
#include "old_macros.h"
97
#include "analog.h"
97
#include "analog.h"
98
#include "uart.h"
98
#include "uart.h"
99
#include "timer0.h"
99
#include "timer0.h"
100
#include "BLMC.h"
100
#include "BLMC.h"
101
 
101
 
102
#include "PPM_Decode.h"
102
#include "PPM_Decode.h"
103
 
103
 
104
extern unsigned int  I2C_Timeout;
104
extern unsigned int  I2C_Timeout;
105
extern unsigned int SIO_Timeout;
105
extern unsigned int SIO_Timeout;
106
extern unsigned int  PWM;
106
extern unsigned int  PWM;
107
extern unsigned int  Strom;     //ca. in 0,1A
107
extern unsigned int  Strom;     //ca. in 0,1A
108
extern unsigned char Strom_max;
108
extern unsigned char Strom_max;
109
extern unsigned char Mittelstrom;
109
extern unsigned char Mittelstrom;
110
extern unsigned int  CntKommutierungen;
110
extern unsigned int  CntKommutierungen;
111
extern unsigned char MotorAnwerfen;
111
extern unsigned char MotorAnwerfen;
112
extern unsigned char MotorGestoppt;
112
extern unsigned char MotorGestoppt;
113
extern unsigned char ZeitZumAdWandeln;
113
extern unsigned char ZeitZumAdWandeln;
114
extern unsigned char MaxPWM;
114
extern unsigned char MaxPWM;
115
extern unsigned char MotorAdresse;
115
extern unsigned char MotorAdresse;
116
extern unsigned char PPM_Betrieb;
116
extern unsigned char PPM_Betrieb;
117
 
117
 
118
#define ROT    0x08
118
#define ROT    0x08
119
#define GRUEN  0x80     
119
#define GRUEN  0x80     
120
 
120
 
121
#define ADR1   0x40    // für Motoradresswahl
121
#define ADR1   0x40    // für Motoradresswahl
122
#define ADR2   0x80    // 
122
#define ADR2   0x80    // 
123
 
123
 
124
#if defined(__AVR_ATmega8__)
124
#if defined(__AVR_ATmega8__)
125
#  define OC1   PB1
125
#  define OC1   PB1
126
#  define DDROC DDRB
126
#  define DDROC DDRB
127
#  define OCR   OCR1A
127
#  define OCR   OCR1A
128
#  define PWM10 WGM10
128
#  define PWM10 WGM10
129
#  define PWM11 WGM11
129
#  define PWM11 WGM11
130
#endif 
130
#endif 
131
 
131
 
132
 
132
 
133
#endif //_MAIN_H
133
#endif //_MAIN_H
134
 
134
 
135
 
135
 
136
 
136
 
137
 
137
 
138
 
138
 
139
 
139