На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 54,
участников - 3 [ genius, Greenland, melom]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Программное обеспечение —› Управление SAA1057 
Блоки питания для радиотехники: Ajetrays, Alan, Manson, Optim, RM, Vega, Yaesu, Энергомаш


Alan K35
(1 Ампер)
руб.

RM LPS 105
(5 Ампер)
руб.

Manson SPA-8100
(10/12 Ампер)
руб.

Optim PS-20
(20/22 Ампер)
руб.

Vega PSS-3035
(30/35 Ампер)
руб.
 Страница:  1  2  »»Поиск в теме
Автор Сообщение
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 22 Апр 2007 15:06:36 #  

Здравствуйте уважаемые! У кого есть наработки по управлению SAA1057 с помощью PIC? Сейчас эта микруха стоит недорого. Есть желание собрать синтезатор на её основе. Может у кого есть её описание на русском и исходники? Облазил инет, но информации по ней очень мало. Спасибо!
Kattani
Участник
Offline2.5
с янв 2007
KO96BC
Сообщений: 403

Дата: 22 Апр 2007 15:56:43 #  
Реклама
Google
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 22 Апр 2007 16:56:39 #  

Это что? Очередная реклама? Я прекрасно знаю, где они продаются и их цену. Тем более, что они есть у меня в наличии.
Kattani
Участник
Offline2.5
с янв 2007
KO96BC
Сообщений: 403

Дата: 22 Апр 2007 18:25:37 #  

там даташит)) реклама...))
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 22 Апр 2007 21:48:26 #  

там даташит
У меня есть даташит... Мне надо знать в какой последовательности передаются слова конфигурации в SAA1057. На каком-то форуме проскочила информация, что для инициализации м/сх слово В загоняется в неё дважды и только после этого слово А... Нужен человек, который уже работал с ней и кто сможет объяснить как всё происходит...
metrolog
Участник
Offline3.9
с авг 2006
Дубна
Сообщений: 1614

Дата: 22 Апр 2007 22:03:48 #  

Нужен человек, который уже работал с ней и кто сможет объяснить как всё происходит... - или делать макет и проводить лабораторную работу.. Если ходят какие-то слухи про последовательность передаваемых слов и тд, то лучше самому убедиться во всем.
Kattani
Участник
Offline2.5
с янв 2007
KO96BC
Сообщений: 403

Дата: 22 Апр 2007 22:15:12 · Поправил: Kattani (22 Апр 2007 22:15:28) #  

Initialize procedure
Either a train of at least 10 clock pulses should be applied to the clock input (CLB) or word B should be transmitted, to achieve proper initialization of the device.
For the complete initialization (defining all control bits) a transmission of word B should follow. This means that the IC is ready to accept word A.

отсюда следует что верно на форуме писали, достаточно перевести
Ефвфы
Участник
Offline2.0
с ноя 2004
Литва
Сообщений: 340

Дата: 22 Апр 2007 22:16:27 #  

Ну я работал. Все нормально происходит.
В даташите все подробно расписано.
Дважды засылать ничего не надо.
Надо только не забывать перед 16-разрядным словом передавать один нулевой бит.
Так, как показано на Fig.3 в даташите.
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 22 Апр 2007 22:43:39 #  

Я понял так: инициализация... DLEN->1, DATA->0, 10 импульсов CLB... или слово В. После этого без задержки сразу слово А?
Надо только не забывать перед 16-разрядным словом передавать один нулевой бит.
Перед словом А и В?
Ефвфы
Участник
Offline2.0
с ноя 2004
Литва
Сообщений: 340

Дата: 22 Апр 2007 23:01:34 #  

Перед словом А и В?
Так в даташите ясно показано - "Leading zero" перед обоими словами.

Вот откопал свою старую ф-ю записи слова в SAA1057.
Используется как для А, так и для В.

void SAA1057wr(unsigned int w)
{unsigned int m=0x8000;
unsigned char i;
ClrDLEN;
ClrDATA;
ClrCLB;
SetDLEN;
ClrCLB;
SetCLB;
ClrCLB;
for (i=16; i > 0; i--)
{if (w & m) SetDATA
else ClrDATA;
SetCLB;
ClrCLB;
m >>=1;
}
ClrDLEN;
ClrCLB;
SetCLB;
ClrCLB;
ClrDATA;
}
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 22 Апр 2007 23:29:35 #  

Я не силён в С. Надо переложить на asm (займусь этим завтра). К примеру для приёмника FM 88.0-108.0 мгц с Fпч=10.7 мгц. Fгет=Fсигн-Fпч. Слово В=1100000000000000=0С000Н (режим FM, шаг 10 кгц). К.Д. от 7730 до 9730 в слово А. Правильно? А исходника на asm нет?
Ефвфы
Участник
Offline2.0
с ноя 2004
Литва
Сообщений: 340

Дата: 23 Апр 2007 09:50:46 #  

Слово В=1100000000000000=0С000Н
Для начала я бы включил еще SB2 и PDM1.
Исходника на asm нет, asm использую только тогда, когда без этого ну совсем никак.
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 23 Апр 2007 12:03:54 #  

Ок, понял. Слово В->0C140H(FM, шаг 10 кгц, фаз. детектор вкл.).
Вопрос:
1. Загрузить 2 байта в SAA1057 без разрыва не получится (сначала старший байт, время на подготовку к выводу младшего байта, младший байт). Или ей по барабану, всё-равно будет ждать все 16 бит?
2. С коэффициентами деления я всё правильно понял?
Ефвфы
Участник
Offline2.0
с ноя 2004
Литва
Сообщений: 340

Дата: 23 Апр 2007 12:34:05 · Поправил: Ефвфы (23 Апр 2007 12:34:37) #  

1. Загрузить 2 байта в SAA1057 без разрыва не получится (сначала старший байт, время на подготовку к выводу младшего байта, младший байт). Или ей по барабану, всё-равно будет ждать все 16 бит?
Опять же - смотрим в даташит - максимальная длительность CLB и пауза между CLB неограничена.
Сие означает, что можно паузу между любыми CLB делать чоть в год длиной. Тут главное не сделать меньше 5 мкс.
2. С коэффициентами деления я всё правильно понял?
Вроде все правильно.
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 26 Апр 2007 11:56:21 #  

Вот что получилось:

