PDA

Просмотр полной версии : Синтезатор частоты на SI570



Алексей SDR
04.11.2008, 17:13
Конфигурация:
процессор AT MEGA128
синтезатор SI570
дисплей Siemens CX-70
Хочу собрать маленький синтезатор частоты на этих элементах.
Программа пишется на BASCOM AVR 1.11.9.0
Кто хочет поучаствовать в этом проекте- Добро пожаловать
SI570-синтезатор частоты 10мГц- 1400Мгц .Шаг установки и точность установки частот 1 герц. Управление по I2C-интефейсу(подключает ся к микроконтроллеру 3 проводами).

Roadman
04.11.2008, 17:57
В виду того что будет реализована шина I2C. Можно будет реализовать дополнительные аппаратные модули. Есть у кого предложения?

Genadi Zawidowski
04.11.2008, 18:01
будет реализована шина I2C. Можно будет реализовать дополнительные аппаратные модули
Предусмотрите память частоты (режима, аттерюатора), на которой работали в каждом диапазоне (i2c версия FRAM без ограничений по количеству циклов, 8-ми ногий корпус)
какие есть доступные i2c регистры для получения внешних портов? По моим прикидкам, 16 внешних сигналов для управления простым транссивером едва-едва хватает. А расходовать на это выводы процессора как-то жаль. Они для скоростных функций пригодятся.
Что-то не придумать ничего под i2c... всё SPI чаще встречается.

ut1wpr
04.11.2008, 18:11
Что-то не придумать ничего под i2c... всё SPI чаще встречается.
Отож бо и воно! Солидарен, Гена. Если озадачится еще бОльшим к-вом функций, то только SPI.

Roadman
04.11.2008, 18:15
Солидарен, Гена. Если озадачится еще бОльшим к-вом функций, то только SPI.ъ
SPI неоспоримо, но просто I2C будет всё равно присутсвовать.

Genadi Zawidowski
04.11.2008, 18:16
Программа пишется на BASCOM AVR 1.11.9.0

Предлагаю минимальный набор управляющих сигналов:

Первый 74HC595 - для платы основной платы:

D0 TX mode: 1 - TX
D1 VOX enable: 1 - VOX ON
D2 AF CW filter: 1 - On
D3 IF notch filter: 1 - On
D4 AGC mode control: 1 - fast, 0 - slow
D5 AGC mode control: 1 - off, 0 - work
D6 CW TX Mode: 1 - на выход идёт сигнал с BFO
D7 IF Filter select: 1 - narrow, 0 - wide

Следующий 74HC595 - для платы диапазонных фильтров:

D0 TX mode: 1 - TX
D1 Preamp on: 1 = preamp is ON
D2 Att control Stage 0: 1 - 10 dB
D3 Att control Stage 1: 1 - 20 dB
D4 band select A0
D5 band select A1
D6 band select A2
D7 band select A3

Roadman
04.11.2008, 18:24
Геннадий что то знакомый набор сигналов. Это где то было реализовано?

У меня была мысль сделать схему управления внешними устройствами на отдельном микроконтроллере. Организовать в нём шину данных и подключить к "центральному" контроллеру. Одним словом модульная организация.

Genadi Zawidowski
04.11.2008, 18:27
реализована шина I2C. Можно будет реализовать дополнительные аппаратные модули.
А предусмотрите управление вторым SI570, который будет выдавать сигнал BFO для детектора. корпус-то очень маленький! Удобства понятные - первый гетеродин можно сделать "всегда выше частоты сигнала", переворачиваем боковую полосу перепрограммирование м ситезатора, можно предусмотреть режим ультразвуковой (12 кГц) ПЧ для обработки или формирования сигнала внешними программамами.

Алексей SDR
04.11.2008, 18:29
(i2c версия FRAM без ограничений по количеству циклов, 8-ми ногий корпус)
А зачем? У меги есть своя перезаписываемая память 8 кбайт 100000 циклов запись/ чтение. Насчет портов (6 шт на одном дисплей и I2C ) остается 5 по 8-40 линий ввода или вывода (1порт на ДПФ) 1 порт на кнопки (4х4 = 16 кнопок хватит?)
Еще 3 порта свободны(1 порт ATT и еще что-нибудь) 2 порта по 8 линий в остатке.

Genadi Zawidowski
04.11.2008, 18:36
Геннадий что то знакомый набор сигналов. Это где то было реализовано?

Это я сейчас такой "стандартный" для себя набор сигналов на двух регистров выбрал - будет реализованно моей программой (выложенной в соответствующей теме). Синтезатор или тот что я последнй делал (PLL + DDS) - или по "просьбам трудящихся" - упрощенный (еще не готов) - только dds (ad9951 - первый гетеродин и ad9834 - BFO) с фильтрами и усилителями в габаритах 160*80 - вместе с контроллером.

Genadi Zawidowski
04.11.2008, 18:43
А зачем? У меги есть своя перезаписываемая память 8 кбайт 100000 циклов запись/ чтение
Я в курсе. хоть гигабайт. Но 100 тысяч циклов это не так много, если сделать запоминание частоты после остановки валкодера.


2 порта по 8 линий в остатке.
Именно 16 предложенных мной сигналов и удастся вывести. И больше ничего. Не осталось запаса. А 128-я мега это и так самый большой (по количеству выводов) в этой серии контроллер.

Roadman
04.11.2008, 18:46
Но 100 тысяч циклов это не так много, если сделать запоминание частоты после остановки валкодера.
Согласен. Посему в вояцких разработкам мы ставим отдельную память. Накрывается непредсказуемо.

Алексей SDR
04.11.2008, 19:08
Именно 16 предложенных мной сигналов и удастся вывести. И больше ничего. Не осталось запаса.
А куда -больше?Мы синтезатор для DX-9000 делаем или как ?
Для начала хотя-бы для приемника .А дальше уже дело техники прибавлять доп.функции или нет. Кто знает как правильно организовать работу 2 устройств по I2C.

Genadi Zawidowski
04.11.2008, 19:38
В вашем примере подставляется адрес устройства на шине iic 0x55 (определяется на этапе изготовления микросхемы). Микросхемы памяти и дисплеи должны иметь другие адреса (как ни странно, обычно в даташитах описывается).

Алексей SDR
04.11.2008, 20:17
Геннадий а для дисплея адрес 0x40 должен быть.
Вот есть файл где не используется библиотека для дисплея.Все прописано в самом файле.Здесь можно взять команды для дисплея и команды и инициализацию для АЦП (S-metr).Как в одном файле организовать работу двух I2C устройств? Адреса их ы знаем.

Genadi Zawidowski
04.11.2008, 20:34
Все прописано в самом файле.
В этом файле какие-то процедуры из ПЗУ используются... мне не понять, где там адрес на IIC подставляется. Для обслуживания дисплея создайте набор процедур вроде процитированной ниже, но с другими полями данных. и с другим адресом (передаётся 7 бит в самом начале):


Sub Subfreeze()

I2cstart
I2cwbyte Bytslavewriteaddr ' адрес - 7 старших бит в выделеном байте
I2cwbyte 137
I2cwbyte &H10
I2cstop

End Sub

Алексей SDR
04.11.2008, 20:37
Вот схема подключения дисплея
http://www.superkranz.de/christian/S65_Display/DisplayHardware.html
Резистивный делитель и стабилизатор на 3.3 в. В принципе все можно запитать 3.3 вольтами и Мегу и есть вариант SI570 тоже трехвольтовый.
Плату в LAYOUT 5.0 выложу позже

Алексей SDR
04.11.2008, 21:04
Вот плата для подключения дисплея к процессору.
Тестовый вариант

I2csend &H55 , 255 'all outputs high
I2creceive &H55 'retrieve input
LCD "Received data " ; '
Дается команда на запись по адресу 55 .читаются даные с этого
адреса .А по команде LCD прочитанные данные посылаются на дисплей

Genadi Zawidowski
04.11.2008, 21:24
Дается команда на запись по адресу 55 .читаются даные с этого
адреса .А по команде LCD прочитанные данные посылаются на дисплей

Алексей, тут до управляющей прграмммы как до Луны пешком... когда у вас разрастется этот проект до чего-то подходящего для использования, BASCOM Вам станет тесен. Может быть, хотя бы просмотрите исходники моего проекта? Там комментарии по русски, я старался его откомментировать. Встроить туда управление дисплеем Siemens - развлечение на вечер. Может попробуете так? Модифицировать работающую программу даже на незнакомом языке - один из способов, так сказать, "экстремального" изучения.

Алексей SDR
04.11.2008, 22:07
ps: приаттаченый в предидущем Вашем сообщении файл Плата SIEMENS.txt - не текст.
ясное дело не текст сервер хорошие файлы не пропускает .Подсказка вверху

Explorer
04.11.2008, 22:53
ясное дело не текст сервер хорошие файлы не пропускает
А чтобы пропускал, нужно их просто зарарить. :rotate:

Алексей SDR
04.11.2008, 22:57
Я зипом пользуюсь.
hi :crazy:

Алексей SDR
05.11.2008, 19:15
Учебник по бейсику с примерами для BASCOM AVR .
Синтезаторы приемники и еще много чего на процессоре AT MEGA с прошивками и схемами.http://www.qsl.net/pa3ckr/

Алексей SDR
06.11.2008, 20:45
Пока тишина
Сегодня АЦП в Меге испытывал.
Получился вольтметр до 5 вольт .
Вот основная программа :
Do
Setfont Color16x16
Lcdat 15 , 20 , "Вольтметр" , Green , Black
Setfont 32x16h
Start Adc : W = Getadc(7) : Stop Adc : J = W / 400 : J = J * 2
Lcdat 75 , 0 , J , Yellow , Black
Loop

R4ITU
08.11.2008, 14:20
Интересует разводка АДЦ ...какие резисторы и как подключено?

Алексей SDR
08.11.2008, 15:45
В смысле ADC ?
ножка PE7 резистор 10 ком на корпус.
При подаче нап. 0-5 в. Показывает на дисплее

Roadman
08.11.2008, 18:55
Интересует разводка АДЦ ...какие резисторы и как подключено?
Может вы об этом?

R4ITU
09.11.2008, 16:46
Интересует разводка АДЦ ...какие резисторы и как подключено?
Может вы об этом?

Ага!
TKS, в саму дырочку!
:D

UA3RNB
22.10.2010, 17:32
Чет тема умерла совсем. Продолжения не будет?

кевист
23.10.2010, 11:10
Кто подскажет можно использовать этот синтезатор вместо синтезатора Р-399?Там только больше ДП фильтров и включаются они от частоты.

Windk
19.10.2011, 08:07
оживлю старую тему.
Здесь есть кто умеет программировать si570.
У меня просьба одна есть, не сочтите за желание иметь "халяву", просто времени тратить на эту часть работы совсем нет желания.
Хочу сделать для своего SDR трансивера - автоматический преселектор, мне нужно считывать с линий управления Si570ой коды и узнавать какую частоту выставляет управляющее ПО, дальше я уже буду экспериментировать с реализацией настройки контуров.
В моменты когда выпадало время почитать о 570й - понял, что разбираться мне с ней придется очень долго и весь энтузиазм сойдет на нет просто. Кроме того, мне считывать нужно, а не управлять, что несколько усложняет.
Т.е. нужен режим "шпиона", никаких запросов регистров быть не должно.
Если не трудно, помогите примером кода на Си для Атмеги (желательно Атмега8 или 2313, аттини 45/85) как считывать коды с линий и узнавать частоту, не обязательно чтобы код был отлажен, можно просто сделать набросок без проверки на работоспособность. Ошибки я уже сам подправлю, мне только основые методы, принцип понять. Т.е. задача сводиться к двум моментам - организация прослушки управляющих линий и определение момента передачи установки частоты с определением этой самой частоты.
Заранее спасибо!

ut1wpr
19.10.2011, 09:59
Особых хитростей в управлении этой микросхемой нет. Как сказано в PDF, oна поддерживает i2c-совместимый протокол. Следовательно, одна из составных частей твоей задачи будет либо найти готовые фрагменты кодов, либо самому написать nак называемый i2c sniffer. Проблема подобного сниффера - отсутствие гарантированной целостности анализируемых данных, т.к. сам протокол не является броадкастовым, он относится к категории point-to-point (На шине есть элементы хендшейка NAK/ACK). Еще тебе нужно будет знать адрес слейва, в сторону которого мастер будет слать команды. Научившись выхватывать пакеты в адрес слейва, надо будет коллекционировать пакеты, направляемые в адреса регистров делителей для получения значений К их делений. Затем тебе предстоит выполнить процедуру, обратную происходящей в управляющем МК - по значениям К вычислить частоту, на которую эти К настраивают синтезатор (в управляющем МК идет обратная процедура - по заданной частоте вычисляются К и "засылаются" в синтезатор). В потоке команд прямое значение частоты НЕ ФИГУРИРУЕТ.
На каждом из этапов тебя будут подстерегать трудности, есть много неясных моментов, которые можно проверить только практикой. "умеющие программировать" вряд-ли возьмутся за решение задачи, которая представляет собой единичный интерес.
Выход просматривается один. Все-таки отбросить аргумент "просто времени тратить на эту часть работы совсем нет желания" (он как-то вызывающе прозвучал, типа "у меня есть задачи поважнее". Мол вы там все ничем не заняты... :) ) и заняться самому. Тогда все, что я написал выше, станет понятным само собой и постановка задачи (даже самому себе) будет уже совсем иной.
Ну, а насчет "никаких запросов регистров быть не должно" - тут явно просматривается нежелание даже прочитать PDF на Si570. В любом случае, перед принятием решения что-либо проектировать, выполнять, надо бы ознакомиться с "фундаментом". :)
Извини за многословность. Прими всю эту болтовню как попытку показать частичку подводных камушков в "умении программировать Si570".
С уважением,

