АвторСообщение



Пост N: 1
Зарегистрирован: 22.10.13
Рейтинг: 0
ссылка на сообщение  Отправлено: 22.10.13 13:36. Заголовок: Генератор прямоугольных импульсов на PIC


Помогите написать прошивку на С для PIC 18f252, для генерации прямоугольных импульсов частотой 600- 900 кГц. если такое конечно возможно. Спасибо.
P/S: использую PIC C Compiler

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 20 [только новые]


постоянный участник


Пост N: 88
Зарегистрирован: 01.03.11
Откуда: Екатеринбург
Рейтинг: 0
ссылка на сообщение  Отправлено: 22.10.13 18:20. Заголовок: А что у Вас не получ..


А что у Вас не получается? В чем сложности? Подробнее опишите проблему

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 657
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг: 1
ссылка на сообщение  Отправлено: 27.10.13 09:03. Заголовок: Какая точность нужна..


Какая точность нужна? На таких частотах шаг изменения частоты будет большим даже при максимальной тактовой МК. Я делал на асме, простенький, но вполне работоспособный. Если перенести на PIC 18f252, то можно выжать максимум, причём со скважностью!
Генератор с интерактивным изменением частоты и скважности на 12F629

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 622
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 27.10.13 16:02. Заголовок: unker пишет: проши..


unker пишет:

 цитата:
прошивку на С


Прошивки на С не пишутся. На С пишутся программы.
Сан Саныч, ему нужна на Си, а не на асм. Что-то пахнет курсовым...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2
Зарегистрирован: 22.10.13
Рейтинг: 0
ссылка на сообщение  Отправлено: 30.10.13 22:04. Заголовок: MAZ, как это не пишу..


MAZ, как это не пишутся на С. Вам например такая среда как PIC C Compiler ни о чем не говорит?

Только вот это не курсовая, а диплом.

Сан Саныч, спасибо хоть на этом.

medved, не получается выжать из мк необходимые мне 600- 900 кГц. Пытаюсь 800 кГц сделать не получается, там длительность импульсов начинает плясать, один длиннее другого и наоборот.

Спасибо



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 630
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 30.10.13 22:47. Заголовок: unker пишет: MAZ, к..


unker пишет:

 цитата:
MAZ, как это не пишутся на С.



unker пишет:

 цитата:
Помогите написать прошивку на С для PIC 18f252



Компилятор мне не знаком, это точно.
Но покажите мне одну строчку прошивки на Си. Очень прошу.
Подчеркиваю, именно прошивки. То что зашивается в мк (программируется), т.е. машинный код.
Как Вы пишите машинным кодом на Си? У меня нет ответа.
Я думал, что Вы не точно выразились. Поэтому и решил посмеяться, надеясь, что Вы поймете свою оговорку.
Но это была оказывается не оговорка.
А что за ВУЗ? Такие генераторы делают обычно в курсовых и то на 2-3 курсе. Для диплома как-то странно.
Если дипломник не знает чем прошивка отличается от текста программы, написанного на чем угодно, то учат у нас точно очень хорошо.
Насчет Вашей задачи. Не знаю как на Си но на асме её решить на мой взгляд не очень просто. Ваш контроллер выполняет команды по максиму 10МГц. Т.е. 0,0000001С = 0,1мкс это такт программы. А Вам нужно 0,625 мкс При 800 КГЦ. Вот и думайте как за 6 тактов сформировать фронты импульсов. Если привязать к прерываниям, не успеете, если тупо менять фронты через 6 тактов. То будет генератор, на фиксированную частоту. Если у Вас диапазон перестройки, можно конечно попробовать, но очень тесно. Компилятор ( который я не знаю) у меня большие сомнения даст Вам эти 6 тактов. Да и смысл в Си теряется.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 385
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг: 1
ссылка на сообщение  Отправлено: 31.10.13 07:57. Заголовок: unker пишет: Только..


unker пишет:

 цитата:
Только вот это не курсовая, а диплом.


