Hallo,
habe gerade versucht eure Software in meinen GTI300 zu laden.
Der GTI war defekt, 2 MOS FET getauscht und die AC-Fuse, dann ging das Teil wieder.
Mit euerer Software war die Rote-LED an und die Grünen LED´s flackerten zyklisch etwa alle Sekunde, dabei ging dann die Rote aus.
An was könnte das liegen?
Nach zurückspielen der Original Software läuft der GTI wieder.
Nun habe ich leider nach einem Absturz meines Programmers wohl den Mega8 zerstört.
Ich werde morgen mal nen neuen einlöten.
Folgenden Software habe ich mit AVR Studio6 übersetzt, lief auch Problemlos durch und versucht zu flaschen.
- Code: Alles auswählen
/*
*****************************************************************************
**
** Project : GTI
**
** Component : GTI (ATmega8)
**
** Modulename : System
**
** Filename : GTI_LCD_EE.c
**
** Abstract : This file is the implementation file for a grid tie
** inverter firmware
**
** Date : 2013-01-19
**
*****************************************************************************
*/
/*
**===========================================================================
** 1 GENERAL
** 1.1 Revisions
**===========================================================================
*/
#define VERSION 200
#define DEV_VERSION 102
/*
**===========================================================================
** 1.2 References
**===========================================================================
*/
// Hardware
// -------------- MCU LIB CONFIGURATION
#define FOSC (16000) // 16 MHz external crystal
#define F_CPU (FOSC*1000) // needed for AVR GCC
/*
**===========================================================================
** 1.3 Global user settings
**===========================================================================
*/
// define hardware
#define PJ14V // 14-28V
//#define PJ28V // 28-52V
#define P300W // 300W type
//#define P600W // 600W type
#define _USE_LCD // LCD via HC164 serial shift register
#define _USE_LCD2x24 // LCD 2 lines, 24 char
//#define _USE_LCD4x20 // LCD 4 lines 20 char
//#define _DUMPLOAD // wenn Dumpload anschliessbar
#define _SOLAR // do some power statistics
// debug switches
//#define _DEBUG_LCD1 // increase LCD refresh
//#define _DEBUG_LCD2 // see MPPT details
// define software (features)
//#define _PURESINE // exact Sine Table
// Max Power Point Tracker control parameters
#define _MPPDELAY 30 // MPPTracker every x*10ms
#define _MPPPOWERDIFF 2 // power difference for MPPT to take action (1/10W)
#define _MPPMAXSTEP 14 // maximale step width
#define _PWMSTARTPUSLEWIDTH 1 // max step width @ start (was 5)
#define _MPPSTARTTUNINGVOLT 26 // smooth start for the MPPT check with _UePwmOn (1/10V)
#define _MPPFORCEMINUSVOLT 17 // force MPPT to reduce current before switch off
// check with _UePwmOff (1/10V)
//#define _MPPFORCEMINUSSTEP 2 // force MPPT minus step before switch off
/*
**===========================================================================
** 2. INCLUDE FILES
** 2.1 Standard include files
**===========================================================================
*/
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <util/delay.h> // benötigt F_CPU !!!
#include <string.h>
#include <stdint.h>
#include <avr/eeprom.h> // we want to save max power from several days
/*
**===========================================================================
** 2.2 Application include files
**===========================================================================
*/
/*
**===========================================================================
** 3. DECLARATIONS
** 3.1 Internal constants
**===========================================================================
*/
//GRID Tie Inverter 300W und 600W (max. input power)
//Pin description ATmega8:
// PortB
#define PWMDISABLE 0
#define PWMOUT 1
#define FANCONTROL 2 // 1 = EIN, 0 = AUS
#define _MOSI 3 // Daten/RS für LCD
#define _E 4 // Enable für LCD (=MISO)
#define _SCK 5 // CLK für LCD
// PortC
#define ADCUE 0 // Eingangsspannung Teiler 20:1
#define ADCIE 1 // Eingsngsstrom (150mV / A)
#define ADCUAC 2 // Netz-Sinus 4.5Vpp, ref 2.5V
#define ADCTEMP 3 // Temperaturmessung
#define DUMPLOAD 5 // 1 = AUS
// PortD 1 = On, 0 = Off
#define RELAIS 1 // Input relais
#define LED4 2 // green, Power, PWM active
#define LED3 3 // green, MPPTracker +
#define LED2 4 // green, MPPTracker -
#define LED1 5 // red, failure, Grid Off etc.
// dies ist eventuell vertauscht bei unterschiedlichen HW
// ist nur eine Information hier, kommt im Code nicht weiter vor
#define ACCAPTURE 6 // Netz Sinus Vss 4.5V
#define ACREF 7 // +2.5V
// FuseBits1 = [CKOPT]; [EESAVE]
// FuseBits0 = [SUT1, BODLEVEL, BODEN];
// ProgMode = SPI;
// Temperatur: je höher der Wert desto höher die Temperatur
// entsteht aus 1023 - ADWert
#define _TempFanOn 680 //
#define _TempFanOff 655 //
#define _TempMax 850 // over temperature will stop PWM/operation
// ADC Mux settings with external 5V reference
#define _MUXUE 0x00
#define _MUXIE 0x01
#define _MUXUGRID 0x02
#define _MUXTEMP 0x03
#ifdef PJ14V // PowerJack 14-28V
#ifdef P300W
#define _CurrMax 16*100 // maximum input current ca.16 Ampere
#define _PeMax 300*10 // maximum input power ca.300.0W
#endif
#ifdef P600W
#define _CurrMax 35*100 // maximum input current ca.35 Ampere
#define _PeMax 600*10 // maximum input power ca.600.0W
#endif
//Spannungsgrenzen -> Spannungen nachfolgend in Zehntel Volt eintragen
// Schaltschwellen für Eingang Relais
#define _UeRelOn 120 // ??? Relais ein
#define _UeRelOff 100 // ??? Relais aus
// low voltage start/stop conditions (value: Voltage *10)
#define _UePwmOn 124 // Inverter starts ~ 12.4V (check with _MPPSTARTTUNINGVOLT)
#define _UePwmOff 108 // Inverter stops ~ 10.8V (check with _MPPFORCEMINUSVOLT)
*/
am Rest des Codes habe ich nichts verändert.
Danke schon mal