Windk
19.10.2011, 10:32
да не, ПДФ то я читал, мне понятно что никакой прямой частоты нет на шине и что есть регистры, просто разбираться со всем тем, что в начале верно поэтапно расписали, пока никак не охота. Не потому что лентяй, просто не охота этой частью заниматься :). Под "запросами регистров", я имел в виду, что мне нужен именно шпион, что бы не было инициирующих команд к 570й для чтения ее регистров.
Ладно, просьба чисто на авось, нет так нет, буду брать за основы исходники типа
http://code.google.com/p/usbavrsi570/source/browse/tags/V15.13/DeviceSi570.c
(http://code.google.com/p/usbavrsi570/source/browse/tags/V15.13/DeviceSi570.c)http://www.ermicro.com/blog/?p=744
(http://www.ermicro.com/blog/?p=744)
да изобретать велосипед сам.. :)

ut1wpr
19.10.2011, 15:18
да не, ПДФ то я читал, мне понятно что никакой прямой частоты нет на шине и что есть регистры, просто разбираться со всем тем, что в начале верно поэтапно расписали, пока никак не охота. Не потому что лентяй, просто не охота этой частью заниматься :). Под "запросами регистров", я имел в виду, что мне нужен именно шпион, что бы не было инициирующих команд к 570й для чтения ее регистров.
Ладно, просьба чисто на авось, нет так нет, буду брать за основы исходники типа
http://code.google.com/p/usbavrsi570/source/browse/tags/V15.13/DeviceSi570.c
(http://code.google.com/p/usbavrsi570/source/browse/tags/V15.13/DeviceSi570.c)http://www.ermicro.com/blog/?p=744
(http://www.ermicro.com/blog/?p=744) да изобретать велосипед сам.. :)В принципе направление верное. Обратите внимание на то, что в приведенном исходнике много инклюдов. Их тоже "обязательно к прочтению и пониманию". Там и низкоуровневый обмен, и вычислиловка.
А насчет i2c я уже предупредил. Со ниффера надо начинать. Не будет сниффера - не будет ничего. Я не знаю, может есть смысл в инете порыть в плане найти готовые.
Успехов,

Windk
19.10.2011, 15:43
А насчет i2c я уже предупредил. Со ниффера надо начинать. Не будет сниффера - не будет ничего. Я не знаю, может есть смысл в инете порыть в плане найти готовые

еще как есть! и вам кстати спасибо за слово sniffer.. я как-то забыл про него, по нему вобщем нашел пару не сложных проектов..может даже на днях попробую реализовать, на UART выдам пакеты..а там уже буду их разбирать по даташиту на 570ю. вопросы уже конкретней буду если что задавать.

VOVA080808
19.10.2011, 17:20
Хочу сделать для своего SDR трансивера - автоматический преселектор, мне нужно считывать с линий управления Si570ой коды и узнавать какую частоту выставляет управляющее ПО, дальше я уже буду экспериментировать с реализацией настройки контуров.
а не проще ли сделать управление с помощья частотмера , подключаемого на выход cинтеза ?

ut1wpr
19.10.2011, 17:23
а не проще ли сделать управление с помощья частотмера , подключаемого на выход cинтеза ?Проще всего сделать это управление непосредственно из программы SDR.

Windk
19.10.2011, 17:48
а не проще ли сделать управление с помощья частотмера , подключаемого на выход cинтеза ?

там частота до 120Мгц доходит - это искать быстродействующие счетчики, городить вх каскад, кроме того, в сдр и так лес палок на которых бывает паразитный прием, так что не хочется отводить от синтеза еще кучу, или наоборот примешать чтот. В идее же чтения кода -вся работы чисто программная и не скоростная.

для управления из СДР, это нужно чтобы это делал разработчик ПО, но возможно меня не устроит выбранный им способ настройки. К тому же не хочется иметь привязку к ПО.