HiFiForum.nu
Home | Forums | Profile | Register | Active Topics | Links | Members | Articles | PM | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

Private Messages
You must log in to check messages
 All Forums
 HiFiForum.nu - Mångfaldens forum
 Teknik och DIY
 OT: Ericsson klocka styrning ?
 New Topic  Topic Locked
 Printer Friendly
Author Previous Topic Topic Next Topic  

mullemeck
Starting Member

2 Posts

Posted - 2005/06/14 :  22:36:40  Show Profile Send mullemeck a Private Message
Hej, har blivit med en 24 volts klocka modell stor (ca 1m)finns ingen styrning till den, men läste någor gammalt sido-spår här, om någon som fixat en sådan, (men saken gällde något annat) så nu undrar jag om nån kunde hjälpa mig . Vet att det skall vara 24v dc och den skall få en impuls exakt! en gång i minuten samt polvända + - varje gång. spolen har ca 1,3 kilo ohm Hur löser man detta billigast?

Flyttar den till DIY till att börja med
/Z

mulle

mounte
Member

73 Posts

Posted - 2005/06/15 :  01:21:35  Show Profile  Visit mounte's Homepage Send mounte a Private Message
Det kan man ju göra på mer eller mindre exotiska sätt ...

Just nu är jag inne på FPGA, så ett enkelt litet "program" som via en kristall med lämpligt värde räknar tiden, vid rätt tidpunkt så låter man t.ex. ett relä switcha polerna (alternativt så låter man FPGAn via en opamp ställa om polerna)

Sedan fick jag en tanke att man kan ju köpa en billig radio-kontrollerad klocka och plocka ut signalen då "minutvisaren" ändrar läge och då detta sker göra polskiftet ...

men det kommer säkert någon med en fullständig lösning inom en snar framtid, håll ut och lycka till!
Go to Top of Page

CF
Member

63 Posts

Posted - 2005/06/15 :  04:04:19  Show Profile Send CF a Private Message
Hej

En arbetskompis hittade exakt en sådan gammal skol/järnvägsstations klocka tillverkad av Ericsson i en kontainer utanför Ericsson i Karlskrona. (Jobbade på ericsson i Karlskrona då). Det var ju lite av ett kultur arv så vi bestäm,de oss för att få liv i den. jag och en annan kille satte ihop en styrning baserad på en PIC 16F84 med en referens klocka från en AXE.
Vi använde -48v spänningen från vår labb nät nedreglerad för att styra klockan en gång i minuten måste man polvända 24volt. Detta gjorde vi med ett relä som som faktikt slutade fungera för en vecka sedan.

Om du vill kan jag leta fram ett skema och mjukvaran till pic. För de som jobbar på EPK ex epkpeng finns klockan att beskåda inne i Peters och Chads bur på plan 5.

Vår konstruktion är inte helt 100% den klarar inte sommar vintertid automatiskt och den drar sig cirka 1 sekund per halvår.

/// CF

Edited by - CF on 2005/06/15 07:25:19
Go to Top of Page

CF
Member

63 Posts

Posted - 2005/06/15 :  05:49:11  Show Profile Send CF a Private Message

Jag hittade mjukvaran till picen hoppas att det är den senaste! Tror inte att jag har något schema. Vi kopplade nog upp allt på ett veroboard. Skall höra med min kollega om han har nått hand ritat schema kvar eller om han kommer ihåg kristallens frekvens.

mvh ///CF

;***********************************************************************
;
; PIC 16F84 clock controll S/W by CF
;
;
; RA0 OUTPUT
; RA1 OUTPUT
; RA2 OUTPUT
; RA3 OUTPUT
; RA4 OUTPUT
;
; RB0 OUTPUT Second Indicator toggles on and off
; RB1 OUTPUT 8 KHz callibrating point for
; RB2 OUTPUT Minute Indicator toggles on and off
; RB3 INPUT Stop at low and start running at high
; RB4 INPUT Fast forward at low first toggle minute
;
; RB5 OUTPUT
; RB6 OUTPUT
; RB7 OUTPUT
;***********************************************************************
#include "p16f84.inc"

