ZooN
-
Постов
12 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные ZooN
-
-
Спасибо за ответы antzol сажусь писать программу а после паять девайс!
0 -
Уважаемый 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 крайним правым????
Спасибки за наглядную прожку =)
0 -
Пишу на Asm
Спасибо за текст! буду разбираться!....
а ПИК какой используете!?!? 16F84 ???
0 -
Понимаю ваше возмущение!.... от части согласен с вашими словами сказанными в сторону 16-84... просто пока другие даже не разглядывал! (с этим разберусь основательно)... и просто они есть в наличии! Подогнали на халяву! выбрасывать рука не подымается! а чтоб без дела лежали не хочется!...=(
0 -
Братья программисты!.... вот к вам за помощью обращаюсь!.... захотелось оживить давно лежащий синтезатор! 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 не задавать! =)
А вот алгоритм но уже не словами а от руки начеркал!
P.S. Подскажите хотябы как и во что копать!.... а там сам попробую поразбираться! :help1:
0 -
NebsteR....не ZooM я а ZooN
А в остальном полностью солидарен с antzol.....
0 -
Я ему про банки сразу сказал
Всё верно!...я после этих слов и начал под них копать!...у самго была такая проблема как у него!....вот изучаю потихоньку плывя!,..
а вообще очень полезный ресурс вот!... http://ikarab.narod.ru/Kea_20.html
0 -
Народ, хелп! скажите, че не так в схеме и коде? не работает...
Попробуй эту прогу!,...
если не запашет поменяй местами 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
;
0 -
Я тут тоже поднял эту тему!,...сам сел недавно изучать!.....
0 -
Проверить мирофон мона по разному!,...для начала погляди приходит ли на нёго питание!...электретники многие держут и по 6-7в
Проверяют остилографом!... подаёшь напряж. и цепляешь остил!... есть сигнал всё пашет значит!...мона к какому нить усилку низко ч. присобачить и побубнеть!... самые изощьрённые могут расковырять и Сшкой прозвонить полупроводник! 8).....
0
Программа На Pic16f84a Для Lmx2322
в Алгоритмы
Опубликовано · Изменено пользователем ZooN
Ну вот! наконецто разобрался со всеми своими житейскими проблемами!.... и на чистую собрал всё что наработал!....
Небольшой отчёт то что и как получилось!
Синтезатор LMX2322
Контролер PIC16F84A
VCO от Murata из сотика T10s (на ссылке он под 20м номером)
Ericsson t10s
Рабочая частота 785мГц
Потребляемый ток 22мА (9мА лопает VCO)
Схема вообщем получилась вот такая!...(номиналы многие подбирал, подгонял)
Собирал сначала на макетной плате! запускалась при рукоприкладстве! =)....
В варианте собранном начистую запустилась без лишних уговоров! поглядел напряжения в нужных точка! включил R5 на 785мГц и о радость!.... что пока побороть не смог так это небольшой фон! (слабый писк на слух 1k или несколько кГц) в принимаемом сигнале на приёмник! думается это всё пока ещё ФНЧ...
Путь создания!
Очень длин и тяжек вышел!....
Никогда не работал с синтезаторами(нужды чтоли так сказать небыло) но вот весной 2008го столкнулся со старыми мобилками (a1018, T10s в них было куча вкусного )! запустил злостно выдернутые из них VCO а стабильность как оказалась весьма поршивенькой! вот тут и родилась мысль прикрутить синтез! LMX2322 была выдернута из a1018! Накачал datasheetов по разным LMXам и стал разбираться как вообще работать с ними!
Понял что нечем управлять(нужен контроллер)...с контролерами работал тоже мало! Так что по пути к цели пришлось обучиться писать на PICах...(именно на нём хотел, причины личные ) пройдя курс молодого бойца по програмированию на ASMе и изучив на достаточном уровне сел писать!(для одной из первых программ получилось достаточно просто)
НУ а после уже дело техники сбор деталек, Sprint-Layout, травка платы и сборка самого синтезатора! (2 часа сборки!)
И в итоге Огромное удовольствие за то что не зря потратил столько времени! Получил массу опыта! И удовольствия от пути к своей цели! Познакомился с синтезатороми, PICми и ещё многим!....
Огромное спасибо!!!
за идеи и помощь(по синтезатору) shara_j, Plant, ivasi
За курс програмирования на PIC ресурсу
Курс програмирования на PIC для начинающих (и отдельное Корабельникову Евгению Александровичу)
За идеи как писать программу для PIC antzol
И за критику и поправки всем остальным!
Фотосессия!...
И прикреплю архив со всем барахлом!... файлы для MPLAB схема
всем успехов
arh1.zip