 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14466 Aktiv.: 66.99 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Sep 14, 2023 11:29 pm Naslov sporočila: Mega48 - crknil ram |
|
|
Saj ni res - pa je...
Precej časa nazaj sem delal en regulator za kolega z M48. ( v funkciji sta 2 enaka - stvar obratuje 24h na dan kake dve leti)
Včeraj mi prinese enega in pravi da ne dela. Stvar priklopim na programator - verify pravi da je vsebina ok. Ok zamenjam LCD. (uporabljen 4 vrstični displej z HD44780 komatibilnim kontrolerjem) - tema- displeja ne inicializira OK mikrokontroler je v DIL ohišju na podnožju. Ga zamenjam in sprogramiram. Zadeva starta.
Še enkrat star mikrokontroler na ploščo - misleč slab stik na podožju - ne dela
Ker me je zanimalo kaj se je zgodilo - a je odneslo kak pin sem ga dal na testno ploščo. Spišem preprost program - vse pine na izhod - nizko stanje. Preverim - vsi pini so nizki. Ok potem menjam stanje - pine na visoko.... Vsi pini so visoki ...kaj še enkrat obrišem procesor ter potisnjem v njega program od regulatorja. Ne dela
Kaj zdaj - spišem blinky start nizko stanje. Ledica ostane ugasnjena. Menjam sanje startno stanje visoko - ledica ostane prižgana... Kaj se dogaja? Pavzo kličem z "rcall". Probam dati kodo za pavzo direk v zanko. Blinka Kaj to pomeni? Sklad? Po klicu "rcall" ne zna nazaj? Gledam - sklad je pravilno napovedan.
Ok za štos ga premaknem nižje. Probam prvotno testno kodo z rcall.
Stvar deluje. To pomeni, da je ram na koncu okvarjen
Tole sem prvič doživel. Je imel že kdo podoben problem?
Testna ASM koda.
Koda: |
;*************************************
;M48 testni program
;
;*************************************
.include "M48padef.inc"
.def tmp=r16
.org 0x0
rjmp GlProg
.org INT_VECTORS_SIZE
GlProg:
// ldi tmp,low(RAMEND) ;konec rama za m48 0x2ff default sklad - ne dela
ldi tmp,low(0x200) ;premaknjen sklad - dela
out SPL,tmp
// ldi tmp,high(RAMEND)
ldi tmp,high(0x200)
out SPH,tmp
ldi tmp,0xff
out DDRB,tmp ;portb izhodi
out PORTB,tmp ;visoko stanje
Prg2:
ldi tmp,0xff
out PORTB,tmp
rcall Pavza100mS
clr tmp
out PORTB,tmp
rcall Pavza100mS
rjmp Prg2
;-----------------------------------------------------------
;Pavza 100mS Oscilator 8Mhz
;-----------------------------------------------------------
Pavza100mS:
push r20
push r21
push r22
ldi r20,235
ldi r21,15
ldi r22,5
P_zanka:
dec r20
brne P_zanka
dec r21
brne P_zanka
dec r22
brne P_zanka
pop r22
pop r21
pop r20
nop
nop
ret
|
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
bostjang Član

Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 2971 Aktiv.: 13.76 Kraj: Postojna
|
Objavljeno: Pet Sep 15, 2023 3:48 pm Naslov sporočila: |
|
|
Mogoče manj čudno:
Pred par leti sem imel opravka z avtoradiem, ki ni delal oz. je imel čudne simptome. Napako sem lociral na EEPROM na I2C vodilu. Spremljal sem komunikacijo na vodilu in videl, da nekaj vpisuje v EEPROM, prebere pa drugačne vrednosti. Pri EEPROMu je bilo nekaj lokacij zanič. Preostalo vsebino sem skopiral v novega in ga vgradil. Stvar dela s prve. Zanimivo je, da niti ni tako pomembna točna začetna vsebina tistih lokacij.
Kot kaže MCU redno nekaj piše po EEPROMu in ga v letih scikla. |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14466 Aktiv.: 66.99 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pet Sep 15, 2023 6:40 pm Naslov sporočila: |
|
|
bostjang je napisal/a: |
....
Kot kaže MCU redno nekaj piše po EEPROMu in ga v letih scikla. |
Eeprom ima deklarirano število vpisov. Poznam primer, ko je znanec delal avtomatiko za rolo vrata. Malo nerodno se je lotil zadeve. Hotel je, da se zapomni pozicija vrat, če slučano zmanjka elektrike. Ko so se vrata premikala je vseskozi to zapisoval v eeprom. Po mesecu dni je zadeva odpovedala.
Sam sem doživel nekaj podobnega z temperaturnim senzorjem DS1620. Le ta lahko deluje samostojno kot termostat. Naredil sem kar nekaj cevnih termostatov za centralno kurjavo. Zraven sem naredil vmesnik z displejem in tipkami, ki je služil za nastavitev in se je lahko snel. Naredil sem bedarijo - ob branju temperature sem v zanki pozabil vpis za nastavitve zgornje in spodnje meje. Najprej mi je kolega zatežil, da ne gre več prestavljati nastavitve. Zamenjal sem senzor. Zadeva je spet delala. Ko se je to zgodilo drugič sem postal pozoren. Pri meni je stvar delala brezhibno. Sam namreč nisem imel nameščenega vmesnika za nastavitev. Kolega je imel vmesnik skoz gor.
Kasneje sem v datashetu prebral da ima DS1620 deklarirano 40 ali 50k vpisov v eeprom.  _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 133 dni
Powered by phpBB © 2001, 2005 phpBB Group
|