nem megy a proci!!

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

nem megy a proci!!

Hozzászólás Szerző: szovhoz »

Stk500-as táblát használok és ma vettem procit atmega16pu és atmega32pu-t

eddig atmega16pi volt és ezekenek valamiért nem megy aa portc 2-5 -ig egyik se a többbi mind! meg néztem a neten a pi és pu közti külömbséég a green vagyis full ólommentes.

miért nem megy a proci szerintetek?
Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00

Re: nem megy a proci!!

Hozzászólás Szerző: SirLeslie »

szovhoz írta:Stk500-as táblát használok és ma vettem procit atmega16pu és atmega32pu-t

eddig atmega16pi volt és ezekenek valamiért nem megy aa portc 2-5 -ig egyik se a többbi mind! meg néztem a neten a pi és pu közti külömbséég a green vagyis full ólommentes.

miért nem megy a proci szerintetek?
...mert a JTAG-ot nem tiltottad le a fuse bit-eknél ;-)
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

kösszi működik!

mnár azt hittük halott az stk500, erre nem gondoltam!!!!!!!!!!!!!!!!!


Ezer hála és KLöszönet!!!!

:oops: :oops: :oops: :oops:
Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00

Hozzászólás Szerző: SirLeslie »

szovhoz írta:kösszi működik!

mnár azt hittük halott az stk500, erre nem gondoltam!!!!!!!!!!!!!!!!!


Ezer hála és KLöszönet!!!!

:oops: :oops: :oops: :oops:
nincsmit ;-) (én is ezzel kezdtem anno)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Kezdők problémái fejezet :). 4. bekezdés :PPPP

http://avr.tavir.hu/modules.php?name=Co ... age&pid=54


U.i.: mindenki belefut 1x...

:twisted:
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

miért van hogy a procim m16 reseteli önmagát ha nincs benne watchdog!

nyomkodok egy nyomógombot és ettől befagy a rendszer ha konditteszek a nyomógombra akkor hamarabb is.

hogyan ha a processzorra a villámlás! nagy fesz a közelben?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Kapcsolási rajz?
Programkód?

A RESETelés program eltévedés, Stacktúltöltés, Reset, BOD, Tápfeszingadozás, direkt jmp ugrás, hibás RETURN, tápfesztüske miatt is lehet....
Szóval rajz + programrészlet?:)

Villámvédelem: beindukálódik a vezetékbe -> a Chip bemeneten tápfesz +0,3V lehet adatlap szerint...
Ide szupresszor és/vagy PKE sorozatú dióda, uni vagy bipoláris. Unipoláris esetén + védődióda kell.
Direkt villámlás ellen NINCS védelem. Másodlagos hatás ellen a benylet energia függvénye. De jellemzően szupresszor, szikraköz és áramkörcsere....
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

Kód: Egész kijelölése

$regfile = "M16def.dat"
$crystal = 16000000
$hwstack = 128                                              ' default use 32 for the hardware stack
$swstack = 40                                               'default use 10 for the SW stack
$framesize = 40                                             'default use 40 for the frame spa

Config Watchdog = 2048
Config Adc = Single , Prescaler = Auto , Reference = Internal

' input ----------------------
Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Config Pina.3 = Input

Config Pinb.2 = Input
Config Pinb.6 = Input
Config Pinb.7 = Input

Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.3 = Input
Config Pind.6 = Input
' output --------------------
Config Porta.6 = Output
Config Porta.7 = Output

Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.6 = Output

Config Portd.4 = Output
Config Portd.5 = Output


' megszakításhoz       ------------------------
On Int0 1s1
On Int2 1s2
Config Int0 = Rising
Config Int2 = Rising
Enable Interrupts
Enable Int0
Enable Int2
' megszakításhoz vége  ----------------------

Rem portok I/0 alias
Akkuled Alias Porta.6
Motorled Alias Porta.7

M1m2 Alias Pinb.0
E1 Alias Portb.3
F12 Alias Portb.4
Riaszt Alias Portb.5
Fgomb Alias Pinb.6                                          ' fel állítása
Lgomb Alias Pinb.7                                          ' le állítása

S12 Alias Portc.0
Tapled Alias Portc.1
Riasztled Alias Portc.2
E2 Alias Portc.3
Autoled Alias Portc.4
Keziled Alias Portc.6


Sk Alias Pind.0
Fazis Alias Pind.1
Rgomb Alias Pind.3
Lfazis Alias Portd.4
L12 Alias Portd.5
1leout Alias Pind.6