Так это надо несколько поглубже копоть. Диплом это финиш для спеца. "Куда мне до неё..."
Я только практикант в Си. Почитай что- нибудь про генераторы на МК.
У PIC контроллеров 4 такта на команду, у АВР один такт. Имеет смысл рассмотреть вариант у них периодический вывод 1/0 в порт при 20 МГЦ тактовом генераторе и считать время на команды управления.
Проект, что выложил, не мой, к сожалению, и сырой - думаю, но глянь. Написан на Си в среде FlowCode, работает в симуляторе Proteus. Там есть картинка предела - 86 кГц. Управление частотой кнопками. Если готовый дипломный проект ищешь, то это не то. Просто посмотри этот проект и выжми из него всё , если есть у тебя такой вопрос и серьезный интерес. И посмотри возможности АВР в этом плане.
http://zalil.ru/34791529






Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 22.10.13
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.10.13 18:51. Заголовок: MAZ, ах вот вы о чем..


MAZ, ах вот вы о чем, тогда да был неправ. Генератор это не весь диплом, а всего лишь один из блоков. Я разрабатываю систему диагностирования.
А СИ я сам изучаю, в универе нас этому не учили. Поэтому и прошу помощи.

Почему именно PIC 18f252. Все просто, у меня в эту систему будет входить 3 блока, два из них я уже реализовал, хотелось как можно меньше изменений в вносить с в схему заменить лишь прошивку.

Вячеслав, спасибо. Обязательно посмотрю проект что вы скинули.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 631
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 31.10.13 19:36. Заголовок: Тогда понятно. А ген..


Тогда понятно. А генератор Вам нужен на фиксированную частоту? Или все таки диапазон?
Боюсь, что у Вас ничего не получится. Я Си практически не знаю. И в этом вряд ли Вам помогу. А вот то что на асме это сделать очень тяжело, практически на грани невозможности, это точно.
Надеюсь понимаете, что на асме можно попасть "в иголочное ушко". И на Си можно, но это наверно дано хорошо знающему Си человеку, ну и от используемого компилятора зависит. Хотя тоже меня грызут сомнения.
Дело в том что Ваш мк ничего другого делать физически не сможет, только генерировать такие частоты.
Может я не прав. Но пока выхода не вижу. Не будет стабильности у такого генератора по длительности.
Как выход используйте отдельный мк.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 386
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг: 1
ссылка на сообщение  Отправлено: 01.11.13 07:05. Заголовок: unker пишет: хотело..


unker пишет:

 цитата:
хотелось как можно меньше изменений в вносить с в схему заменить лишь прошивку.


Уже понятнее задача. Так ли я понял: есть узел с генератором на PIC 18f252, надо изменить частоты генерации этого камня? Какие функции выполняет этот МК кроме генерации? Какие частоты генерирует этот узел изначально? Сколько времени у тебя для поисков и самообразования? Задача, думаю, непростая для новичка. MAZ прав, возможно надо будет писать в АСМ. Или вставками на АСМ. Твоих возможностей не знаем, быстро и "на коленке" это возможно и не сделать. Полная картина ясна только тебе. Тебе и решать.
Как бы я взялся за решение. Ответил на вопрос: какова максимальная частота генерации этого камня под управлением на Си? Интернет у тебя есть. Ищи. На схеме в Протеусе опробовал генератор со своей программой и нужными функциями, далее - макет на железе (с таким же камнем) и анализ результатов. Если годиться -тогда прошиваем камень исходного узла.



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 387
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг: 1
ссылка на сообщение  Отправлено: 01.11.13 09:30. Заголовок: http://zalil.ru/3479..


http://zalil.ru/34791810
Вот моя прикидка, как сумел.
Частота такта 10 МГц, только обращение к выводу порта и по 2 nop вместо задержек. Можно, думаю, упростить обращение к портам в Си. А тебе точно нужно частоту 0,9 МГц от такого камня?
Не розыгрыш? Шутников теперь много.


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 632
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 01.11.13 10:47. Заголовок: Какая разница вставк..


Какая разница вставками на асм или не ставками. Контроллер постоянно должен фиксировать такты (грубо 6), формировать фронт импульса и не на что не отвлекаться. Ни какие прерывания не помогут, т.к. одна процедура сохранения и восстановления спец регистров займет уйму времени, а если еще стоят какие то задачи? Практически невероятно.
Если запустить встроенный таймер, все равно: сохранение, прерывание, предустановка, изменение фронта, восстановление. Не успеть. Основная программа работать из-за этих прерываний или не будет или слишком медленно.
Задача практически не реальная.
Как выход. Взять какой нибудь простой мк на те же 10 МГц и сделать только генератор. Тогда хотя бы его можно будет перестраивать с опред. шагом, включать или выключать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 388
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг: 1
ссылка на сообщение  Отправлено: 01.11.13 16:17. Заголовок: MAZ пишет: Задача п..


