RSSI на Lawmate

Adekamer

теперь у меня есть частотомер - попробую в эти выходные провести собственные испытания и дать оценку частот по каналам хотяб у передатчика

vovan1972

Давайте, мы все ждем.
А то ставим на приемнике 7 канал, а он совсем не 1240 , как на передатчике, вот и не можем улететь дальше 1 км.

1 month later
Дми-III-й

Нашел на рцгрупс еще и микропрограмму чипа приемника Lawmate, думаю пригодится и здесь для тех кому охота перестроить его под свои частоты

Кстати Антон, обещали обмерить передатчик частотомером, что нибудь получилось?

;     -------------------------------------------------------------------
;    |                                                                    |
;    |            PLL synth setup (Lawmate receiver)                        |
;    |                                                                    |
;     -------------------------------------------------------------------
;
;

    list     p=16f636
    #include p16f636.inc
    __CONFIG  _MCLRE_OFF&_CP_OFF&_WDT_OFF&_INTRC_OSC_NOCLKOUT

; Bit definitions for the GPIO register and the TRIS register

#DEFINE ifreq        d'479500'        ; IF of the receiver in kHz
#DEFINE freq_1        d'1080'            ; ch1 in MHz
#DEFINE freq_2        d'1120'            ; ch2 in MHz
#DEFINE freq_3        d'1160'            ; ch3 in MHz
#DEFINE freq_4        d'1200'            ; ch4 in MHz
#DEFINE freq_5        d'1240'            ; ch5 in MHz
#DEFINE freq_6        d'1280'            ; ch6 in MHz
#DEFINE freq_7        d'1320'            ; ch7 in MHz
#DEFINE freq_8        d'1360'            ; ch8 in MHz

#DEFINE    byte_1        b'11000010'        ; the 1st byte in the i2c message
#DEFINE    byte_4        b'10001110'        ; the 4th byte in the i2c message
#DEFINE    byte_5        b'11110000'        ; the 5th byte in the i2c message


#DEFINE    scl            PORTA,1            ; pin 12 i2c clock output
#DEFINE    sda            PORTA,0            ; pin 13 i2c data output

#DEFINE    sw1            PORTC,0            ; pin 10 switch 1 input
#DEFINE    sw2            PORTC,1            ; pin  9 switch 2 input
#DEFINE    sw3            PORTC,2            ; pin  8 switch 3 input
#DEFINE    sw4            PORTC,3            ; pin  7 switch 4 input
#DEFINE    sw5            PORTC,4            ; pin  6 switch 5 input
#DEFINE    sw6            PORTC,5            ; pin  5 switch 6 input
#DEFINE    sw7            PORTA,4            ; pin  3 switch 7 input
#DEFINE    sw8            PORTA,5            ; pin  2 switch 8 input


;===========================================================================
; Macro to create offsets for variables in RAM
;
ByteAddr    SET    40h        ; user RAM starts here

BYTE        MACRO     ByteName
ByteName    EQU       ByteAddr
ByteAddr    SET       ByteAddr+1
            ENDM

; ==========================================================================
;                 RAM Variable Definitions
;
    BYTE    shift_out    ; byte for shifting out on i2c
    BYTE    counter        ; counter for cycles
    BYTE    byte_2        ; the 2nd byte in the i2c message, freq control
    BYTE    byte_3      ; the 3rd byte in the i2c message, freq control
    BYTE    w_puffer    ; temporary save for w


;     -------------------------------------------------------------------
;    |                                                                    |
;    |            Code start                                                |
;    |                                                                    |
;     -------------------------------------------------------------------

    org 0x000
Eleje
       goto Start                ; Start application beyond vector area

    org    04h

;     -------------------------------------------------------------------
;    |                                                                    |
;    |            Main program start                                        |
;    |                                                                    |
;     -------------------------------------------------------------------

Start
    bcf        STATUS,RP0        ; Bank 0
    bcf        STATUS,RP1
    movlw    0ffh            ; set scl and sda as 1
    movwf    PORTA
    movlw    07h                ; set port A and C as digital i/o
    movwf    CMCON0
    bsf        STATUS,RP0        ; Bank 1
    bsf        STATUS,RP1
    movlw    b'11111100'        ; port A outputs: 0,1 inputs: all the rest
    movwf    TRISA
    movlw    0ffh            ; port C all inputs
    movwf    TRISC
    movlw    0ffh            ; set weak pull-up on port A inputs
    movwf    WDA
    movlw    0ffh            ; enable pull-up-down on port A inputs
    movwf    WPUDA
    bcf        OPTION_REG,7    ; enable pull-up-down on port A inputs

    bcf        OSCCON,IRCF1
    bsf        OSCCON,IRCF0
    bcf        OSCCON,IRCF1    ; set clock to 125kHz

    bcf        STATUS,RP0        ; Bank 0
    bcf        STATUS,RP1



test_switches
s1
    btfsc    sw1
    goto    s2
    movlw    0
    call    sendi2c