;***********************************************************************************
; SAA1057.asm Программа синтезатора частоты
; на основе м/сх SAA1057
;
; генератор RC 10k, 2n2
;***********************************************************************************
list p=16F84A ; используется PIC16F84A
#include <p16F84A.inc> ; файл, описывающий специфические переменные,
; соответствующие процессору
__CONFIG 03FF3H ; WDT выкл, бит защиты не установлен
;***********************************************************************************
CLB EQU 2 ; Вывод RA2 - линия CLB
DLEN EQU 3 ; Вывод RA3 - линия DLEN
DAT EQU 4 ; Вывод RA4 - линия DAT
Count EQU 0CH ;
RegM EQU 0DH ; Старший байт WORD_A,_B
RegL EQU 0EH ; Младший байт WORD_A,_B
Bait EQU 1FH ; Счётчик количества передаваемых байт
Bit EQU 10H ; Счётчик количества передаваемых бит
;***********************************************************************************
ORG 0x000 ; вектор сброса процессора,
; начальный адрес
bsf STATUS, RP0 ; 1-й банк
clrf PORTA ; Порты А на выход
bcf STATUS, RP0 ; 0-й банк
;***********************************************************************************
movlw .2 ; Количество проходов
movwf Count ; в Count
;***********************************************************************************
SNOVA clrf PORTA ; Все выводы PORTA в 0
;***********************************************************************************
; Загрузка WORD_B
;***********************************************************************************
movlw b'11000011' ; Режим FM, шаг 10 кгц
movwf RegM ; PCA - 0.07, SB2 - 1,
movlw b'10000101' ; синхр., дет. фазы - авт.
movwf RegL ; BRM - ON
call OUTPUT ; Вывод данных в SAA1057
;***********************************************************************************
; Загрузка WORD_A
;***********************************************************************************
movlw b'00100111' ; Коэффициент
movwf RegM ; деления
movlw b'00010000' ; равен
movwf RegL ; 10000
call OUTPUT ; Вывод данных в SAA1057
decfsz Count, f ; Два раза загрузили данные?
goto SNOVA ; Нет, ещё раз...
;***********************************************************************************
goto $ ; Вечный кайф
;***********************************************************************************
; Загрузка кол-ва байт, бит, адреса первого выводимого RegM
;***********************************************************************************
OUTPUT movlw .2 ; Кол-во выводимых
movwf Bait ; байт равно 2
bsf Bit, 3 ; кол-во выводимых бит равно 8
movlw RegM ; Загрузим адрес первого RegM
movwf FSR ; в FSR для косвенной
movf INDF, w ; адресации через INDF
;***********************************************************************************
; Загрузка в SAA1057 WORD_B
;***********************************************************************************
bsf PORTA, DLEN ; DLEN->1
call PULS ; Импульс LZ
OUT bcf STATUS, C ; Сброс флага переноса-заема С
rlf INDF, f ; Сдвиг регистра INDF влево
btfsc STATUS, C ; Выводимый бит данных равен 1?
bsf PORTA, DAT ; Да, установить на шине данных 1
btfss STATUS, C ; Выводимый бит данных равен 0?
bcf PORTA, DAT ; Да, установить на шине данных 0
call PULS ; Тактовый импульс под данные
decfsz Bit, f ; Все биты одного байта выведены?
goto OUT ; Нет, выводим следующий бит
bsf Bit, 3 ; Снова количество бит равно 8
incf FSR, f ; Увеличим на 1 адрес Reg...
decfsz Bait, f ; Все байты выведены?
goto OUT ; Нет, выводим следующий байт
clrf PORTA ; Да, все. На этом закончим
call PULS ; Импульс LZ
return ; Возврат из п/п OUTPUT
;***********************************************************************************
PULS bsf PORTA, CLB ; Установка 1 на выводе CLB
nop ; На всякий случай
bcf PORTA, CLB ; Установка 0 на выводе CLB
return ; Возврат из п/п PULS
;***********************************************************************************
END

Всё-же надо дважды загонять в неё данные. К.д. равен 10000 для F=100.0 мгц
GenaSPB
Участник
Offline2.5
с дек 2005
Санкт-Петербург
Сообщений: 495

Дата: 26 Апр 2007 12:19:09 · Поправил: GenaSPB (26 Апр 2007 12:19:50) #  

На рисунке Fig 2 в родном даташите от филипса нарисован 17-й бит - со значением 0.
На рисунке Fig 3 там же в явном виде тоже показан этот нулевой бит.

А еще советую прочитать в том же даташите на 11-й старнице

APPLICATION INFORMATION

Initialize procedure

Either a train of at least 10 clock pulses should be applied to the clock input (CLB) or word B should be transmitted, to achieve proper initialization of the device.
For the complete initialization (defining all control bits) a transmission of word B should follow. This means that the IC is ready to accept word A.


То есть, в вашем случае, первая попытка записать что-то в микросхему просто инициализирует ее внутренний автомат без интерпретации.
GenaSPB
Участник
Offline2.5
с дек 2005
Санкт-Петербург
Сообщений: 495

Дата: 26 Апр 2007 12:29:26 #  

Гугль выдает ссылочку на чужой проект http://www.michallo.ll.pl/www/pll/SAA1057_PLL_Driver.pdf
Там программа на бэйсике (хотя, попробовать прочитать программы на С, что Вам привели, можно было - даже не зная этого языка). Выдача 17-го бита там делается. Правда, отдельной инициализации там нет.
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 26 Апр 2007 16:18:05 #  

17-й бит выдаётся. Смотрите листинг программы: call PULS ; Импульс LZ. По даташиту такой-же бит должен быть и перед передачей 16 бит слова В и слова А.
Пока на PIC был RC генератор, а на SAA1057 кварц 4.0 мгц схема работала даже в таком варианте. Сейчас всё переделал: кварц 4.0 мгц стоит на пике (в дальнейшем хочу посадить LCD HDD44780), а через 0.01 мкф и 22 ком меандр частотой 4.0 мгц подаётся на вывод 17 SAA1057. Теперь схема не дышит совсем. По инициализации: я понял так, что необходимо передать 10 импульсов CLB без DLEN? После этого leading zero без DLEN, 16-битное слово В и снова leading zero без DLEN. Тоже самое и со словом А, но без 10 импульсов CLB. Но почему-то не работает!
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 26 Апр 2007 16:18:51 · Поправил: Light (26 Апр 2007 16:20:20) #  