#define SEL_BANK_0 bcf STATUS,RP0 ; Select Bank 0
#define SEL_BANK_1 bsf STATUS,RP0 ; Select Bank 1
#define CARRY STATUS,C
#define ZERO STATUS,Z


processor 16F84A
__FUSES _XT_OSC & _PWRTE_ON & _WDT_OFF & _CP_OFF

;********************************************************
; <<<<< Dynamic Memory variables >>>>>>>>>>>>>>>>>>>>>>>
;********************************************************
RAMbase equ 12
cblock RAMbase
S_Temp
W_Temp
Flags
hiByte
loByte
seconds
stop
fast
stopshift
fastshift
faststate ; 0 = no fast 1 = first fast 2 = repeat fast
repeatfast

endc

;********************************************************
; <<<<< Common macros >>>>>>>>>>>>>>>>>>>>>>>
;********************************************************
TOGGLE_PIN MACRO WHICH_PORT,WHICH_PIN
LOCAL TOGGLE_PIN10, TOGGLE_END

BTFSC WHICH_PORT,WHICH_PIN ; is the pin high ?
GOTO TOGGLE_PIN10 ; yes, clear it
BSF WHICH_PORT,WHICH_PIN ; no, so set it
GOTO TOGGLE_END
TOGGLE_PIN10:
BCF WHICH_PORT,WHICH_PIN ; clear the pin
TOGGLE_END:
ENDM




;********************************************************
; <<<<< Start of memory/program >>>>>>>>>>>>>>>>>>>>>>>
;********************************************************

org 0
call initPic
goto Main






;********************************************************
; <<<<< INTERRUPT SERVICE ROUTINE >>>>>>>>>>>>>>>>>>>>>>>
;********************************************************

org 4
Interrupt_Vector
if (Interrupt_Vector != 0x004 )
ERROR "Warning Interrupts must start at address 0x004"
endif

movwf W_Temp
swapf STATUS,W
movwf S_Temp ; push registers
SEL_BANK_0



Disable_Int
bcf INTCON,GIE ; Disable all Interrupts
btfsc INTCON,GIE ; Are Interrupts disabled ?
goto Disable_Int ; NO, try again

btfsc INTCON,INTF ; Skip PORTB0/Interrupt?
goto RB0_Int ; NO, goto RB0

btfsc INTCON,T0IF ; Skip Timer Overflow Interrupt ?
goto Timer_Int ; NO, goto Timer Interrupt

btfsc INTCON,RBIF ; Skip Interrupt on change?
goto RBChange ; NO, goto Timer Interrupt


; Check what caused the interrupt
; and chain to the propper ISR
;
; Add code here for the rotary encoder



;********************************************************
; <<<<< INT ON CHANGE ISR >>>>>>>>>>>>>>>>>>>>>
;********************************************************
RBChange swapf S_Temp,W
movwf STATUS ; Return STATUS
swapf W_Temp,F
swapf W_Temp,W ; Return W

bcf INTCON,RBIF ; clear interrupt occured flag
bcf INTCON,RBIE ; enable interrupt on change

retfie ; No ISR implemented yet

;********************************************************
; <<<<< Timer ISR >>>>>>>>>>>>>>>>>>>>>
;********************************************************
Timer_Int TOGGLE_PIN PORTB,1
incf loByte ; Increase the counter
btfsc STATUS,Z
incf hiByte

movlw b'01000000'
subwf loByte,0
btfss STATUS,Z
goto end_int
;********************************************************
; <<<<< Debounce Stop >>>>>>>>>>>>>>>>>>>>>
;********************************************************
bcf STATUS,C
btfss PORTB,3
bsf STATUS,C

rlf stopshift
movlw 0x00
subwf stopshift,0
btfss STATUS,Z
goto isstop
movlw 0x00
movwf stop

isstop movlw 0xFF
subwf stopshift,0
btfss STATUS,Z
goto endstop
movlw 0x01
movwf stop

endstop

;********************************************************
; <<<<< Debounce fast >>>>>>>>>>>>>>>>>>>>>
;********************************************************
bcf STATUS,C
btfss PORTB,4
bsf STATUS,C

rlf fastshift
movlw b'00000011'
andwf fastshift,1