s1a
    btfss    sw1
    goto    s1a

s2
    btfsc    sw2
    goto    s3
    movlw    2
    call    sendi2c
s2a
    btfss    sw2
    goto    s2a

s3
    btfsc    sw3
    goto    s4
    movlw    4
    call    sendi2c
s3a
    btfss    sw3
    goto    s3a

s4
    btfsc    sw4
    goto    s5
    movlw    6
    call    sendi2c
s4a
    btfss    sw4
    goto    s4a

s5
    btfsc    sw5
    goto    s6
    movlw    8
    call    sendi2c
s5a
    btfss    sw5
    goto    s5a

s6
    btfsc    sw6
    goto    s7
    movlw    0ah
    call    sendi2c
s6a
    btfss    sw6
    goto    s6a

s7
    btfsc    sw7
    goto    s8
    movlw    0ch
    call    sendi2c
s7a
    btfss    sw7
    goto    s7a

s8
    btfsc    sw8
    goto    s1
    movlw    0eh
    call    sendi2c
s8a
    btfss    sw8
    goto    s8a
    goto    s1



get_freq
    addwf PCL,f
    retlw    high (freq_1*8 + ifreq/d'125')
    retlw    low (freq_1*8 + ifreq/d'125')
    retlw    high (freq_2*8 + ifreq/d'125')
    retlw    low (freq_2*8 + ifreq/d'125')
    retlw    high (freq_3*8 + ifreq/d'125')
    retlw    low (freq_3*8 + ifreq/d'125')
    retlw    high (freq_4*8 + ifreq/d'125')
    retlw    low (freq_4*8 + ifreq/d'125')
    retlw    high (freq_5*8 + ifreq/d'125')
    retlw    low (freq_5*8 + ifreq/d'125')
    retlw    high (freq_6*8 + ifreq/d'125')
    retlw    low (freq_6*8 + ifreq/d'125')
    retlw    high (freq_7*8 + ifreq/d'125')
    retlw    low (freq_7*8 + ifreq/d'125')
    retlw    high (freq_8*8 + ifreq/d'125')
    retlw    low (freq_8*8 + ifreq/d'125')

sendi2c
    bsf        STATUS,RP0        ; Bank 1
    bsf        STATUS,RP1
    bsf        OSCCON,IRCF2    ; set clock to 2MHz
    bcf        STATUS,RP0        ; Bank 0
    bcf        STATUS,RP1

    movwf    w_puffer
    call    get_freq
    movwf    byte_2
    incf    w_puffer,w
    call    get_freq
    movwf    byte_3

    bcf        sda
    nop
    bcf        scl

    movlw    byte_1
    movwf    shift_out
    call    byte_out

    movf    byte_2,w
    movwf    shift_out
    call    byte_out

    movf    byte_3,w
    movwf    shift_out
    call    byte_out

    movlw    byte_4
    movwf    shift_out
    call    byte_out

    movlw    byte_5
    movwf    shift_out
    call    byte_out

    bsf        sda
    nop
    bsf        scl

    bsf        STATUS,RP0        ; Bank 1
    bsf        STATUS,RP1
    bcf        OSCCON,IRCF2    ; set clock to 125kHz
    bcf        STATUS,RP0        ; Bank 0
    bcf        STATUS,RP1
    return


byte_out
    movlw    8
    movwf    counter
bo1
    rlf        shift_out,f
    btfsc    STATUS,C
    goto    bo3

    bcf        sda
    nop
bo2
    bsf        scl
    nop
    bcf        scl

    decfsz    counter,f
    goto    bo1

    bcf        sda
    nop
    bsf        scl
    nop
    bcf        scl

    return

bo3
    bsf        sda
    goto    bo2

    end
Панкратов_Сергей
Дми-III-й:

Нашел на рцгрупс еще и микропрограмму чипа приемника Lawmate, думаю пригодится и здесь для тех кому охота перестроить его под свои частоты Кстати Антон, обещали обмерить передатчик частотомером, что нибудь получилось?

Я для Атмеги 168 написал-сделал - можно выставить любую частоту от 900 до 1400 ( сколько позволяет имеющееся напряжение для варикапа) , индикация частоты и уровня принимаемого сигнала - на двухстрочном 16-ти символном индикаторе.
И как индикатор поля использовать хорошо, особенно с аттенюатором на входе.
Приемник у меня другой - он по умолчанию 4-х канальный, но тюнер входной имеет тот же.

1 month later
webconnector

подскажите оптимальную частоту для штырков в комплекте ЛМ 1.2 чтобы меньше грелсия передатчик . просто под рукой нету не лампочки , не мультиметра чтобы сам проверить .
спасибо

baychi
webconnector:

подскажите оптимальную частоту для штырков в комплекте ЛМ 1.2

Без измерений - невозможно. Там антеннки лапоть влево/ лапоть вправо.

10 years later
yurik999

добрый день. Кто подскажет как считать программу. А потом обратно залить ее? в этот приемник