PIC16F628A Lite problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

PIC16F628A Lite problem

Inlägg av Cenorpa »

Sitter och programmerar en PIC16F628A som ska användas som timer i en uv-box och har stött på lite problem.

Jag vill använda PortA.5 och PortA.6 som ingångar men vet inte hur jag ska göra. Det fungerar helt enkelt inte att göra på "vanligt" sätt.
Resten fungerar bra.

Såhär ser den rensade PBP koden ut:

Kod: Markera allt


'*UV-Timer
'*

Define osc = 4

Disp3 VAR PORTA.0
Disp4 VAR PORTA.1
Disp1 VAR PORTA.2
Disp2 VAR PORTA.7

inp1   VAR PORTA.6


'*
RUN:							
GOSUB	INIT

Program:
If inp1 = 1 Then
	Disp1 = 1
	Disp2 = 1
	Disp3 = 1
	Disp4 = 1
	Pause 1000
Endif

Disp1 = 1
Disp2 = 0
Disp3 = 0
Disp4 = 0

Pause 400

Disp1 = 0
Disp2 = 0
Disp3 = 0
Disp4 = 0

Pause 400

Goto Program

'*-----------------------------*
'*INIT-------------------------*
'*-----------------------------*
INIT:

CMCON = 7


OUTPUT PORTA.0
OUTPUT PORTA.1
OUTPUT PORTA.2
OUTPUT PORTA.7

INPUT PORTA.6

RETURN
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Glöm port A5 om Du med det menar den som går till pinne 4 på kretsen. Det är MCLR/Vpp, använder Du den till annat måste Du ha Vpp före Vddför att kunna programmera kretsen sedan första programmeringen r gjord. Vill Du ändå tvunget göra det ärdet en configbit som skall ställas om.

Pinne A4 på pinne 3 är open-drain så Du tänkerpå att som utgång kan denna bara sänka, inte driva något med spänning ut från kretsen.

Har Du ont om pinnar eftersom Du alls övervägt att använda PORTA,5? Vad är det i så fall som är anslutet, det finns kanske andra sätt att lösa pinbristen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Det fungerar helt enkelt inte att göra på "vanligt" sätt.

Vad är "vanligt" ??
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Inlägg av Cenorpa »

Det var det jag misstänkte att PortA.5 var en liten luring, har faktiskt aldrig ens försökt använda den förens nu. Men hur är det med PortA.6 då, den ska jag väl kunna använda?

Jepp, det är ganska tajt med pinnarna. 4st 7segments displayer är även inkopplade vilket krävde 7+4 pinnar = 11. Sen behöver jag en utgång till relä samt tre ingångar.

Då var vi uppe i 15pinnar...

Finns det kanske något annat smidigt sätt att styra displayen? Som det är nu så hade jag tänkt multiplexat den direkt ifrån pic:en.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Men hur är det med PortA.6 då, den ska jag väl kunna använda?

Självklart.

> Finns det kanske något annat smidigt sätt...

Byt PIC till en som räcker till för uppgiften.
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Inlägg av Cenorpa »

sodjan skrev:Vad är "vanligt" ??
Jadu, bra fråga :)

Det jag tänkte på när jag skrev vanligt var att enkelt skriva:


CMCON = 7
OUTPUT PORTA.6

eller:
CMCON = 7
TRISA =00011110

Men jag antar att man kanske måste styra det på något annat sätt eller stänga av några andra godsaker innan man kan använda dom som "vanliga" I/O-portar.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

Man kan även använda ett shiftregister.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> att man kanske måste styra det på något annat sätt

Ja, vem vet, kanske så som databladet säger... :-)
Har du läst på om just RA6 !?
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Inlägg av Cenorpa »

sodjan skrev:
Byt PIC till en som räcker till för uppgiften.
Hmm, du känner ingen som säljer pic:ar som kanske har lite fler pinnar? :)
Senast redigerad av Cenorpa 2 maj 2007, 16:40:45, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jo.

T.ex PIC16F886, se http://www.jescab.se/Prod_PIC.html
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Ja, det finns ett smidigt sätt att styra displayen som kallas för charlieplexing. Då behöver Du 8 utgångar ochkan ha upp till 7 displayer utan decimalpunkt på dem. Ingen av utgångarna bör vara PORTA4, fast med gemensam anod så kan den användas förutsatt att ingen av anoderna hamnar där.

Du använder TRIS för att styra vilka segment som skall lysa. De tända segmenten sätts till utgångar, samt det gemensamma. Om man förutsätter gemensam katod skall datan till porten vara sådan att pinnen med katoden är noll och alla tända segment 1. Övriga kan vara vilket som.

För att inte få "ghosting" så sätt alla bitar till ett (gemensam katod) innan tris ändras.

Detlåter svårare än det är, det är faktiskt väldit enkelt i praktiken. Sök på Charlieplex så hittar Du info. Glöm vikipedia om inte artikeln har ändrats sedan jag såg den, denna artikel är usel utan information och dessutom skitprat om strömförbrukning som om lysdioder skulle ha extrem backström.

Jag är lite upptagen större delen av kvällen så någon annan kanske kan förklara mera omdet behövs. Annars kan jag givetvisgöra det när det finns tid, efter 22 ikväll eller någon annan dag.
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Inlägg av Cenorpa »

Har kollat lite på charlieplex men det känns lite ondögt krångligt när det ändå bara är 4 displayer det handlar om.

Men först vill jag få lite fart i PortA.6. Givetvis har jag läst om portarna men har inte förstått hur jag ska gå till väga. PortA.6 är ju integrerad med OSC2 och CLKOUT.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Gamla 16f870 är billig och ger dig fler pinnar. Vill du ha mer minne så går ju lika gamla 16f876a bra. Nackdelen med dessa är att du måste ha extern klocka/resonator/kristall/RC-länk. Finns modernare picar som har detta inbyggt. 18F2220 är väl en het kandidat - skall du köra assabler så är det enklare på 18 -serien.

PIC16F886 är nog bästa valet kanske - har dock inte använt det själv, men har mig att det är moderna 28-pinnare med IntOsc och lite annat godis. Nackdelen är väl närmast att varken Elfa eller Farnell säljer den. Dock så skall den vara någon eller några tior billigare än 18F6220
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> PortA.6 är ju integrerad med OSC2 och CLKOUT.

Exakt! Och hur har du konfigurerat processorn ?

Om du vill ha PA6 som I/O pinne, så är det "bara"
att konfigurera för det...

*HUR* du gör det i det verktyg du använder (verkar
vara någon Basic variant) har jag inte en susning om...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Nackdelen är väl närmast att varken Elfa eller Farnell säljer den [PIC16F886] .

För mindre antal (hobbyist-marknaden) så är inte det ett reelt
problem sedan några veckor.

Se : http://www.jescab.se/Prod_PIC.html

8) 8)
Skriv svar