' Változók -------------------------
Dim W As Word , Channel1 As Word
Channel1 = 0
Dim Z As Word , Channel2 As Word
Channel2 = 1
Dim X As Word , Channel3 As Word
Channel3 = 2
Dim Y As Word , Channel4 As Word
Channel4 = 3

'számoló dim
'---------------------------------------------------
Dim B As Integer                                            ' 1 számólo 1s1 b - h
Dim C As Integer                                            ' 2 számoló 1s2 c - m

Dim H As Integer                                            ' S1
Dim Hmax As Integer
Dim Hmin As Integer

Dim M As Integer                                            'S2
Dim Mmax As Integer
Dim Mmin As Integer
Rem vész számolás leállítás

Dim F As Integer
Dim G As Integer

Dim D As Integer
'Dim E As Integer

Dim I As Integer
Dim J As Integer

Dim K As Integer

Dim U As Byte
U = 0
Dim N As Integer
N = 0
Dim Stopflag As Byte
Dim Stopflag1 As Byte
Dim A As Byte
A = 0


'subok ---------------------------------------------------
Declare Sub Adccurrent1(byref Channel1 As Word , W As Word )
Declare Sub Adccurrent2(byref Channel2 As Word , Z As Word )
Declare Sub Adccurrent3(byref Channel3 As Word , X As Word )
Declare Sub Adccurrent4(byref Channel4 As Word , Y As Word )
Declare Sub Fazissub
Declare Sub Gomb

' kalibráció -------------------------------------------
Riasztled = 0
Autoled = 0

H = 0
M = 0
E1 = 1
E2 = 1
H = 0
M = 0

F = 0
G = 0

Rem teljes kitolás

F12 = 1
While F12 = 1
Waitms 300
F = H
G = M
Waitms 305
If F = H Then                                               ' motor 1 figyeli hogy adott időn belül jön e impulzus ha nem akkor megállítja
Riaszt = 0
Motorled = 1
E1 = 0
F12 = 0
Else
Motorled = 0
E1 = 1
F12 = 1
End If
If G = M Then                                               ' motor 2  figyeli hogy adott időn belül jön e impulzus ha nem akkor megállítja
Riaszt = 0
Motorled = 1
E2 = 0
Else
Motorled = 0
E2 = 1
F12 = 1
End If
Wend
F12 = 0
Motorled = 0
Riaszt = 1
H = 0
M = 0

E1 = 1
E2 = 1
H = 10000
M = 10000
F = 10000
G = 10000


Rem teljes visszahúzás

L12 = 1
While L12 = 1
Waitms 300
F = H
G = M
Waitms 305
If F = H Then                                               ' motor 1
Riaszt = 0
Motorled = 1
E1 = 0
L12 = 0
Else
Motorled = 0
E1 = 1
L12 = 1
End If
If G = M Then                                               ' motor 2
Riaszt = 0
Motorled = 1
E2 = 0
Else
Motorled = 0
E2 = 1
L12 = 1
End If
Wend
L12 = 0
Motorled = 0
Riaszt = 1

Rem max érték kiszámítása

E2 = 0
E1 = 0
Waitms 30
I = H
Hmax = 9960 - I
J = M
Mmax = 9960 - J

Rem kitolás 40 impulzusig

Hmin = 40
Mmin = 40
'E2 = 1
'E1 = 1
H = 0
M = 0
While H <> Hmin
E2 = 0
E1 = 1
F12 = 1
Wend
F12 = 0

While M <> Mmin
E1 = 0
E2 = 1
F12 = 1
Wend
F12 = 0

E1 = 0
E2 = 0

Rem kalibráció vége

'Writeeeprom
'Writeeeprom
Stop Adc
W = 0
Z = 0
Start Adc

G = 0
U = 0
Stopflag = 0
Stopflag1 = 0
' Főprogram  <><><><><><><><><><><> <><><><><><><><><><><>
Do
 Start Watchdog

If Pind.1 = 1 Or Stopflag = 1 Or Stopflag1 = 1 Then
Call Fazissub
Else
Riasztled = 0
If Tapled = 0 Then
Riaszt = 1
End If
K = 0
Rem fazis esetén motorok fel start

Incr U
If U = 2 Then G = M
If Sk = 1 Then
Lfazis = 0
If U = 200 And M = G And E2 = 1 Then                        ' motor 2  figyeli hogy adott időn belül jön e impulzus ha nem akkor megállítja
Motorled = 1
Stopflag = 1
E2 = 0
U = 0
End If
If Stopflag = 0 Then
F12 = 1
If M < Mmax Then
E2 = 1
End If
If M = Mmax Then
E2 = 0
End If
If M > Mmax Then
E2 = 0
End If
Else
E2 = 0
End If
End If