movlw 0x00
subwf fastshift,0
btfss STATUS,Z
goto isfast
movlw 0x00
movwf fast

isfast movlw 0x03
subwf fastshift,0
btfss STATUS,Z
goto endfast
bcf PORTB,0
clrf hiByte
clrf seconds

movlw 0x00
subwf fast,0
btfss STATUS,Z
goto nextState1

incf fast
bcf PORTB,0

TOGGLE_PIN PORTB,2



movlw d'45'
movwf repeatfast
goto endfast




nextState1 movlw 0x01
subwf fast,0
btfss STATUS,Z
goto endfast

decfsz repeatfast
goto endfast

TOGGLE_PIN PORTB,2


clrf hiByte
clrf seconds

movlw d'20'
movwf repeatfast









endfast
movlw b'00011111'
subwf hiByte,0
btfss STATUS,Z
goto end_int

incf seconds

TOGGLE_PIN PORTB,0


clrf loByte
clrf hiByte



end_int swapf S_Temp,W
movwf STATUS ; Return STATUS
swapf W_Temp,F
swapf W_Temp,W ; Return W

bcf INTCON,T0IF ; clear interrupt occured flag


retfie ; No timers implemented yet


;********************************************************
; <<<<< RB0 INT ISR >>>>>>>>>>>>>>>>>
;********************************************************´
RB0_Int

swapf S_Temp,W
movwf STATUS ; Return STATUS
swapf W_Temp,F
swapf W_Temp,W ; Return W

bcf INTCON,INTF ; clear interrupt occured flag
bcf INTCON,INTE ; enable RB0/INT interrupt
retfie ; Return setting GIE




;********************************************************
; <<<<< Set up pic reg and port>>>>>>>>>>>>>>>>>>>>>>>>>>
;********************************************************
initPic
SEL_BANK_1 ; select bank 1

bcf OPTION_REG,T0CS ; source timer: internal clock

; set up the timer 0
movlw b'00011000'
movwf TRISB ; Port B, bit 0 input

movlw b'00000000'
movwf TRISA ; Port A, bit 0 input

bsf OPTION_REG,PSA
bcf OPTION_REG,PS0
bcf OPTION_REG,PS1
bcf OPTION_REG,PS2


SEL_BANK_0 ; select bank 0



bcf INTCON,INTE ; Disable RB0/INT
bcf INTCON,RBIE ; Disable RB Port change
bsf INTCON,T0IE ; Enable TMR0 Interrupt


; Disable all interrupts that is of no interrest to us

return



;********************************************************
; <<<<< Main Program >>>>>>>>>>>>>>>>>
;********************************************************

Main movlw 0
clrf loByte
clrf hiByte
clrf seconds
clrf stop
clrf fast
clrf stopshift
clrf fastshift

bsf INTCON,GIE ; Enable Interrupts Global




LOOP movlw d'60' ; Check if we had a minute overflow
subwf seconds,0
btfsc STATUS,Z
call newMinute

movlw d'1'
subwf stop,0
btfss STATUS,Z
goto LOOP

clrf hiByte
clrf seconds
bsf PORTB,0


goto LOOP ; not my address

;********************************************************
; <<<<< Main Program >>>>>>>>>>>>>>>>>
;********************************************************
newMinute movlw 0x00
movwf seconds
TOGGLE_PIN PORTB,2
return


END

Edited by - CF on 2005/06/15 05:51:47
Go to Top of Page

CF
Member

63 Posts

Posted - 2005/06/15 :  07:26:20  Show Profile Send CF a Private Message


Min kollega hadde en enkel ritning som han skall to kort på sedan postar vi denna här i forumet.

///CF
Go to Top of Page

mullemeck
Starting Member

2 Posts

Posted - 2005/06/15 :  20:09:50  Show Profile Send mullemeck a Private Message
Ja det löser sig nog , ni verkar ju kunna det här snabba svar må ja säga
håller ut en stund till innan jag bygger ihop nått!

mulle
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Topic Locked
 Printer Friendly
Jump To:
HiFiForum.nu © HiFiForum.nu except: Logos and Trademarks are property of their owners, Comments are property of their posters Go To Top Of Page
Denna sida genererades på 0.45 sekunder. Snitz Forums 2000