|
ШИМ на ATtiny25 |
|
|
|
May 6 2009, 10:02
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(stells @ May 6 2009, 12:40)  80 команд на цикл - это теоретически 1,25%. реально конечно хуже получится Вот именно - реально хуже получится. Имхо, при однократном задании длительности импульсов (т.е. задали длительность и не меняем) можно, наверное, получить временные интервалы с погрешностью менее 5%, если же длительности импульсов будут меняться на каждом периоде (даже если и "очень плавно"), то погрешности, наверное, будут под 50%. Может быть, автору решить задачу иначе: МК генерит один сигнал ШИМ, а внешний сдвигающий регистр формирует недостающие три; тактирование сдвигающего регистра - от МК?
|
|
|
|
|
May 6 2009, 10:45
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 15-10-08
Из: Воронеж
Пользователь №: 40 984

|
Цитата(Палыч @ May 6 2009, 14:02)  Может быть, автору решить задачу иначе: МК генерит один сигнал ШИМ, а внешний сдвигающий регистр формирует недостающие три; тактирование сдвигающего регистра - от МК? Спасибо, за советы. Наверное я остановлюсь на том, чтобы задать длительность жестко и выдавать импульсы с 4 выходов. На сколько я понял из обсуждения это получить реально.
|
|
|
|
|
May 6 2009, 11:08
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(vv_gulyaev @ May 6 2009, 13:45)  Спасибо, за советы. Наверное я остановлюсь на том, чтобы задать длительность жестко и выдавать импульсы с 4 выходов. На сколько я понял из обсуждения это получить реально. На всякий случай, разберитесь с тем что такое ШИМ, тем более, многофазный, и для чего он нужен. Чтобы после окончательной отладки программы не осенило, что все это были бесполезные усилия изначально. Плохонький ШИМ может иметь 128 позиций. Да на четыре фазы, да на 100кГц. Это будет такт решения задачки.... попробуйте посчитать. И каждый такт ждите потенциального прерывания по короткому замыканию. Его нужно обработать максимум за 500наносекунд. Ищите постановщика системной задачи - грамотного схемотехника. Он дальше расскажет что и где нужно написать в программе, а где вообще без программ обойтись нужно.
|
|
|
|
|
May 6 2009, 11:22
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 15-10-08
Из: Воронеж
Пользователь №: 40 984

|
Цитата(Microwatt @ May 6 2009, 15:08)  На всякий случай, разберитесь с тем что такое ШИМ, тем более, многофазный, и для чего он нужен. Да, я погорячился с названием темы. На данном этапе нужно просто 4 импульса одинаковой частоты(примерно 100 КГц) сдвинутые на 1/4 периода.
|
|
|
|
|
May 6 2009, 11:48
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(vv_gulyaev @ May 6 2009, 13:45)  Наверное я остановлюсь на том, чтобы задать длительность жестко и выдавать импульсы с 4 выходов. Если это - то, что Вам нужно (в чём я сомневаюсь), то реализовать можно. Писать программу нужно будет на ассемблере, на языке высокого уровня вряд ли получится что-то путное. Основной цикл программы будет довольно примитивный: 1.Вывод "значение 1" в порт В 2.Задержка 1 3.Вывод "значение 2" в порт В 4.Задержка 2 5.Вывод "значение 3" в порт В 6.Задержка 3 ........... 15.Вывод "значение 8" в порт В 16.Задержка 8 17.Переход на п.1 Значения, выводимые в порт, и величины задержек будут зависить от длительности импульсов. Кроме того, общее время выполнения цикла должно быть 80 тактов для частоты 100кГц и частоты тактирования МК 8МГц. Можно значения, выводимые в порт, и величины задержек хранить в виде двух массивов, а программу упростить до: 1.Вывод "значение i" в порт В 2.Задержка i 3.Взять следующее i 4.Переход на п.1 Однако, такая программа хоть и станет "более настраиваемой", но точность выдержки задержек - резко упадёт. Если это не критично, то второй вариант мне кажется предпочтительней...
|
|
|
|
|
May 8 2009, 08:34
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 15-10-08
Из: Воронеж
Пользователь №: 40 984

|
Еще возник вопрос по поводу программирования tiny25. Имеется программатор ByteBlasterII и программа Avreal Shell. В списке доступных микросхем нет tiny25, хотя в сети видел упоминания, что она должна поддерживаться этим программатором. В наличии микросхем пока нет, поэтому хотелось бы узнать возможно ли использовать BBII для программирования tiny25, или нужно покупать/паять AVRISP.
|
|
|
|
|
May 8 2009, 08:55
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(vv_gulyaev @ May 8 2009, 11:34)  В списке доступных микросхем нет tiny25, хотя в сети видел упоминания, что она должна поддерживаться этим программатором. В наличии микросхем пока нет, поэтому хотелось бы узнать возможно ли использовать BBII для программирования tiny25, или нужно покупать/паять AVRISP. Можно и довольно давно, c 2006 года, просто avreal shell об этом может не знает (или версия shell-а посвежее нужна), это только оболочка над собственно программатором avreal (хм... а там и звёздочку давно пора снимать...)
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
May 8 2009, 10:41
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 15-10-08
Из: Воронеж
Пользователь №: 40 984

|
Цитата(ReAl @ May 8 2009, 12:55)  просто avreal shell об этом может не знает (или версия shell-а посвежее нужна), В интернете нашел лишь одну версию avreal shell это версия 1,08.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|