PIC16F1847 a falesne spinani vstupnich pinu na portu RA

Andrej Jancura aj.hwlist na gmail.com
Pondělí Květen 27 18:23:05 CEST 2013


Ahoj Jaromir,

Dňa 27. mája 2013 17:34, Jaromir Sukuba <jarin.hw na gmail.com> napísal(-a):

> Andy,
> softwarovu chybu - teda co sa tyka nastavenia periferii mozeme viacmene
> vylucit. Ba dokonca si myslim, ze si kolegu Sulu zaviedol nespravnou cestou.
> Ak by boli zapnute capsense vstupy (ktore udajne strkaju uplne vsade) tak
> by sa to samozrejme neprejavilo pri citani z PORT vstupov. Su v zasade dve
> metody, ktore Microchip pouziva pre touch sense apliackie - ale ani jedna
> nefunguje tak, ze nieke zapnes nejaky bit a potom citas stav touch sense
> vstupov v PORT registri. Je to pomerne zlozite na nastavenie a
> vyhodnotenie, stav sa cita ako hodnota nejakej premennej a tuto musis
> filtrovat a porovnavat. Odporucam precitat si appnotes od Micrchipu.
> Ak by bol problem s prepnutim analogovych/digitalnych vstupov, tak by sa
> opat neprejavil - analogovy vstup vracia pri digitalnom citani (PORT
> registre) stale hodnotu 0.
> Ak by bol problem s LVP, tak by sa PICko divoko resetovalo.
> Ak by bol problem s pull-upmi zapnutymi na porte B, tak by bol problem na
> porte B a nie na porte A.
>
>

Myslim si, ze treba pozriet naozaj vsetky nastavenia, pretoze to uz nie je
pic16f84, ktory mal interny oscilator a krystal, nemal ziadne periferie a
stacilo ho pripojit na napajanie aby zacal bezat. Pri tychto novych treba
pozriet vsetko, konfiguraciu, oscilator, na portoch nastavovat 3 ci 4
funkcie a podobne. To musis mat ten datasheet precitany spredu aj zozadu...
Co sa tyka toho mTouch modulu, tak pokial som pochopil spravne jeho
funkciu, tak pri zapnuti tlaci a odsava z prislusneho pinu periodicky prud
-> mohli sa menit stavy na porte. No a pokial bude tuto chybu vykazovat aj
minimalisticka verzia hw, t.j. 4 tlacitka a max232, tak to budem brat ako
vlastnost technologie. Ale myslim si, ze to by vykazovali aj 3V ARM-y a
nikto by s takymi cipmi nerobil.

S tym kondenzatorom - neboj mam predstavu o tom ako to s tym kondikom
> funguje :-)
>
> Problem je inde - skratka CMOS vstupy su citlive na ESD eventy. Zatlcenie
> 4k7 odporom pomoze, ale nie vseobjimajuco. Zatlcenie 100nF kondikom
> evidentne pomohlo viac- pretoze do znacnej miery absorboval naboj prineseny
> skrutkovacom. Takisto by pomohol transil, trebars P6KE6V8. A este nejaky
> seriovy odpor by bol fajn.
>

Ako som uz pisal, mat na kazdom pine filtracny kond a to este s kapacitou
100nF je uplna blbost. Vies kolko low-cost veci je postavenych na tom, ze
tam PIC nema ziadnu ochranu, pretoze kazdy pol-cent je nekonecne velky
problem?


>
> To, ze to nerobilo s 16F628 je dane tym, ze 16F628 je pomerne stary obvod,
> bol robeny "hrubsou" technologiou. 16F1847 je robeny novsou (ved aj interne
> bezi na 3V ci kolko), tym padom ma aj mensiu toleranciu k takej nesmiernej
> hrubosti ako je tukanie po pinoch skrutkovacom, ktory je nabity nabojom z
> ludskeho tela.
>

Myslim si, ze srobovak sa nenabije nabojom 100nF. Vies si to predstavit, co
je to za pecka, ked ho vybijes do pinu? Pokial sa pamatam, tak model ESD
generatora ma 150pF... Aj ked teda najnovsie normy som uz nevidel.


>
> Riesenim je osetrit vstup na ESD a software si urobit tak, aby stlacene
> tlacidlo neregistroval pri kazdom zakaslani - ale tak to malo byt urobene
> uz pre ten PIC16F628.
>

S tymto s Tebou suhlasim...

A.