Incr A
If A = 2 Then D = H
If Sk = 1 Then
Lfazis = 0
If A = 200 And H = D And E1 = 1 Then                        ' motor 2  figyeli hogy adott időn belül jön e impulzus ha nem akkor megállítja
Motorled = 1
Stopflag1 = 1
E1 = 0
A = 0
End If
If Stopflag1 = 0 Then
F12 = 1
If H < Hmax Then
E1 = 1
End If
If H = Hmax Then
E1 = 0
End If
If H > Hmax Then
E1 = 0
End If
Else
E1 = 0
End If
End If


End If
Rem fazis esteén motorok fel vége

Call Adccurrent1(channel1 , W)
Call Adccurrent2(channel2 , Z)
Call Adccurrent3(channel3 , X)
Call Adccurrent4(channel4 , Y)

If Sk = 0 Then
Keziled = 0
Autoled = 1
Call Gomb
Else
Keziled = 1
Autoled = 0
End If



Reset Watchdog
Loop
Rem főprogream vége <><><><><><><><><><><> <><><><><><><><><><><>


' INT-ek ------------------
1s1:
If F12 = 1 Then Incr H
If 1leout = 1 Then Decr H
Return

1s2:
If F12 = 1 Then Incr M
If 1leout = 1 Then Decr M
Return


' SUBRUTINOK ----------------------
Sub Adccurrent1(byref Channel1 As Word , W As Word )        ' adc 1 sub
W = 0
W = Getadc(channel1)
If W >= 350 Then
E1 = 0
Motorled = 1
End If
End Sub

Sub Adccurrent2(byref Channel2 As Word , Z As Word )        ' adc 2 sub
Z = 0
Z = Getadc(channel2)
If Z > 350 Then
E2 = 0
Motorled = 1
End If
End Sub

Sub Adccurrent3(byref Channel3 As Word , X As Word )        ' adc 3 sub

X = 0
X = Getadc(channel3)

If X >= 500 Then Akkuled = 0 Else Akkuled = 1               ' riasztas
If X <= 500 Then Riaszt = 0

End Sub

Sub Adccurrent4(byref Channel4 As Word , Y As Word )        ' adc 4 sub

Y = 0
Y = Getadc(channel4)

If Y >= 550 Then Tapled = 0 Else Tapled = 1
If Y <= 550 Then Riaszt = 0
                                                      ' riasztas
End Sub

Sub Gomb

Lfazis = 0

If Fgomb = 0 Then
Lfazis = 0
L12 = 0
F12 = 1
   If M < Mmax Then
   E2 = 1
   End If
   If M = Mmax Then
   E2 = 0
   End If
   If M > Mmax Then
   E2 = 0
   End If
Else
If Lgomb = 1 Then E2 = 0
End If


If Lgomb = 0 Then
Lfazis = 0
F12 = 0
L12 = 1
   If M > Mmin Then
   E2 = 1
   End If
   If M <= Mmin Then
   E2 = 0
   End If
Else
If Fgomb = 1 Then E2 = 0
End If

If Fgomb = 0 Then
Lfazis = 0
L12 = 0
F12 = 1
   If H < Hmax Then
   E1 = 1
   End If
   If H = Hmax Then
   E1 = 0
   End If
   If H > Hmax Then
   E1 = 0
   End If
Else
If Lgomb = 1 Then E1 = 0
End If


If Lgomb = 0 Then
Lfazis = 0
F12 = 0
L12 = 1
   If H > Hmin Then
   E1 = 1
   End If
   If H <= Hmin Then
   E1 = 0
   End If
Else
If Fgomb = 1 Then E1 = 0
End If

End Sub

Sub Fazissub
Riasztled = 1
If Sk = 0 Then
Lfazis = 0
Else
Lfazis = 1
F12 = 0
L12 = 0
End If

' ha automata módban van akkor a motorok leengedése a min értékig
If Sk = 1 Then
If M > Mmin Then
E2 = 1
End If
If M <= Mmin Then
If Sk = 0 Then
E2 = 1
Else
E2 = 0
End If
End If
End If


If Sk = 1 Then
If H > Hmin Then
E1 = 1
End If
If H <= Hmin Then
If Sk = 0 Then
E1 = 1
Else
E1 = 0
End If
End If
End If

If K > 1 Or K < 1 Then Portb.5 = 0
If K = 2 Then K = 0

If Pind.3 = 0 And Portb.5 = 0 Then K = K + 1
If K = 1 Then Portb.5 = 1

If K > 1 Or K < 1 Then Portb.5 = 0
If K = 2 Then K = 0

