www.elektronik.si
Mega48 - crknil ram

www.elektronik.si -> AVR, LPC900, x51

Avtor: SilvoKraj: Koroška-okolica Dravograda PrispevekObjavljeno: Čet Sep 14, 2023 11:29 pm    Naslov sporočila:  Mega48 - crknil ram
----------------------------------------------------------------------------
Shocked
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 Shocked 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 Sad

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 Shocked ...kaj Twisted Evil še enkrat obrišem procesor ter potisnjem v njega program od regulatorja. Ne dela Confused
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 Surprised 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 Shocked
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

Avtor: bostjangKraj: Postojna PrispevekObjavljeno: 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.

Avtor: SilvoKraj: Koroška-okolica Dravograda PrispevekObjavljeno: 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. Shocked 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. Confused

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group