[elektro] Mikrokontroller kimenet "megvédése" a resettől?

hg12345 hg12345 at freemail.hu
Wed Aug 3 21:30:25 CEST 2016


Annyira nem követtem a dolgokat.

 program elmászására a legjobb megoldás, ha szabad helyeket, pl NOP feltöltöd, és a legutolsó címre irsz egy ugrás ami nem a "0" mutat, hanem egy korrekt előfeldolgozóra és innen indítod a resetet..

Ha ez egy PC felügyeletét látja el, akkor a uC feladta akkor a PC már régen szétfagyott, portok leálltak, driverek csak félig használtak.... Ilyen esetben sokkol jobban jársz egy megfelelő zavarszűrt környezet előállításával, az korrekt....


Karoly Kovacs <koka55 at gmx.at> írta:
>De hát már (párszor) megírtam: Atmega 328 (Arduino).
>
>Károly
>
>hg12345 wrote:
>> Egyáltalán ez milyen kontroller.
>> mert egy ARM van vagy 7 fajta reset és nem mindegyik működik azonos módon.
>> Az ugrás nullára pl. egy ARM-ben valószínűleg nem szerencsés mert ott nincs semmilyen utasítás maximum egy HARD-ERROR-t tudsz generálni. Valószínűleg a legtobb 16 és 32 bites kontroller aminek már van HW hiba detektálása hasonlóan fog működni.
>>
>> De kis kontroller esetén a HW reset (Watchdog) a stackpointer is alaphelyzetbe állítja a PC-n kívül és statusz regisztert is, (további lehetőségek index és egyéb kiegészítő regiszterek) és ha olyan a kontroller, akkor minden portot bementenek fordít. Ezzel szemben az ugrás nullára nem csinál semmit, az SP utána nem állítod, akkor kis szerencsével a sok ugrálás után elfogy a stack memóriád.... (egy kellemetlen "memory leakage" okozva)
>>
>> üdv
>>
>>
>> Karoly Kovacs <koka55 at gmx.at> írta:
>>> Mire gondolsz?
>>> Mind a kettő software reset, csak más módszerrel történik.
>>>
>>> Károly
>>>
>>> Acs Gabor wrote:
>>>> Mert az egyik reset, a másik nem?
>>>>
>>>>
>>>> Gábor
>>>>
>>>> 2016.08.03. 10:23 keltezéssel, Karoly Kovacs írta:
>>>>> Apró érdekesség, és nem tudok rájönni, mi okozza.
>>>>> Ha "dirty" módszerrel resetelek (ugrás a 0-ás címre), akkor minden
>>>>> oké, de az interneten mindenütt ajánlott tiszta módszer (Watchdog-gal
>>>>> resetelni) nálam nem működik. Pontosabban túl jól működik: reseteli a
>>>>> portokat is. A WDT reset biztosan csinál valami pluszt is,
>>>>> valószínűleg nagyon részletesen el kellene olvasnom az Atmega 328-as
>>>>> doksikat.
>>>>> De különösebben nem hoz lázba ez a "hiba", megelégszem a piszkos
>>>>> módszerrel. :)
>>>>>
>>>>> Károly
>>>>>
>>>>> Pataki István wrote:
>>>>>> OK! Megzavart a "reset" szó, ami nálam főleg hardver resetet jelent, bár
>>>>>> én is használok olyan eszközöket, amikben akár többszintű is lehet a
>>>>>> "reset"-nek nevezett (szoftver) funkció.
>>>>>>
>>>>>> pi
>>>>>>
>>>>>>
>>>>>> ----- Original Message ----- From: "Karoly Kovacs" <koka55 at gmx.at>
>>>>>> To: <elektro at tesla.hu>
>>>>>> Sent: Tuesday, August 02, 2016 9:51 PM
>>>>>> Subject: Re: [elektro] Mikrokontroller kimenet "megvédése" a resettől?
>>>>>>
>>>>>>
>>>>>>> Pista!
>>>>>>>
>>>>>>> De hát már írtam, hogy megoldódott!
>>>>>>> És a biztonság kedvéért "megfejeltem" a Jóska által ajánlott kondival.
>>>>>>> Úgy tűnik, stabil.
>>>>>>>
>>>>>>> Köszi mindenkinek!
>>>>>>> Károly
>>>>>>>
>>>>>>> Pataki István wrote:
>>>>>>>> Az itt felvetett megoldások nagyon különböző eredményre vezetnek. Amíg
>>>>>>>> nincsen definiálva pontosan a feladat, csak találgatás szintjén
>>>>>>>> megy az
>>>>>>>> ötletelés.
>>>>>>>>
>>>>>>>> pi
>>>>>>>>
>>>>>>>>
>>>>>>>> ----- Original Message ----- From: "Karoly Kovacs" <koka55 at gmx.at>
>>>>>>>> To: <elektro at tesla.hu>
>>>>>>>> Sent: Tuesday, August 02, 2016 12:09 PM
>>>>>>>> Subject: Re: [elektro] Mikrokontroller kimenet "megvédése" a resettől?
>>>>>>>>
>>>>>>>>
>>>>>>>>> Nem zártam ki, lehet, hogy rosszul fogalmaztam.
>>>>>>>>> Nem a sw resetet zártam ki, hanem azt vontam kétségbe, hogy
>>>>>>>>> szoftveresen megoldható ez a probléma.
>>>>>>>>>
>>>>>>>>> Károly
>>>>>>>>>
>>>>>>>>> Pataki István wrote:
>>>>>>>>>> Az indító kérdésben magad zártad ki a sw resetet:)
>>>>>>>>>>
>>>>>>>>>> Az biztos, hogy nem azonos a hard resettel, de mindig meg kell
>>>>>>>>>> nézni a
>>>>>>>>>> vezérlő adatlapjában. De ha jól értem, te csak a szoftvert akarod
>>>>>>>>>> újraindítani valami miatt, amiről azonban nem írtál, pedig fontos,
>>>>>>>>>> mert
>>>>>>>>>> az határozza meg, hogy hard vagy szoft beavatkozásra van-e szükség!
>>>>>>>>>>
>>>>>>>>>> pi
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ----- Original Message ----- From: "Karoly Kovacs" <koka55 at gmx.at>
>>>>>>>>>> To: <elektro at tesla.hu>
>>>>>>>>>> Sent: Tuesday, August 02, 2016 7:53 AM
>>>>>>>>>> Subject: Re: [elektro] Mikrokontroller kimenet "megvédése" a
>>>>>>>>>> resettől?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Na, megmértem szkóppal. Lehet, hogy nem is kell semmit csinálnom.
>>>>>>>>>>> Ha a Setup részben (Arduinoról van szó) csak az áll, hogy:
>>>>>>>>>>> pinMode(TRIAK_PIN, OUTPUT);
>>>>>>>>>>> azaz, ha ott nem állítom be a szintet (LOW vagy HIGH), hanem
>>>>>>>>>>> magában a
>>>>>>>>>>> programban állítgatom, és a resetet így definiálom:
>>>>>>>>>>> void(* resetFunc) (void) = 0;
>>>>>>>>>>> majd a megfelelő helyen felhívom, akkor nem csinál semmit az output
>>>>>>>>>>> porttal. Juhééééé! :)
>>>>>>>>>>> (Ha hw resetet csinálok, akkor természetesen mindent resetel.)
>>>>>>>>>>>
>>>>>>>>>>> Károly
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Karoly Kovacs wrote:
>>>>>>>>>>>> Sőt, még egyszerűbbet találtam: RS tároló. (Illetve a kényelem
>>>>>>>>>>>> és a
>>>>>>>>>>>> biztonség kedvéért egy 74HC74 vagy egy 4013 D tároló).
>>>>>>>>>>>> Van ugyanis elegendő szabad kimenetem a mikrokontrolleren, így
>>>>>>>>>>>> simán meg
>>>>>>>>>>>> tudom oldani, hogy a tároló R és S bemeneteit billegetem, nem baj,
>>>>>>>>>>>> hogy
>>>>>>>>>>>> két kimenetet használok fel e célra. Ekkor nem is kell
>>>>>>>>>>>> vacakolnom a
>>>>>>>>>>>> Watchdoggal.
>>>>>>>>>>>>
>>>>>>>>>>>> Károly
>>>>>>>>>>>>
>>>>>>>>>>>> Pataki István wrote:
>>>>>>>>>>>>> Szerintem is ezzel oldható meg a feladat, amennyiben az a
>>>>>>>>>>>>> specifikáció,
>>>>>>>>>>>>> hogy a bekapcsolt állapotot ne szakítsa meg egy adott
>>>>>>>>>>>>> időtartamot nem
>>>>>>>>>>>>> túllépő reset állapot. A leírásból az látszik, hogy kikapcsolt
>>>>>>>>>>>>> állapotban nincsen dolga a védelemnek, a felhúzó ellenállás
>>>>>>>>>>>>> ezt nem
>>>>>>>>>>>>> teljesíti.
>>>>>>>>>>>>>
>>>>>>>>>>>>> pi
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> ----- Original Message ----- From: "Karoly Kovacs"
>>>>>>>>>>>>> <koka55 at gmx.at>
>>>>>>>>>>>>> To: <elektro at tesla.hu>
>>>>>>>>>>>>> Sent: Monday, August 01, 2016 10:56 PM
>>>>>>>>>>>>> Subject: Re: [elektro] Mikrokontroller kimenet "megvédése" a
>>>>>>>>>>>>> resettől?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Horvath Janos wrote:
>>>>>>>>>>>>>>> Reset alatt nem 0-ban van, hanem lebeg.
>>>>>>>>>>>>>> Ja, igen igazad van!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Közben arra gondoltam, hogy mi lenne, ha a kimeneten egy 555-ös
>>>>>>>>>>>>>> monostabilt alakítanék ki (ez hajtaná aztán az optocsatolón
>>>>>>>>>>>>>> keresztül
>>>>>>>>>>>>>> a Triakot), ezt a monostabilt pedig Watchdog-gal lökdösném? Ez
>>>>>>>>>>>>>> szerintem tuti biztosan 1-ben marad (a monostabil
>>>>>>>>>>>>>> időállandójáig),
>>>>>>>>>>>>>> akármilyen reset esetén is.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Károly
>>>>>>>>>>>>>
>>>>>>>>>>>>> -----------------------------------------
>>>>>>>>>>>>>          elektro[-flame|-etc]
>>>>>>>>>>>>
>>>>>>>>>>>> -----------------------------------------
>>>>>>>>>>>>          elektro[-flame|-etc]
>>>>>>>>>>>
>>>>>>>>>>> -----------------------------------------
>>>>>>>>>>>          elektro[-flame|-etc]
>>>>>>>>>>
>>>>>>>>>> -----------------------------------------
>>>>>>>>>>          elektro[-flame|-etc]
>>>>>>>>>
>>>>>>>>> -----------------------------------------
>>>>>>>>>          elektro[-flame|-etc]
>>>>>>>>
>>>>>>>> -----------------------------------------
>>>>>>>>          elektro[-flame|-etc]
>>>>>>>
>>>>>>> -----------------------------------------
>>>>>>>          elektro[-flame|-etc]
>>>>>>
>>>>>> -----------------------------------------
>>>>>>          elektro[-flame|-etc]
>>>>>
>>>>> -----------------------------------------
>>>>>          elektro[-flame|-etc]
>>>>
>>>> -----------------------------------------
>>>>          elektro[-flame|-etc]
>>>
>>> -----------------------------------------
>>>          elektro[-flame|-etc]
>>
>> -----------------------------------------
>>           elektro[-flame|-etc]
>>
>
>-----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list