MAZ пишет:

 цитата:
Задача практически не реальная.


Согласен. Не зная, что стоит у него в обрамлении камня, трудно судить. Может камень только управляет отдельным генератором. Допустим, стоит там компонент 561ИЕ15 - у него: один С вход, один выход и коэффициент можно задавать с 1 до 8000 с МК. Или еще что-то, типа того.



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 22.10.13
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.11.13 17:20. Заголовок: в общем хотел к мк п..


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

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


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 633
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 02.11.13 18:01. Заголовок: Если определенное ко..


Если определенное количество импульсов, то это другой разговор. Главное какое количество. Ну до 500 при 800КГц, это ни о чем


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 658
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг: 1
ссылка на сообщение  Отправлено: 02.11.13 23:02. Заголовок: unker пишет: Вячесл..


unker пишет:

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


ИЕ это счётчик, обычно используется как делитель с коэффициентом 2 в степени .... . В Вашем случае однозначно не удастся сгенерировать нужную частоту (те же 800 кГц), тем более если МК уже чем то занят. МАЗ об этом писал. Он вообще редко ошибается!
А вот прикрутить внешний вполне реально. Погуглите, есть вполне приемлемые синтезаторы частот. Если нужен меандр определённой частоты, то вообще просто. Если с возможностью перестройки, сложнее, но тоже выполнимо. От идеи организовать на том же МК с основной программой ещё и стабильный генератор на таких частотах лучше отказаться. Только время потеряете. Смотрите в сторону внешних.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 659
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг: 1
ссылка на сообщение  Отправлено: 02.11.13 23:21. Заголовок: unker пишет: в обще..


unker пишет:

 цитата:
в общем хотел к мк подключить nrf24l01, передавать на него команду на запуск генерации определенного количества импульсов фиксированной частоты, в общем это все что должен выполнять этот мк.


Просмотрел! Повторю вопрос МАЗа, немного перефразировав. Какое время должен работать nrf24l01? И вообще какую роль он выполняет? Обычно его несущая 2.4 ГГц.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 389
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг: 1
ссылка на сообщение  Отправлено: 03.11.13 09:52. Заголовок: unker пишет: Вячесл..


unker пишет:

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



Это можно. Была у меня задача: выдавать на объект разные частоты. Скажем: 2 мин - 1кГц меандр, 3 - мин 200 Гц и т.д. Просто сделал отдельный генератор на максимальную требуемую частоту и использовал ИЕ15 по его назначению. При максимальной частоте задавал коэффициент деления для ИЕ15 : 1, для других значений частот - задавал другие коэффициенты. Только вот - древний этот компонент и частотные свойства у него не ГГц -ы.
Поищи современные решения.
Держи описание компонента 564ИЕ15 в pdf, корпус планарный - скорее можно найти.
http://zalil.ru/34792468



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 634
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 03.11.13 11:06. Заголовок: 564ИЕ15 Это уже пра..


564ИЕ15 Это уже практически "каменный век", как не обидно, но это так.
Тот же генератор можно сделать на контроллере и намного гибче.
Есть отличные готовые синтезаторы, правда тоже управляются контроллером. Но управлять, это совершенно другое.
AD9850 например. Его же не покупать, а так в проект прилепить

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 89
Зарегистрирован: 01.03.11
Откуда: Екатеринбург
Рейтинг: 0
ссылка на сообщение  Отправлено: 04.11.13 11:03. Заголовок: А ШИМ почему не под..


А ШИМ почему не подходит? При тактовой частоте 10 МГц, аппаратный ШИМ может выдать 1,25 МГц Или я чего-то не догоняю?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 636
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 04.11.13 11:36. Заголовок: Может. Но а кто знае..


Может. Но а кто знает, что там еще происходит. Может таймеры Шима уже задействованы. Мы же гадаем на кофейной гущи


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 31
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия