Sida 1 av 2
PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 16:05:01
av Erik M
Detta är texten som ofta (ex 12F615/683) dyker upp för (NOT_)MCLR:
4.2.2 WEAK PULL-UPS
Each of the GPIO pins, except GP3, has an individually
configurable internal weak pull-up. Control bits WPUx
enable or disable each pull-up. Refer to Register 4-4.
Each weak pull-up is automatically turned off when the
port pin is configured as an output. The pull-ups are
disabled on a Power-on Reset by the NOT_GPPU bit of the
OPTION register). A weak pull-up is automatically
enabled for GP3 when configured as NOT_MCLR and
disabled when GP3 is an I/O. There is no software
control of the NOT_MCLR pull-up.
BBCode för överstreck, någon?
Men vad säger det egentligen?
GP3 (för enkelhets skull) är väl en I/O redan från början?
Och då dessutom endast I(nput).
De inställningar jag kan hitta som förefaller inverka är:
(Det vill säga att övriga, som annars påverkar GPIO's, inte ändrar för GP3.)
CONFIG: _MCLRE_ON respektive _MCLRE_OFF
OPTION_REG, NOT_GPPU
Har jag missat någon?
Om ej - i vilken av dessa kombinationer får jag WPU på GP3?
A)
__CONFIG _MCLRE_ON
BCF OPTION_REG, NOT_GPPU
B)
__CONFIG _MCLRE_ON
BSF OPTION_REG, NOT_GPPU
C)
__CONFIG _MCLRE_OFF
BCF OPTION_REG, NOT_GPPU
D)
__CONFIG _MCLRE_OFF
BSF OPTION_REG, NOT_GPPU
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:17:57
av sodjan
> GP3 är väl en I/O redan från början?
> Och då dessutom endast I(nput).
Nej och Ja.
> Om ej - i vilken av dessa kombinationer får jag WPU på GP3?
C och D, lite snabbt...
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:23:59
av Klas-Kenny
Sodjan: Tvärtom, väl.
A weak pull-up is automatically
enabled for GP3 when configured as NOT_MCLR and
disabled when GP3 is an I/O.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:26:19
av Erik M
Tack, och det stämmer med vad jag får det till.
Förutom då möjligen att det förefaller som du säger att inställningen på OPTION_REG, NOT_GPPU inte spelar någon roll...?
GP3 är inte en I/O från början?
Hm, jag förutsätter att vi talar om efter den initierande CLRF GPIO instruktionen, korrekt?
Före det är den ingenting... väl?
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:29:09
av bearing
WPU på
\(\overline{MCLR}\)
Men som sagt, /MCLR eller !MCLR brukar användas. Vet
\(\overline{varför}\) du
\(\overline{vill}\) acceptera det.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:33:42
av Klas-Kenny
There is no software
control of the NOT_MCLR pull-up.
Så nej, de inställningarna spelar ingen roll. Kollar du bit-specifikationen för WPU-registret ser du att biten för GP3 står som "Unimplemented bit, read as '0'".
Och, GP3 är ju alltid en ingång, så vida man stängt av /MCLR-funktionen. CLRF GPIO som databladet säger att man ska köra direkt, är ju bara för att säkerställa att alla GPIO-bitar verkligen är noll efter reset (eftersom att man aldrig ska räkna med att bitarna är vad de "ska" om man inte själv satt dem till något specifikt i programkod). GP3 är som sagt
alltid en ingång om /MCLR är inaktiverad, kollar du bitspecifikationen för GPIO och TRISIO så ser du att i båda de registerna är biten för GP3 angiven som read-only, du kan inte skriva den till något särskilt utan den är vad den är.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:37:28
av Erik M
Ah, så kan man göra! Tack bearing.
(Din extra kommentar är ovidkommande då jag på intet vis inte accepterat de nu, om än ej tidigare, nämnda formerna.
Hade du istället skrivit "/MCLR eller !MCLR brukar användas." har det varit både hjälpsamt, konstruktivt och, framförallt, informativt.)
Alldeles riktigt Klas-Kenny, vilket jag oxå pekade på.
Samtidigt anges "A weak pull-up is automatically
enabled for GP3 when configured as NOT_MCLR
and
disabled when GP3 is an I/O.
Därav frågeställning hur GP3 har WPU när den
inte är en I/O men inte har WPU det när den är en I/O, det tillfälle när den kan ha användning, rent praktiskt då alltså, av en pullup...
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 17:49:02
av bearing
Jag skrev faktiskt så från början, men sen kom jag att tänka på att vi redan dragit detta en gång tidigare, när du använde genomstrykningar av MCLR. Dock hittar jag inte "beviset", så antagligen har jag skrivit ett sånt inlägg, men inte skickat det av någon anledning.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 20:08:21
av Erik M
Nå, nu har du hursomhaver gjort det. Tack.
Personligen skulle jag iofs föredra ¬, men det är jag det.
Vi kunde måhända sluppit kommentarerna, eh?
Summasumarum då, har GP3 en WPU som går att använda eller ej?
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 20:57:12
av slo
Nej
I databladet för "PIC12F609/615/617/12HV609/615" finns följande tabell på sida 4.
PIC12F1609.PNG
Där det tydligt framgår att GP3 kan användas som Input eller som ~MCLR när GP3 är konfigurerad som ~MCLR är Weak Pullup aktiverad, men inte när GP3 används som en General Input.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 21:03:46
av sodjan
> Sodjan: Tvärtom, väl.
Ja, på andra frågan blev det fel...

