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

Самодельный Spi


AtmelInside

Рекомендуемые сообщения

1. Подали питание.

2. Послали function latch с контрольными битами [C1, C2] = [1, 1]

3. Послали данные для R регистра [C1, C2] = [0, 0]

4. Послали данные для N регистра [C1, C2] = [1, 0]

5. После этого система сама сбросится и начнёт работать с новыми установками.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

1. Подали питание.

2. Послали function latch с контрольными битами [C1, C2] = [1, 1]

3. Послали данные для R регистра [C1, C2] = [0, 0]

4. Послали данные для N регистра [C1, C2] = [1, 0]

5. После этого система сама сбросится и начнёт работать с новыми установками.

Во, спасибо. А чтобы в реальном времени сменить частоту, снова нужно отправить все регистры?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Вот хоть что-то проясняется! в даташите от апреля 2000 года (он везде валяется) в функции инициализации 20 бит -ужос, ошибка или нет? есть дата от 2004 года там вроде нормально. Получается что если шаг сетки менять не надо то слать надо только N регистор.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Вот хоть что-то проясняется! в даташите от апреля 2000 года (он везде валяется) в функции инициализации 20 бит -ужос, ошибка или нет? есть дата от 2004 года там вроде нормально. Получается что если шаг сетки менять не надо то слать надо только N регистор.

Но при этом LMX поймет, что ей надо обновить N регистр? Без отправки F, например..

Ссылка на комментарий
Поделиться на другие сайты

Контрольные биты с1 и с2 в конце укажут, что изменить надо именно N регистр. R и F у нас уже записаны и мы их не трогаем.Если например выкл. питание синтеза то они слетят все и тогда надо слать заново все 3 слова.Это как в контролере DDR один раз настроили и потом меняем состояние регистром PORT.

Ссылка на комментарий
Поделиться на другие сайты

Контрольные биты с1 и с2 в конце укажут, что изменить надо именно N регистр. R и F у нас уже записаны и мы их не трогаем.Если например выкл. питание синтеза то они слетят все и тогда надо слать заново все 3 слова.Это как в контролере DDR один раз настроили и потом меняем состояние регистром PORT.

Ну, я тоже так думаю. Товарищ в понедельник где-то сконструирует все. Будем тестировать. Пока что задумывается 3 ГУНа с переключением.

Ссылка на комментарий
Поделиться на другие сайты

Доброго времени суток! Сделал вывод частоты на 7-сегментные (8 с точкой) дисплеи 6 значного числа. Два сдвиговых регистра 74HC595. Один управляет переключением дисплеев, другой текущим дисплеем. Есть ф-ция, которая последовательно:

1. Переключает дисплей

2. Пишет значение в регистр, управляющий дисплеем. (рисует цифру)

3. Ждет 1 ms

И так для всех 6 дисплеев в одной ф-ции, т.к. там еще идет высчитывание для каждого дисплея разряда из числа unsigned int long.

Суть в том, чтобы все это работало, нужно зациклить эту ф-цию (refreshDisplay())

И теперь, если в каком-нибудь месте мне нужно сделать задержку, то эта задержка влияет на все время работы и обновление дисплеев работает некорректно.

Можно это обновление вынести как-нибудь в фон? То-есть как-бы в два потока. Один циклично обновляет значения дисплеев, а второй просто выполняет нужные ф-ции иiP4I87VV-0Y.jpg меняет значение переменной, в зависимости от события.

Изменено пользователем AtmelInside
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

У меги8 есть 3 таймера.

T0,T1,T2

T1 - 16 bit. Его на такую мелочь не рекомендую использовать.

Если индикация устройства постоянна.

Ставим предделитель Таймера 0 на обновление минимум (25 раз в секунду * на количество символов).

По прерыванию Т0 - вызываешь функцию.

Теперь о LMX23xx.

1) Нельзя менять ГУН на ходу. Прескаллер умирает.

2) Почитать даташит внимательно. Что бы ей не слали, она приймет только последные "нужные битики" после защелкивания строба.

Это позволяет над выводы DATA / CLOCK одновременно использовать скажем для выводов той же 74HC595 у которой есть OE вывод.

Давно собирался сделать подобное устройство, LCD Nokia 1110i + LMX2326, все работало с ГУН-ами от старых мобильников, но к завершению руки так и не дошли...

Код на асме.

lmx2316.rar

Ссылка на комментарий
Поделиться на другие сайты

Можно поподробней, что значит нельзя на ходу перестраивать? Какие биты она должна понимать? Два последних бита идут стробирущие, после них ничего нет, потом только заново слово слать.

Ссылка на комментарий
Поделиться на другие сайты

Смотрим внимательнее.

У тебя размер "типа слова" для LMX23xx является 18 бит.

Отправлять такое число - заниматься гемором!

Я не спорю, можно взять 3 регистра, слепить слово, загнать цикл именно на 18 бит, но зачем?

В даташите есть пункт 1.4 SERIAL DATA INPUT TIMING

Что это означает?

Опускаем LE

Отправляем хоть 100000 бит, микросхема запомнит только последние 18, после того, как передернешь LE - подашь STROB.

outwrd: ;Вывод в 2306 управляющего слова

mov acc,tx_h

rcall outdat ; send 23..16

mov acc,tx_m

rcall outdat ; send 15...8

mov acc,tx_l

rcall outdat ; send 7...0

nop ;строб - запись слова

nop ;во внутренние регистры

nop ;2306

sbi portc,syn_stb ;CLK=1 _- Делаем STROB.

nop ;

nop ; задержка

nop

cbi portc,syn_stb ;CLK=0 -_

ret

Ссылка на комментарий
Поделиться на другие сайты

Может я что то не понимаю, но тут вопрос основной как передать 21 бит данных от микроконтролера в синтезатор. Потому как аппаратный spi не позволяет это сделать т. к. позволяет передать только по 8. 16 или 32 бита -синтезу это не подходит.Поэтому в путь идет программный spi который позволяет скормить синтезу нужное количество бит. Пункт 1.4 говорит просто о таймингах которые надо выдержать при отправке данных. Все равно надо переменную в 32битную формировать, считывать каждый бит, передавать , лишнее циклом(21 проход) отсекать. Где выгода по вашему предложению?

Ссылка на комментарий
Поделиться на другие сайты

Выходы гунов через желательно через буфер и кондеры идут на вход F in, с мк их надо в зависимости от частоты комутировать ключиком.Меняй шаг сетки изменяя R регистр, это вроде уже выяснили. Для примера глянь схему трансивера FT-857 там 5 гунов и один синтез adf4116(в старой верии fq7925 но суть одна) аналог lmx 2306. С отправкой 21 бита вроде прояснилось, как в коде формируешь переменную для отправки, структуру применяешь или как?

Ссылка на комментарий
Поделиться на другие сайты

Не, это все конечно понятно. Все так и есть. Просто там человек писал: "1) Нельзя менять ГУН на ходу. Прескаллер умирает.". Я пишу на C, насколько знаю там нет структур или я ошибаюсь. У меня просто пару переменных, в которых я высчитываю все. И потом просто отправляю по SPI

Изменено пользователем AtmelInside
Ссылка на комментарий
Поделиться на другие сайты

ГУН-ы нельзя менять паяльником!

Предаю я 24 бита, защелкиваю последние нужные. На этом все.

Никаких там особых таймингов нет.

Посмотрите схему от Александра Денисова FM2004 и старше.

Исходник в свое время он мне дал.

Ссылка на комментарий
Поделиться на другие сайты

ГУН-ы нельзя менять паяльником!

Предаю я 24 бита, защелкиваю последние нужные. На этом все.

Никаких там особых таймингов нет.

Посмотрите схему от Александра Денисова FM2004 и старше.

Исходник в свое время он мне дал.

Причем тут паяльник? У меня на атмеге просто пару пинов, которые включаются в зависимости от частоты (выбирается ГУН), потом ключевыми транзисторами запускается нужный ГУН.

Ссылка на комментарий
Поделиться на другие сайты

Предупредил, ато я спалил не одну микросхему.

Получилось фиксировать частоту?

Устройство еще разрабатывается. Когда сделаем, покажу резульатыт.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...