Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Проблема су управлением микросхемы LM7001


Проблема су управлением микросхемы LM7001

Сообщений 1 страница 19 из 19

1

Уважаемые знатоки. прошу помощи((! Неделю уже мучаюсь. Не могу написать программу.
Нужно задать частоту 49,6 MHz на микросхему LM7001. Управление микросхемы через Attiny 2313
F=49600кГц
Fделителя=10кГц
получился вот такой код управления:
D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|T0|T1|B0|B1|B2|TB|R0|R1|R2|S|
  0   1    0    0   1   1    0   1    1    0    0     0     0     0    0   0   0   0    0   0   1   0    0  1

10011011000000000001001=5079049

Вот программа:

$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Dim A As Dword                                              'Переменная

Config Portb = Output

A = 5079049                                                 '5079049=10011011000000000001001 последовательность битов частоты и управления
Portb.1 = 1                                                 'CE открыть
Shiftout Portb.2 , Portb.3 , A , 1                          'Параметры Data и Clk
Portb.2 = 0
Portb.1 = 0                                                 'CE закрыть
Pulseout Portb , 0 , 5                                      'Этот порт не используется
End
-----------------------------------------------------------------------------------------------------------------------------------
После прошивки частота гетеродина приемника не стабильна. Частоту гетеродина измеряю через частотамер.
Напряжение Upll срывается на микросхеме LM7001
http://sh.uploads.ru/t/g6JQU.jpg

Помогите друзья написать программу правильно!!!

Отредактировано Maks77 (2018-11-15 21:28:03)

0

2

Вот здесь смотрели?

0

3

У вас всё правильно, почти, только с СЕ что-то напутали, попробуйте так:

Код:
$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Dim A As Word                                              'Переменная
Dim B as Byte

Config Portb.1 = Output  ' CE
Config Portb.2 = Output  ' DATA
Config Portb.3 = Output  ' CL


A = &B00000001_10110010                                 ' D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|T0|T1
B = &B1001_0000                                                 ' B0|B1|B2|TB|R0|R1|R2|S
Portb.1 = 1                                                 'CE открыть
Shiftout Portb.2 , Portb.3 , A , 0                          'Параметры Data и Clk, отправляем вначале 16-бит
Shiftout Portb.2 , Portb.3 , B , 0                          'Параметры Data и Clk, потом 8-бит
Portb.1 = 0                                                 'CE закрыть
End


Проблема в чем, чип управляется 24 битами. Переменная Dword - это 32 бита! Следовательно надо дробить, вначале отправляем 16, а затем надостающие 8 бит.
В переменные A и B заполните нужные значения настроек (здесь мне вдумываться влом, пардонте).

Отредактировано RDW (2018-11-16 20:39:27)

0

4

Данные, биты хранятся от старшего бита до младшего:

---76543210_76543210
&B00000000_00000000

И т.д...

Поправил в коде выше А и В, вашу комбинацию:

D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|T0|T1|B0|B1|B2|TB|R0|R1|R2|S|
  0   1    0    0   1   1    0   1    1    0    0     0     0     0    0   0   0   0    0   0   1   0    0  1

Отредактировано RDW (2018-11-16 20:40:29)

0

5

Если не получится, то поменять режим передачи с 0 на 2:

Код:
Shiftout Portb.2 , Portb.3 , A , 2                          'Параметры Data и Clk, отправляем вначале 16-бит
Shiftout Portb.2 , Portb.3 , B , 2                          'Параметры Data и Clk, потом 8-бит

0

6

Щас попробую

Отредактировано Maks77 (2018-11-19 15:43:59)

0

7

RDW
Подскажите пожалуqста. на микроконтроллере должна быть генерация синуса кварцевого резонатора? Не вижу синус на осциллографе. Установлен кварц 4Мгц

0

8

RDW
видимо ошибся на счет работы синтезатора. не правильную частоту выдает, частота не стабильна

0

9

Почему у людей работает, у меня ни хрена не работает :angry:

0

10

Это потому, что мы не знаем, что вы там делаете. :)
Чтобы увидеть синус на кварце МК, надо его подключить и настроить через фюзы работу с внешнего кварца.

0

11

Подскажите как настроить фюзы на Bascom

0

12

Может дело в фюзах?

0

13

Коды делителя  правильно выставляю. Вижу на осциллографе Импульсы ШИМ на 14 ножки микросхемы LM7001. После транзистора сигнал ШИМ инвертируется, далее через фильтр выпрямляется, и постоянное напряжение подается на PLL микросхемы MC3362

Отредактировано Maks77 (2018-11-29 15:34:01)

0

14

Частоту измеряю на 11-й ножке микросхемы LM7001

0

15

Maks77 написал(а):

Может дело в фюзах?

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

Внешний кварц должен указываться в менюшке, что-то типа "Ext. Crystal Osc.; Frequency 3.0-8.0 MHz; Start-up time: 14 CK + 65 ms;  [CKSEL=1100 SUT=01]".

Ещё обычно отключают внутренний делитель частоты на 8: "[CKDIV8=0]". По умолчанию, если чип с завода, то он всегда установлен (включен) и скорость МК в 8 раз медленнее.

Отредактировано RDW (2018-11-29 16:57:10)

0

16

RDW
уважаемые спецы, не получается правильно прописать код на микросхему. какие будут варианты?

0

17

Maks77 написал(а):

bulat943
Уважаемый большое вам спасибо! Программа заработала на отлично! Респект и уважение всем кто участвовал в форуме . Код программы выглядит так:

$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Dim Res As Word                                             'Переменная

Config Portb.1 = Output                                     ' CE
Config Portb.2 = Output                                     ' DATA
Config Portb.3 = Output                                     ' CLК

Portb.1 = 0                                                 'CE - ставим в ноль
Res = 28190                                               ' Заданная частота гетеродина
Res = Res / 5                                              ' Делитель

Portb.1 = 1                                                'CE-открыть
Shiftout Portb.2 , Portb.3 , Res , 3 , 14 , 50

Res = 904                                                  'параметр nfm модуляции, так же в нем определяется шаг 5кГц

Shiftout Portb.2 , Portb.3 , Res , 3 , 10 , 50

Portb.1 = 0                                                'CE-закрыть
Waitms 30

End

Единственное что не понятно параметр 904, 904 в бинарном коде = 1110001000. По битно у меня не совпадает по моему заданному коду. Если вам не сложно расшифруйте этот код по параметрам

Отредактировано Maks77 (Сегодня 13:56:12)


Ключем ко всякой науке является вопросительный знак.

Отредактировано Maks77 (2018-12-05 11:28:53)

0

18

Удалил,а то вдруг кому то что то не понравится и опять получу пинок под зад

0

19

bulat943ему
Почему? Именно по вашему коду синтезатор заработал. Вы же все правильно написали

Отредактировано Maks77 (2018-12-06 06:00:30)

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Проблема су управлением микросхемы LM7001