Например TDA7294

Форум РадиоКот • Просмотр темы - PIC16F84 Вывести график на осциллограф
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 13:20:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 14:02:08 
Родился

Зарегистрирован: Вс дек 18, 2016 13:43:40
Сообщений: 4
Рейтинг сообщения: 0
Доброго времени суток! Задачка крайне проста, нужно вывести график функции на осциллограф, используя микроконтроллер PIC16F84.
Т.е. я так понял мы выводим на ЦАП и смотрим результат на осциллографе.
Прогромировать микроконтроллер на Ассемблере.
Функция 100*sin(wt)+50sin(3wt)
Для начала хотя бы понять как вывести простую пилу или там просто наклонную прямую?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 15:36:28 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -27
Зарегистрирован: Сб ноя 19, 2016 21:05:48
Сообщений: 203
Рейтинг сообщения: 0
Для пилоообразного сигнала:
формируем на выход микроконтроллера линейно увеличивающийся через равные интервалы времени код для параллельного ЦАП. По достижении максимального значения кода повторяем все с начала. И так далее.

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

_________________
Подпись убрал вместе с автором. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 16:40:23 
Родился

Зарегистрирован: Вс дек 18, 2016 13:43:40
Сообщений: 4
Рейтинг сообщения: 0
"формируем на выход микроконтроллера линейно увеличивающийся через равные интервалы времени код для параллельного ЦАП"

А на какой выход микроконтроллера? Есть portA portB и еще контакты, не совсем понимаю как это должно выглядеть на ассемблере?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 16:55:08 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -27
Зарегистрирован: Сб ноя 19, 2016 21:05:48
Сообщений: 203
Рейтинг сообщения: 0
Студент? сессия, курсач через неделю? ....поздно пить Боржоми, когда почки отказали.
Написать за вас - не просите. Раньше надо было учиться. Ну ниче, в армии научат

_________________
Подпись убрал вместе с автором. aen


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 17:06:39 
Родился

Зарегистрирован: Вс дек 18, 2016 13:43:40
Сообщений: 4
Рейтинг сообщения: 0
Студент, только это не курсач, слишком просто тогда. Учеба уже закончилась, теперь ссесия, но в следующем семестре будет большой проект по этой теме, препод настоятельно советовал начать разбираться, вот и пытаемся. Я лаборантом работаю, есть доступ к стендам) Хорошей литературы я на этот счет не нашел, может что посоветете?
Впринцыпе основы понятны, но не до конца. Решил использовать ассемблер, что бы понять как именно работает контроллер, а не Си.
Вот и спрашиваю какой именно выход выдает сигнал побайтно?
И еще некоторые моменты.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 17:27:13 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -27
Зарегистрирован: Сб ноя 19, 2016 21:05:48
Сообщений: 203
Рейтинг сообщения: 0
PIC16F84 (особенно без буквы А в конце) - это очень простой, маломощный и очень древний микроконтроллер. Этакий мамонт, большой, неуклюжий и неоправданно дорогой. Но старые преподы-мастодонты очень любят совать его современным студерам для изучения.
В принципе, для понимания основ сойдет, но это как каменный век с каменными топорами.
Так вот. По этому микроконтроллеру в инете гуляет множество различных самоучителей, простых и видеоуроков, за прошедшие 20 лет его вдоль и поперек истаскали. Литературы - просто завались. От нормальной документации на сайте Микрочипа, до корявых "учителей" типа Корабельникова. Гуглопоиск заправляет.

У микроконтроллера есть два порта - набора выводов с переключаемым направлением вход/выход. Один, PORTB, шириной в 8 бит (1 байт), другой, PORTA шириной 6 бит, неполный. Остальные выводы - питание, внешний кварц и вход сброса.
Для вашей тригонометрической функции пределы значения функции будут равны ±150, то есть 300 в беззнаковой величине. А в одном байте можно получить только 256 значений. Значит, потребуется 9 бит - полный PORTB шириной 8 бит (1 байт) и один выход из PORTA - для девятого бита. Фактически этот девятый бит будет знаковым (бит знака числа).
Этот микроконтроллер 8-битный, поэтому все операции у него производятся с разрядностью 8 бит. На выход PORTB можно одновременно выдать параллельно 8 бит (1 байт).

Что такое двоичные числа, сколько бит в байте, как работает микроконтроллер и что такое ассемблер - надлежит изучить вам самостоятельно. Всё есть в инете, в учебниках. Потому что за вас вашу работу в лаборатории делать никто не будет.
Можно написать и на Си, если знаете его.

_________________
Подпись убрал вместе с автором. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 17:52:18 
Родился

Зарегистрирован: Вс дек 18, 2016 13:43:40
Сообщений: 4
Рейтинг сообщения: 0
Спасибо большое за ответ)

Начнем с пилы:
Пила у нас от 0 до 255
Т.е. в асемблере мне выводить на порт B сигналы от 00000000 до 11111111 каждый момент времени работы контроллера?
Реализуется же цикл пока не переполнится память?
Прост не совсем понятно, как потом цифровой сигнал соберется в напряжение, значит ЦАП уже подключен к порту B и сам все делает?
Данный микроконтроллер может только выдавать 1 и 0 на двух портах выхода, на этом его функйии заканчиваются, если говорить только об выходе?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 18:30:28 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -27
Зарегистрирован: Сб ноя 19, 2016 21:05:48
Сообщений: 203
Рейтинг сообщения: 0
Ну да. На выходе порта - параллельный ЦАП, принимающий параллельный код. ЦАП может быть сделан на такой же древней микросхеме КС1118ПА1, либо на более дорогом импортном варианте AD558. Либо примитивный вариант параллельного ЦАПа - на резистивной матрице R-2R (гуглопоиск в теме), но точность преобразования будет низкой и нестабильной.
Изучите тему цифро-аналогового преобразования на резистивной матрице (гуглопоиск рулит)

Для линейного увеличения кода нужно написать простейший цикл с инкрементом регистра порта от 0 и... а обнулится порт сам по достижении макс.значения 255 и счет повторится заново.
Последовательность действий:
- настроить порт Б на режим выхода
- очистить регистр порта Б
далее цикл:
- инкремент регистра порта Б на 1,
- отсчет программной задержки, например на несколько миллисекунд. программная задержка - это такой же счет в регистрах, с целью создания интервала. без нее на портах данные будут меняться очень быстро. но на первых порах можно и без нее. с внешним кварцем 4 МГц на выходе получим частоту формируемой пилы около 2 кГц.
- повторить

Получится как раз самая настоящая пила.

На ассемблере это будет выглядеть вот так:
(забыл как настроить порт на выход в этом ПИКе)
clrf PORTB
loop:
incf PORTB
goto loop

_________________
Подпись убрал вместе с автором. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вс дек 18, 2016 22:16:22 
Опытный кот

Карма: 4
Рейтинг сообщений: 81
Зарегистрирован: Пн апр 11, 2011 10:08:52
Сообщений: 844
Рейтинг сообщения: 0
RMW :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Пн дек 19, 2016 02:43:22 
Встал на лапы

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Пт окт 19, 2012 05:54:55
Сообщений: 118
Рейтинг сообщения: 0
Настройка порта через регистр TRIS(порт), можинно побитно(поноговно) ). Где 1, там вход. Где 0... Преподов расстреливать пора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Пн дек 19, 2016 06:27:52 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -27
Зарегистрирован: Сб ноя 19, 2016 21:05:48
Сообщений: 203
Рейтинг сообщения: 0
-=Vovka=- писал(а):
RMW :))

Для этого случая совершенно не критично, тут нет аналоговых входов. Проблема RMW была только там, где на порту были аналоговые входы.
Я же писал - PIC16F84A - очень древний и очень примитивный микроконтроллер. Современные уже давно имеют раздельные регистры входа и выхода

_________________
Подпись убрал вместе с автором. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Пн дек 19, 2016 10:54:15 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: 0
Мурато Мяуконни писал(а):
Проблема RMW была только там, где на порту были аналоговые входы.

Та ты шо! :)))


Вложения:
1472612553_11eab6c2c9d1ab38f66fc8f5991e137b.jpg [19.7 KiB]
Скачиваний: 498
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Пн дек 19, 2016 18:46:25 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -27
Зарегистрирован: Сб ноя 19, 2016 21:05:48
Сообщений: 203
Рейтинг сообщения: 0
Может я конечно чего и не помню, сто лет не брал в руки старые ПИКи, чеж хочешь то, мог и запамятовать что-то. Но по-моему именно так и было. По крайней мере, стопудово помню, что если на порту был хоть один аналоговый вход, то проблема RMW появлялась. По остальным случаям не помню. вроде не было

_________________
Подпись убрал вместе с автором. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PIC16F84 Вывести график на осциллограф
СообщениеДобавлено: Вт дек 20, 2016 18:53:23 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мурато Мяуконни писал(а):
По крайней мере, стопудово помню, что если на порту был хоть один аналоговый вход, то проблема RMW появлялась.
Путаешь с "хоть один порт был настроен на "вход", все операции записи с настроенными на "выход", выполняются через RMW". Но это - байка, пролетевшая по форумам. Порты, на самом деле, автономны и независимы друг от друга. По этому, без разницы что и как настроено, и любые операции записи в порт выполняются через RMW.
И ещё, RMW - это не проблема, это принцип модификации данных.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y