SONY ICF 7600D oscillator crystal 150KHz -- unable to source for replacement

Status
Not open for further replies.
Thanks friends. I am going to do one with PIC micro with a small firmware to produce 150KHz.
Thanks
 
Hi mvs sarma,
I've just tried building a 150 Khz generator using a PIC12F1840 using a 12 Mhz crystal. It seems to work OK. It is just the PIC, the crystal and it's 2 22pF capacitors and a 100 nF decoupling capacitor. It has complementry outputs on RA1 ans RA2 (Pins 5 and 6)

Here is the source code
Code:
******************************************************************************************
;
;        OSC      :  OSC 12MHz
;
;******************************************************************************************
        LIST    P=PIC12F1840,ST=OFF,R=DEC
        INCLUDE  "P12F1840.inc"

        __CONFIG _CONFIG1,  _FOSC_HS  & _WDTE_OFF & _PWRTE_OFF &  _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF


        __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_HI & _LVP_OFF

;*******************************************************************************
; Constants
;*******************************************************************************

RAM_START       equ     0x20

;Cycle time = 1/3000000 = 0.33333333333 uS

;150 Khz cycle time = 6.66666666 uS

;*******************************************************************************
; Pin Assignments
;*******************************************************************************
;
;   PIC signals
;



; I/O pin use
;   RA0      Not used              (Pin 7)         (To pin 4 on programmer connection)
;   RA1     Not used   (Pin 6)         (To pin 5 on programmer connection)
;   RA2    Output           (Pin 5)
;   RA3    Not used       (Pin 4)   NOTE THIS PIN CAN ONLY BE USED AS AN INPUT.   
;                    (This is VPP for programming This could be connected to pin 3 or 5 of the header to program the chip on header.)
;   RA4   crystal           (Pin 3)
;   RA5   crystal                     (Pin 2)




;  Define GENERAL PURPOSE RAM AREA (80 bytes maximum)

;*******************************************************************************
; File Register Variables
;*******************************************************************************
        cblock  RAM_START

        endc
;
;*******************************************************************************
;*******************************************************************************
;  Define Macro     Takes 2 uS
;*******************************************************************************
SELBANK MACRO   #BANK_NO
        MOVLW   #BANK_NO   ;1 cycle - 1 uS
        MOVWF   BSR       ;1 cycle - 1 uS
        ENDM
; *****************************

        ORG     0h
        GOTO    START
        ORG     4h
        GOTO    START

START
; *****************************
;   Initialized Segment
; *****************************
; Initialise OSC (12MHz, )

   BCF   INTCON,GIE

; Initialise I/O port
        SELBANK 1               ; SET BANK1
        MOVLW   B'11111001'       ; Bits 1, 2 output Bit 0, 3, 4, 5 input.
        MOVWF   TRISA
        SELBANK 0               ; SET BANK1

Loop:
   MOVLW   B'11111101'
   MOVWF   PORTA
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   MOVLW   B'11111011'
   MOVWF   PORTA
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   GOTO   Loop       ;(2 cycles)


   end

Les.
 
Thanks Les,
i have to procure the chip
otherwise i have to port to 12F510that i have. Incidentally , can we use internal oscillator please.
 
How about **broken link removed** sold on FleaBay
I do have this item.on hand. even I have a working set .
but, MikeMI, there is not enough space.
As it is related to restoring dead radio , perhaps you appreciate the need of space.
Thanks for the concept.
sarma
vu3zmv
 
Hi mvs sarma,
I can see no reason why you can't use the PIC12F510. As the 510 has a maximum clock fequency of 8 Mhz you would have to us a 6 or 7.5 Mhz crystal and reduce the number of NOP instructions to compensate. I think you may also be able to use a 3 Mhz crystal but the duty cycle would not be 50%. Also you would not be able to have complementry outputs. (Which you probably don't need.) I don't think that you could use the internal oscillator for two reasons. 1 Non of the available internal oscillator frequencies can be divided by an integer to give 150 Khz. 2 The information I can find on the internal oscillator stability seems to say it is 2% (20000 parts per million.) This would not be accurate enough for your purpose. You can get surface mount crystals which would help with the space problem. The spec on most of them seems to be 30 parts per million but I have found some on Farnell's website that are 10 parts per million. I think it should be simple to port the code over to the PIC10F510 I recently modifide some code that I had written to read the output of DH22 (Temperature and humidity modules.) and convert it to a string of aASCII characters. This was originaly written for a PIC12F1822 and I modified it fro a PIC12F1840. The main change was to the words used in the configuration line in the program.

Les.
 
Thanks Les Jones.
I shall get few 12F1840 in soic package to be able to miniaturize.there is a metal sheet compartment of 15*10mm and 6mmhigh. inside for shielding the crystal.and i have to try to tuck there. I shall upload a photo that speaks.
Many thanks for the support.
Somehow I have not been into software and I don't suppose to do that at my age of 71+.


sarma
vu3zmv
 