Pull-up är *på* när pinnen är "reset" och av annars.
> GP3 är inte en I/O från början?
Beror lite på hur man definierar "från början". Efter en "erase all" så är
alla CONFIG bitar "1" och då är pinnen "reset". Genom att programmera den
aktuella CONFIG biten till "0" blir den en I/O pinne (dock enbart som ingång).
Att även "reset" är en "ingång" är ju en lite annan sak, man brukar inte
kalla reset-ingången för en "I/O".
> Summasumarum då, har GP3 en WPU som går att använda eller ej?
Ja, när pinnen används som MCLR/reset ingång.
Nej, inte då pinnen används som en generell digital ingång.
Och det är ej valbart i något av fallen...
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 21:06:25
av Erik M
Utmärkt, då är du, jag och databladet fortsättningsvis överens.
Dvs det finns ingen, egentligt, användbar WPU på GP3.
Den enda WPU som finns är den som hanterar "reset" - vid någonstans 12 volt, om jag förstått rätt.
Alltså inte till någon nytta annars, endast för "reset".
Eller är det skillnad på Reset och Master Clear?
Reset, som i omstart.
Master Clear, som i radera allt.
Tack för hjälpen.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 22:17:33
av bearing
Nja, intern pull-up på /MCLR drar pinnen till Vdd. /MCLR hålls alltså hög ifall pinnen lämnas oansluten, för att förhindra sporadisk reset.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 22:47:44
av TomasL
Eller är det skillnad på Reset och Master Clear?
Reset, som i omstart.
Master Clear, som i radera allt.
Nja inte riktigt så.
De olika varianterna och vad de gör finns att läsa i databladet.
Ibland är det samma i bland inte.
Re: PIC: WPU på NOT_MCLR
Postat: 16 november 2015, 23:04:44
av sodjan
> Eller är det skillnad på Reset och Master Clear?
> Reset, som i omstart.
> Master Clear, som i radera allt.
En "reset" är som du säger en omstart av processorn.
Antingen via reset-pinnen eller en "power-on reset" (POR).
Sen menar du kanske "erase all", vilket är en funktion i
programmeringsgränssnittet från en "programmerare".
Det tömmer processorn på allt innehåll, flash, eeprom
och config.
Alltså, ja, det är totalt olika funktioner.
> Den enda WPU som finns är den som hanterar "reset" - vid någonstans 12 volt, om jag förstått rätt.
Nej och nej. Blanda inte ihop en vanlig reset med programmeringsspänningen !