Trasigt datablad PIC 16F630...

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Trasigt datablad PIC 16F630...

Inlägg av Marta »

Som jag ser det så är där ett fel i databladet till 16F630.

På sidan 19 finns "Example 3-1" med detta innehåll:

Kod: Markera allt

.

EXAMPLE 3-1: INITIALIZING PORTA
REGISTER 3-1: PORTA — PORTA REGISTER (ADDRESS: 05h)
bcf STATUS,RP0 ;Bank 0
clrf PORTA ;Init PORTA
>movlw 05h ;Set RA<2:0> to<
>movwf CMCON ;digital I/O<
bsf STATUS,RP0 ;Bank 1
clrf ANSEL ;digital I/O
movlw 0Ch ;Set RA<3:2> as inputs
movwf TRISA ;and set RA<5:4,1:0>
;as outputs
bcf STATUS,RP0 ;Bank 0
Avsnittet som är markerat uppfattar jag som att det skulle sätta bits 0, 1, 2 som digitala pinnar genom att stänga av komparatorn, men så är det inte. För att få detta resultat skall "5" bytas mot "7", vilket tydligt framgår om man läser avsnittet om komparatorn.

Eftersom det var porten jag skulle använda och informationen om avstängning tycktes finnas i rutan så tog det en god stund att komma på att databladet innehöll blaj. Den självklara slutsatsen när det inte fungerar är ju alltid att det är ett eget misstag... Nu var det RMW-problem istället på grund av denna fnurra.


Förresten så har jag alltid förundrats över att de analoga funktionerna är ON som default. OFF skulle vara mycket mera naturligt och att de startades vid behov. Då skulle användaren dessutom vara motiverad att detaljläsa det analoga avsnittet och problemen skulle bli färre för alla.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Förresten så har jag alltid förundrats över att de analoga funktionerna är ON som default.

Det är med avsikt. Det är säkrare så.
D.v.s det är bättre att ha en digital signal in på en analog ingång
än tvärtom...
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag har också undrat över att analog är på som default och jag tror att jag har hittat ett svar:
Om man ansluter en analug utgång som inte tål speciellt mycket där kan en felaktig initiering (port som ut, slå på analog funktion) ge en puls ut "utgång mot utgång" vilket kan ge problem (jag kan inte tänka ett kretslopp där det skulle bli ett problem men...).

Så vid att välja som det är minskas risken.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Hur skyddar det mot att utgångar möts? Råkar en bit i TRIS nollas så aktiveras utgången oavsett de analoga inställningarna. Det enda som kan skyddas mot är en analog signal till en digital ingång så att denna kanske drar lite ström. Har ingen koll på hur mycket, men det kanske är tillräckligt för att PIC skall bli en anig varm om det är många sådana ingångar. Det är enda anledning jag kantänka mig. Eller så är det en kommersiell anledning, de vill att konstruktörerna blir medvetna om vilka analoga funktioner det finns i kretsarna. Kanske därför de smyger in fel i databladet också :wink:
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Det har inget med vad som "råkar" sättas av misstag.

Efter restet så är ingångar med analoga funktioner analoga ingångar.
Om det finns andra krestar på kortet med t.ex OP-förstärkare som
driver en analog ingång, så är det inte bra om de driver mot en
digital ingång eftersom de inte bör/ska drivas med "halva" spänningar.

> Det enda som kan skyddas mot är en analog signal till en digital ingång så att denna kanske drar lite ström.

Exakt !
Skriv svar