>
>
> 2013/5/27 Andrej Jancura <aj.hwlist na gmail.com>
>
>> Ahoj,
>>
>> 2013/5/27 Jaromir Sukuba <jarin.hw na gmail.com>
>>
>>> To mate pravdu - ale nejaky debouncing je predsa absolutne samozrejma
>>> vec, ktoru sa ucia deti v skolke, nie? ;-) (samozrejme, ze nie - staci si
>>> prezriet internetove fora)
>>> Tu kolegovia hladaju zapnute / vypnute nejake periferie, co je IMHO
>>> celkom mimo.
>>>
>>
>> Pokial mas na mysli mna, tak som chcel vylucit chybu v softe v
>> minimalistickej aplikacii. Lebo ako hovori skusenost, najviac chyb je medzi
>> stolickou a klavesnicou...
>>
>>
>>>
>>> Okrem toho skrtat skrutkovacom po pinoch prinasa rozlicne vysledky -
>>> podla toho co mate oblecene, na com sedite/stojite/lezite, aka je vlhkost
>>> vzduchu a tak.
>>> Takze najprv to osetrit na EMC (kondik, transil) - co je vec, ktora musi
>>> ist na akekolvek tlacidlo - a potom sa pripadne pohrat s debouncingom aby
>>> bol viac ci menej citlivy na "rusenie".
>>>
>>
>> No pokial mas na mysli kapacitu 100nF, ako si tu prezentoval, tak si
>> myslim, ze nemas predstavu co za rusivy impulz tym kondikom vobec pohne. A
>> to nehovorim o tom, ze tam mas vysokoimpedancny vstup IO pinu zatlmeny
>> odporom 4k7. To na vzdusne vyboje dotykom srobovaka urcite reagovat nebude
>> (pokial cosi samozrejme nevyskratujes). Si skor myslim, ze tam je nejaka
>> funkcna chyba ako EMC. Tipujem nieco s LVP, nieco okolo tych pull-upov a
>> toho mTouch... No ale vsak on nam to kolega snad prezradi, ked to rozchodi.
>>
>> A.
>>
>>
>>
>>>
>>>
>>> 2013/5/27 Pavel Hudecek <edizon na seznam.cz>
>>>
>>>> No, ne tak docela. V mých zařízeních mám vstupy SW ošetřené tak, že se
>>>> podobné problémy nedějí, přestože výchozí hodnotu definuje odpor řádově
>>>> vyšší. Pinzetu k testování používám často a dokud piny skutečně nespojím,
>>>> "stisk tlačítka" se nekoná.
>>>>
>>>> Nejčastěji používám něco v tomto stylu:
>>>>
>>>> Program v pravidelných intervalech, nejčastěji 1/ms kontroluje hodnotu.
>>>> Pamatuje si původní stav a má-li dojít ke změně, musí nový stav detekovat v
>>>> souvislé řadě, např. 16x za sebou.
>>>>
>>>> Skutečnou EMC odolnost lze dále zvýšit přítomností C paralelně ke
>>>> vstupu, ale jak již bylo řečeno, nesmí se zapomenout na další R, který
>>>> ochrání tlačítko před postupným zničením.
>>>>
>>>> PH
>>>>
>>>> From: "Jaromir Sukuba" <jarin.hw na gmail.com>
>>>>
>>>> Mozno som nieco zasadne prehliadol, ale - to, ze po skrkani
>>>> skrutkovacom po
>>>> IO pinoch dochadza k bezhlavemu skakaniu logickych hodnot snad nema nic
>>>> spolocne so softwarovymi zalezitostami.
>>>> To, co s tym skrutkovacom robite je EMC testovanie z ktoreho vyplvya iba
>>>> to, ze na IO piny sa nesiaha bez adekvatnej ochrany. Tym 100nF kondikom
>>>> bol
>>>> vykonany prvy krok.
>>>>
>>>> 2013/5/27 Milos Sula <sula na rps.cz>
>>>>
>>>>> Tak jsem otočil polaritu spínání, a teď spínám proti GND a problém
>>>>> přetrvává. Jediné co pomohlo je 100nF paralelně na tlačítko.
>>>>> ANSEL  a komparátory jsou vypnuté ( vysledny ASM jsem nezkoumal -
>>>>> nevyznám
>>>>> se v tom, debugovat nelze - mám jen PICKIT2 ), ale přikládám pro
>>>>> jistotu
>>>>> .lst. Kapacitní snímače mě také napadly, ale nikde je nezapínám a
>>>>> pokud je
>>>>> v ccsc neinicializuji, tak by měli zůstat vypnuté ....
>>>>>
>>>>> .................... SET_TRIS_B(0b11111000);
>>>>> 0289:  MOVLW  F8
>>>>> 028A:  TRIS   6
>>>>> .................... SET_TRIS_A(0b00111110);
>>>>> 028B:  MOVLW  3E
>>>>> 028C:  TRIS   5
>>>>> .................... port_b_pullups(0b11111000);
>>>>> 028D:  MOVLW  F8
>>>>> 028E:  MOVLB  04
>>>>> 028F:  MOVWF  0D
>>>>> 0290:  MOVLB  01
>>>>> 0291:  BCF    15.7
>>>>> ....................
>>>>> .................... setup_adc( ADC_OFF );
>>>>> 0292:  BCF    1D.0
>>>>> .................... setup_adc_ports(NO_ANALOGS);
>>>>> 0293:  BCF    1E.0
>>>>> 0294:  BCF    1E.1
>>>>> 0295:  BCF    1E.2
>>>>> 0296:  MOVLW  00
>>>>> 0297:  MOVLB  03
>>>>> 0298:  MOVWF  0C
>>>>> 0299:  MOVWF  0D
>>>>> .................... setup_comparator(NC_NC_NC_NC );
>>>>> 029A:  MOVLB  02
>>>>> 029B:  CLRF   12
>>>>> 029C:  CLRF   11
>>>>> 029D:  CLRF   14
>>>>> 029E:  CLRF   13
>>>>>
>>>>> Dne 27.5.2013 12:41, Andrej Jancura napsal(a):
>>>>>
>>>>>> tiez si myslim, ze je cosi zle nastavene. Okrem registrov TRIS, treba
>>>>>>
>>>>>> este nastavit analogove piny ( register ANSEL), pripadne vypnut
>>>>>> komparatory
>>>>>> a hlavne sa pozriet ci tam nie su zapnute kapacitne snimace CAPSense
>>>>>> mTouch. Tie totiz strkaju uplne vsade, aj tam, kde ich netreba.
>>>>>>
>>>>>
>>>> ______________________________**_________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/**listinfo/hw-list<http://list.hw.cz/mailman/listinfo/hw-list>
>>>>
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130527/d1b2a5c6/attachment.htm>


Další informace o konferenci Hw-list