End Sub


End
minden gomb prellé ellen védve van fel van húzva ellenálással és kondizva.

deeddig ezt nem csinálta.

Villám nem sújtott csak kültéren lessz a cumó IP65-ös védetségű dobozba van szerelve, érdekelne hogy mi történik vele ha közel villámlik .
Villámvédelem: beindukálódik a vezetékbe -> a Chip bemeneten tápfesz +0,3V lehet adatlap szerint...
Ide szupresszor és/vagy PKE sorozatú dióda, uni vagy bipoláris. Unipoláris esetén + védődióda kell.
Direkt villámlás ellen NINCS védelem. Másodlagos hatás ellen a benylet energia függvénye. De jellemzően szupresszor, szikraköz és áramkörcsere....
Szupresszor helyet zénert használok nagyon tág a fesz köszöbje! egy 5v-osnak akár 7-9v is lehet. ezért 5.1 zénert használok.

tápfesz ingadozás nem lehet.
az 5v 20mv a tüske maxon a digi szkópom szerint.
stacket teh mondtad mennyi legyen.
fusebitek közzül egy sincs beállítva az avr studioban.
external cristal van 16k +64ms.
A hozzászólást 1 alkalommal szerkesztették, utoljára szovhoz 2008. augusztus 7. csütörtök, 12:02-kor.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hibás kapcsoló; panelen rövidzár.
Hibás tápszűrés.


Villámláskor: SRAM véletlenszerű adat íródik be, hülyeséget csinál. Programfutás eltéved.
Tápot és ki-/bemeneteket dédeni, ha hosszú kábel lóg rajta.
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

Kimenetek védve vannak szupresszor + dióda.
Bemenetek zéner diódás védelememel vannak ellátva.
ez így jó szerinted?

táp szűrése tökéletes.
panelon nincs rövid zár.
a kapcsoló nem hibás mert még nincs is beszerelve :D csak egy csipesszel zárom öössze a lábait egyenlőre, ha tökéletes akkor fogom csak beszerelni.

a gombon 100nf kondivan de ha még rá teszek egy 330n-t akkor azonnal befagy a gomb nyomás után a nélkül sokat kell nyomkodni hogy befagyon.
a gomb 4.7kohm-ossal van fel húzva.

a külső kristály 16mhz-es.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Csipesz: gyártja a prellt!

Ki/bemenetek ilyen védelme jó. Ha nagyobb villám van, akkor megőrül/meghal úgyis.
FONTOS! Vészleállító gomb, illetve áramtalanításkor mi történik? Vészhelyzet kezelésre fel van készítve a rendszer?


Esetleg valamelyik ki/bemeneti lábon nincsen rövidzár?
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

rövidzár nincs!

a csipesszel nyomkodtam a nyákon a lábakat eddig is és tegnap este adta a fejéát fel ez a dolog.
aróta ezzel sz...!

csak ablakokat mozgat áramkimaradás esetén, de aksikkal fel van vértezve az egész rendszer, automata aksi töltő rendszerrel vanaak felépítve.

watchdog benne van. illetve egy kis attiny külön felel a risztásért de ha az kinyiffan akkor is riaszt.

stack nem kevés azokat ne növeljem illyetve a softvareben van probléma vagy nincs?

pont azt teszi amit kell a rendszer ez az egy hiba hogy szegény újra indul valamiért!!
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

a probléma kiiktatva!

A megoldás a gnd vezetékelés benem tartása volt. potenciál külömbség alakult ki.
mivel a gnd csomópont a proci alól indul ennek az egy nyomógombnak a gnd 10 cm vel előtte csatoltam le!!!!

tehát erre figyeljen oda mindenki!

:D :D :D ezt soha nem gondpoltam volna!!!

De mindíg tanul az ember! ez Mérnöki munka volt!

Jah és a skopon se láttunk semmi hibát!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Azért 10 táv nem okozhat ilyet. Ott valószínű valami gerjedés is lehet, az meg beindukált! A vezérlések és egyeben nincsenek hosszú madzagon? nem kavar az is be?
A felhúzóellenállás igaz a chipnél van, és nem a távoli nyomógombon?
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

Egy fontos kérdésem lenne még.

a proci két int bementére egy egy reed relé kapcsolódik és a láb meg a relé közt 20-25 méter vezeték lessz.
elegendő e a 1500ohm-os ellenálás rá?
mivel a párásodástól szeretném meg védeni vagy mekkorát tegyekk ennek a leendő problémának a kiküszöbölésére?

ha értitek mire gondolok. Köszi!
Válasz küldése