Перейти к содержанию

ZooN

Members
  • Постов

    12
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные ZooN

  1. Ну вот! наконецто разобрался со всеми своими житейскими проблемами!.... и на чистую собрал всё что наработал!....

    Небольшой отчёт то что и как получилось!

    Синтезатор LMX2322

    Контролер PIC16F84A

    VCO от Murata из сотика T10s (на ссылке он под 20м номером)

    Ericsson t10s

    Рабочая частота 785мГц

    Потребляемый ток 22мА (9мА лопает VCO)

    Схема вообщем получилась вот такая!...(номиналы многие подбирал, подгонял)

    aa0f8f380ba0t.jpg

    Собирал сначала на макетной плате! запускалась при рукоприкладстве! =)....

    В варианте собранном начистую запустилась без лишних уговоров! поглядел напряжения в нужных точка! включил R5 на 785мГц и о радость!.... что пока побороть не смог так это небольшой фон! (слабый писк на слух 1k или несколько кГц) в принимаемом сигнале на приёмник! думается это всё пока ещё ФНЧ...

    Путь создания!

    Очень длин и тяжек вышел!....

    Никогда не работал с синтезаторами(нужды чтоли так сказать небыло) но вот весной 2008го столкнулся со старыми мобилками (a1018, T10s в них было куча вкусного :rolleyes: )! запустил злостно выдернутые из них VCO а стабильность как оказалась весьма поршивенькой! вот тут и родилась мысль прикрутить синтез! LMX2322 была выдернута из a1018! Накачал datasheetов по разным LMXам и стал разбираться как вообще работать с ними!

    Понял что нечем управлять(нужен контроллер)...с контролерами работал тоже мало! Так что по пути к цели пришлось обучиться писать на PICах...(именно на нём хотел, причины личные :unsure: ) пройдя курс молодого бойца по програмированию на ASMе и изучив на достаточном уровне сел писать!(для одной из первых программ получилось достаточно просто)

    НУ а после уже дело техники сбор деталек, Sprint-Layout, травка платы и сборка самого синтезатора! (2 часа сборки!)

    И в итоге Огромное удовольствие за то что не зря потратил столько времени! Получил массу опыта! И удовольствия от пути к своей цели! Познакомился с синтезатороми, PICми и ещё многим!....

    Огромное спасибо!!!

    за идеи и помощь(по синтезатору) shara_j, Plant, ivasi

    За курс програмирования на PIC ресурсу

    Курс програмирования на PIC для начинающих (и отдельное Корабельникову Евгению Александровичу)

    За идеи как писать программу для PIC antzol

    И за критику и поправки всем остальным!

    Фотосессия!...

    b5c49e02976et.jpg8ef634626ca0t.jpg

    c610b3e934c5t.jpg8b49c3bdf735t.jpg

    И прикреплю архив со всем барахлом!... файлы для MPLAB схема

    всем успехов ;)

    arh1.zip

  2. Уважаемый antzol вот разбираюсь с вашим кодом! сказать чесно жутко понравился подход =))) особенно когда в регистры part1,2,3 загружаются 7ми разрядные значения! Сразу запало а как вы собираетесь останавливать сдвиг на один лишний бит! но после :

    movlw 7

    movwf count

    *******

    decrfsz count,F

    Всё стало на места! Видать у меня маловато опыта чтоб самому сходу до такого допетрить =)

    Но остались некоторые непонятки! разъясните плиз!

    ВСЁ ЧТО КРАСНЫМ ПОЛНОСТЬЮ РАЗОБРАЛ

    ===========================================================

    mx_func

    ; Передача команды для установки режимов LMX

    ;------------------------------------------------------------------------------------

    movlw b'0000000'

    movwf part1

    movlw b'0001001'

    movwf part2

    movlw b'1010010'

    movwf part3

    call wr_comand_1

    ;------------------------------------------------------------------------------------

    osc_del

    ; Передача значения коэффициента деления частоты опорного генератора

    ;------------------------------------------------------------------------------------

    movlw b'0000000'

    movwf part1

    movlw b'0010100'

    movwf part2

    movlw b'0000000'

    movwf part3

    call wr_comand_1

    ;------------------------------------------------------------------------------------

    vco_del

    ; Передача значения коэффициента деления частоты ГУН в соответствии

    ;с выбранным каналом

    ;------------------------------------------------------------------------------------

    movlw b'0001010'

    movwf part1

    movlw b'1111100'

    movwf part2

    movlw b'0000001'

    movwf part3

    call wr_comand_1

    ;------------------------------------------------------------------------------------

    какой-то код

    ; Подпрограммы для работы с LMX

    ;=============================================

    wr_comand_1

    ; Подпрограмма передачи команды на синтезатор гетеродина

    ;----------------------------------------------------------------------------------

    bcf out_port, le1

    nop

    movf part1, W

    movwf part

    call wr_part

    movf part2, W

    movwf part

    call wr_part

    movf part3, W

    movwf part

    call wr_part

    nop

    bsf out_port, le1

    return

    ;----------------------------------------------------------------------------------

    wr_part

    ; Подпрограмма одной из 3-ех 7-разрядных частей команды для LMX2316

    ;----------------------------------------------------------------------------------

    movlw h'07'

    movwf count

    wr_loop

    btfsc part, 6

    bsf out_port, dat

    nop

    bsf out_port, clk ; устанавливаем в 1 бит clk

    nop

    bcf out_port, clk ; устанавливаем в 0 бит clk

    nop

    bcf out_port, dat

    rlf part, W

    rlf part, F

    decfsz count, F

    goto wr_loop

    return

    ;----------------------------------------------------------------------------------

    =========================================================

    догадываюсь что lel, dat, clk в шапке программы присвоены номера битов

    Не догнал вот что а может быть просто уверености не хватает принять что так оно и есть!

    btfsc part, 6 ; если 6-ой бит рег. part = 1 то переход на команду bsf out_port, dat если = 0

    ;то переход bcf out_port, dat. Другими словами смотрим на последний бит в цепочке которую сдвигаем

    ; и в зависимости от значения с помощью команды ветвления принимаем решение на выходе dat поставить 0 или 1

    bsf out_port, dat ; устанавливаем в 1 бит dat

    ***

    ***

    ***

    bcf out_port, dat ; устанавливаем в 0 бит dat

    rlf part, W ; циклитческий сдвиг влево рег. part и сохранения резул. в W

    rlf part, F ;циклитческий сдвиг влево рег. part и сохранения резул. в F

    Вот что осталось непонятно!

    - зачем делается 2ва циклических сдвига!? и не совсем пойму как это происходит!? получается что сдвинули один раз записали в Аккумулятор сдвинули ещё и то что уже получилось записали в part ???? ( сори не догнал )

    - каким образом значение 0 или 1 меняется на выходе portB (или portA) ???.... мы меняем значения в регистре out_port (надеюсь правильно понял это рег. общего назначения!?) а вот какой связкой команд он переносит значения своих битов на выход PICа.... или может опять удивлюсь и он рег. спец. назначения!? и прописан под адресом 06h или 05h ?????

    - Загрузка битов начинается со сташего бита MSB так ведь получается???? тоесть LSB будет записан в рег. part3 крайним правым????

    Спасибки за наглядную прожку =)

  3. Понимаю ваше возмущение!.... от части согласен с вашими словами сказанными в сторону 16-84... просто пока другие даже не разглядывал! (с этим разберусь основательно)... и просто они есть в наличии! Подогнали на халяву! выбрасывать рука не подымается! а чтоб без дела лежали не хочется!...=(

  4. Братья программисты!.... вот к вам за помощью обращаюсь!.... захотелось оживить давно лежащий синтезатор! LMX2322 …Есть в сети образец синтеза на этой микросхеме! Но управление этой многоножкой осуществляется AVRой ….а уж больно хочется заточить под PIC (почему хочется вопрос заднего плана)Долго и упорно разбирался как управлять данной таракашкой!,.. а когда разобрался теперь не догоняю как всё это реализовать на PICе!...

    PICи изучаю попутно! Пока на стадии простейшего написания программ на PIC16F84A (его и беру за основу)

    Ближе к телу!

    Суть такая!,… на LMX есть 3ри входа для управления!...

    DATA

    Clock

    LE

    В LMX нужно забить 2ва регистра! Биты в LMX загружаются последовательно! Через порт DATA! При выставлении каждого бита(на выходе МК) в нужное состояние, на порт Clock подаётся короткий импульс и бит записывается в нужное место регистра синтезатора! Допустим содежание, которым я должен наполнить регистры, я уже определил! Но возникает проблема номер 1…. Регистры там 18бит! Тоесть всю требуемую инфу что я должен побитно передать на вход DATA я не могу записать в один регистр контроллера! Их потребуется несколько! И нужно каким то образом сместить биты в регистрах МК и по порядку передать их на DATA, и при выставлении посылать импульсы в Clock и так все 18 штук! Потом формируем импульс на LE и регистр заполнен!..... потом следующий!

    В принцепе моих знаний хватает только на то чтобы самому прописывать каждый уровень на выходе там допустим R0 portB и подавать импульс определённой длительности ну там с R1 а в конце сформировать и на LE ….. но подход такой не удобен! Так как при изменении частоты придётся в программе выставлять все эти битики …. Да и в .hex-e не подредактируешь! А вот как сделать циклический сдвиг да ещё на 18бит х3!...

    Вопросы а почему LMX2322 а почему PIC16F84A не задавать! =)

    А вот алгоритм но уже не словами а от руки начеркал!

    72509a427f40t.jpg

    P.S. Подскажите хотябы как и во что копать!.... а там сам попробую поразбираться! :help1:

  5. Народ, хелп! скажите, че не так в схеме и коде? не работает...

    Попробуй эту прогу!,...

    если не запашет поменяй местами 00000101 на 10100000 тут банки прописаны....тип генератора укажи в IP-prog

    List P=16F84

    Status EQU 03h

    ;

    ;

    trisa EQU 05h

    porta EQU 05h

    trisb equ 06h

    portb equ 06h

    ;

    inita EQU b'00000000'

    initb EQU b'00000000'

    ;

    ORG 0

    GOTO start

    start

    bsf Status,5

    movlw inita

    movwf trisa

    movlw initb

    movwf trisb

    bcf Status,5

    ;

    MOVLW B'00000101'

    MOVWF portb

    GOTO start

    ;

    end

    ;

  6. Проверить мирофон мона по разному!,...для начала погляди приходит ли на нёго питание!...электретники многие держут и по 6-7в

    Проверяют остилографом!... подаёшь напряж. и цепляешь остил!... есть сигнал всё пашет значит!...мона к какому нить усилку низко ч. присобачить и побубнеть!... самые изощьрённые могут расковырять и Сшкой прозвонить полупроводник! 8).....

×
×
  • Создать...