Hi sarma,
There is a possible problem for you with the PIC12F18 series. I don't think you can program them with the PICKit2 or the DIY PIC programmers (I now use a PICKit3) I will have a look at the data on the PIC12F510 and see if I can modify the code to run on that. Another possible option is the Atmel ATtiny13A. You can buy cheap programmers on ebay that will program these. I don't have any PIC12F510s to test the code on. Do you have any crystals around 6 Mhz to test that the code will work before you have to buy any parts ? We are both about the same age. I am 73

Les. (G8FUB)
 
Les,
i could try code change with F510. I may also have 12F675.
I anyway need a PICKI3 and i shall get from e-bay . PIC12F1840 is costly on e-bay.
i shall try my local distributor whether he could give a small qty .
you may be right asking me try TINT13A. i may have TINY12 recovered from HP inkjet cartridges. I shall try for TINY13A

Spec and JimB,
Yes I can try with 72HC4060 with 9.6crystal, but the overall space needed would increase.

Thanks for poring thoughts . Once I succeed , my Ham friend vu3ugt would be lucky as he has sentiment for the radio as was used by his father.
 
yes i am a man of those days.
I shall agree for the nonsense comment, LoL
On a serious note MVS, from your ETO posts it is quite clear that you would have no problem doing programing- but I suspect that you were being jocular.

spec
 
On a serious note MVS, from your ETO posts it is quite clear that you would have no problem doing programing- but I suspect that you were being jocular.spec
Spec,
I am telling truly.
I cam scribble few lines in PIC basic and be able to edit minor changes in ASM too. But never into coding of micros.
I had started my service in 1964/65 and always concentration was on telecom of the yester dacades and practically not much time to learn coding.
Perhaps I f I start now i can reach 25% level after an year.I don't take anything in offense as it is actual situation.
thanks.
sarma / vu3zmv
 
Hi sarma,
I seem to remember seeing a comment that you only had 3.3 volts available to power the add on circuit. Is this correct ? The reason is that the PIC12F675 will only work up to 10 Mhz from a 3.3 volt supply. I think I have a PIC12F675 I could try. I have just looked at the data sheet for the ATtiny13A and found that it also only works to 10 Mhz on 3.3 volts. (There are a few different versions of the ATtiny12 with different clock speed ratings. Also I don't have any of them to try. ) If you already have a programmer for the PIC12F510 and PIC12F675 then that will probably be the best option. Let me know if you can find the PIC12F675 and I will modify the code to run on that. I will also see if I can find a 6Mhz crystal and see if I can make it work on 3.3volts.

Les.
 
Hi sarma,
I've found my PIC12F675 and modified the code and tested it. (Still with a 12Mhz crystal.) and it works ok. It works down to about 2.7 volts but it is not guaranteed to by the data sheet. I have not yet modified it to work with a 6Mhz crystal.

This is the modified code.
Code:
;******************************************************************************************
;    Version for PIC12F675
;        OSC      :  OSC 12MHz
;
;******************************************************************************************
        list p=12f675
        errorlevel -302
        include "p12f675.inc"
       
;*******************************************************************************
; Configuration Bits
;*******************************************************************************

        __CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC & _EXTRC_OSC_NOCLKOUT

;*******************************************************************************
; Constants
;*******************************************************************************

RAM_START       equ     0x20

;Cycle time = 1/3000000 = 0.33333333333 uS

;150 Khz cycle time = 6.66666666 uS

;*******************************************************************************
; Pin Assignments
;*******************************************************************************
;
;   PIC signals
;



; GPIO bit use
;   0      Not used              (Pin 7)         (To pin 4 on programmer connection)
;   1     Not used   (Pin 6)         (To pin 5 on programmer connection)
;   2    Output           (Pin 5)
;   3    Not used       (Pin 4)   NOTE THIS PIN CAN ONLY BE USED AS AN INPUT.   
;                    (This is VPP for programming This could be connected to pin 3 or 5 of the header to program the chip on header.)
;   4   crystal           (Pin 3)
;   5   crystal                     (Pin 2)


;*******************************************************************************


        ORG     0h
        GOTO    START
        ORG     4h
        GOTO    START

START
; *****************************
;   Initialized Segment
; *****************************
; Initialise OSC (12MHz, )

   BCF   INTCON,GIE

; Initialise I/O port
   bsf     STATUS,RP0              ; bank 1
        MOVLW   B'11111001'       ; Bits 1, 2 output Bit 0, 3, 4, 5 input.
        MOVWF   TRISIO
        bcf     STATUS,RP0              ; bank 0

Loop:
   MOVLW   B'11111101'
   MOVWF   GPIO
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   MOVLW   B'11111011'
   MOVWF   GPIO
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   GOTO   Loop       ;(2 cycles)


   end

If you want the assembeled code as a .HEX file contact me via the forum messaging system with an email address.

Hi atferrari,
It makes a nice change being able to start answering the question after post #1 rather than spending a week finding out what the question really is.

Les.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…