Посмотрю проект на бейсике...
GenaSPB
Участник
Offline2.5
с дек 2005
Санкт-Петербург
Сообщений: 495

Дата: 26 Апр 2007 18:24:25 #  
GenaSPB
Участник
Offline2.5
с дек 2005
Санкт-Петербург
Сообщений: 495

Дата: 26 Апр 2007 18:26:59 #  
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 26 Апр 2007 21:26:54 #  

Заметил только сейчас... После переделки схемы программу откомпилировал с генератором типа RC вместо XT! Завтра перекомпилирую и сообщу результат. За ссылки спасибо. Разобрался с программой на бейсике. В принципе всё тоже самое. На qrz.ru тоже полная неразбериха... В общем - доживём до завтра!
Ефвфы
Участник
Offline2.0
с ноя 2004
Литва
Сообщений: 340

Дата: 26 Апр 2007 22:59:33 #  

После этого leading zero без DLEN, 16-битное слово В и снова leading zero без DLEN.
leading zero c DLEN ------^ ----------------------
а тут не важно - зеро или не зеро, один такт. импульс без DLEN --------^

Точно так же и для слова А.
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 26 Апр 2007 23:55:35 #  

Так, ещё раз! Сначала (DLEN->0)->10 CLB, (DLEN->1)-> 1 CLB, 16 бит-> (слово В), (DLEN->0)-> 1 CLB. После этого слово А, только без начальных 10 CLB. Я правильно понял? Ещё вопрос: при смене коэффициента деления (слово А) вся процедура повторяется?
Ефвфы
Участник
Offline2.0
с ноя 2004
Литва
Сообщений: 340

Дата: 27 Апр 2007 00:06:11 · Поправил: Ефвфы (27 Апр 2007 00:09:19) #  

(DLEN->1)-> 1 CLB, 16 бит->
тут ^ важно DATА=0

Если сразу правильно и полностью передать слово В, то 10 пустых CLB и не нужны, но вреда конечно не принесут (... пользы было от него, как от козла молока, но вреда однако тоже никакого... (С) В.В.).
При смене коэффициента деления достаточно передать только слово А по такой же схеме.
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 28 Апр 2007 20:18:04 #  

Если писать программу управления для SAA1057 следуя советам и даташиту, то получается следующее:
http://slil.ru/24305106
Но всё-равно не работает!
У кого есть исходник? Please!!!!
Borik
Участник
Offline3.1
с июл 2005
Санкт-Петербург
Сообщений: 848

Дата: 28 Апр 2007 21:27:43 #  
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 28 Апр 2007 21:40:33 #  

Спасибо за ссылку! Эта схема и прошивка рабочие. Уже проверено в железе. Только у меня ситуация совсем иная. В этом варианте кварц на SAA1057, PIC16F84A работает на RC генераторе. Данные в SAA1057 загоняются 9 раз! У меня кварц на пике, и 4 мгц на SAA1057 поступают на 17 вывод. В этом варианте она должна работать, но не желает...
Light
Участник
Offline1.0
с апр 2007
СССР
Сообщений: 15

Дата: 30 Апр 2007 12:21:37 #  

Решение найдено! Всем спасибо за подсказки! Если у кого возникнет необходимость, пишите. Выложу исходник.
GenaSPB
Участник
Offline2.5
с дек 2005
Санкт-Петербург
Сообщений: 495

Дата: 30 Апр 2007 14:28:47 #  

Если у кого возникнет необходимость
Light, необходимости нет, но для того, чтобы еще кто-то не начал через год искать и не наткнулся на эту "тему без конца", расскажите суть решения. Исходник менеее интересен (тем более на ассемблере), но его в "копилку" выложить и тут оставить ссылочку было бы не лишне.
Заранее спасибо!
Реклама
Google
 Страница:  1  2  »» 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.054; miniBB ®