|
Аппаратный ШИМ на ATtiny2313, А также несколько вопросов относительно него |
|
|
|
Mar 21 2011, 16:41
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 5-03-11
Пользователь №: 63 417

|
На днях попробую раздельное питание. Осциллографа нет. Вопрос по разводке. Ниже мое художество (не очень аккуратное)) примерно как спаяно. Скажите, это плохая разводка)?
Сообщение отредактировал bfrogg - Mar 21 2011, 16:42
|
|
|
|
|
Mar 21 2011, 17:17
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(bfrogg @ Mar 21 2011, 19:41)  Скажите, это плохая разводка)? Отвратительная Как минимум, открываем "Микропроцессорные структуры" Шевкопляса и штудируем соотв. раздел: http://lord-n.narod.ru/walla.html Можете еще почитать вот это: http://www.atmel.com/dyn/resources/prod_do...nts/doc1619.pdfБез изучения азбуки дальше обсуждать нечего ...
Сообщение отредактировал kovigor - Mar 21 2011, 17:26
|
|
|
|
|
Mar 21 2011, 18:29
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
У Вас L293 неправильно включена. Ноги 7, 10 в воздухе висят? Внимательно даташит почитайте. Если езда планируется только вперед, то на землю их повесьте. Если реверс планируется, то подключите их к любому свободному порту. Тогда в случае подачи 1 на эти ноги, можно заставить двигатель вращаться в другую сторону. ШИМ при этом будет работать "наоборот" - большему значению будут соответствовать меньшие обороты. Вот пример: CODE /*Ноги 7, 10 L293 подключены к PB0*/ void set_pwm(uint16_t valueL, uint16_t valueR, uint8_t direction) { DDRB |= 0x1; // set PB0 as output if(direction) { OCR1A = valueL; OCR1B = valueR; PORTB &= 0xFE; // set PB0=0 } else { OCR1A = 0xFFFF - valueL; OCR1B = 0xFFFF - valueR; PORTB |= 0x1; // set PB0=1 }
}
Насчет питания: подайте ваше основное питание непосредственно на L293, tiny2313 запитайте через стабилизатор, при этом подайте питание на стабилизатор через дроссель на 100мкГн, короче сделайте LC фильтр. Также LM7805 требует конденсаторов емкостью не менее 2.2мкФ на входе и выходе. Если будете ставить электролиты, то возьмите на 20мкФ х 16В. Все свободное место на плате - землей "залейте". Не жалейте меди Параллельно двигателям поставьте конденсаторы на 0.1 - 1 мкФ, керамику. Вроде все
Сообщение отредактировал nk@ - Mar 21 2011, 18:30
|
|
|
|
|
Dec 13 2013, 12:08
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-12-13
Пользователь №: 79 611

|
В общем вопрос похожий. Поэтому новую тему создавать не стал. Помогите с исходником. Сделана плата на SOIC tinny 2313. С кварцем 7,3728. Питание 3В. 15 ножка (OC1A) через транзистор управляет ИК диодом. Есть ИК маяк, работу которого нужно повторить этой схемой. Последовательность импульсов эталонного маяка довольно сложная. Пачка из N импульсов (длительностью Т1) - такая же пауза (Т1), нужно 15 таких пачек с паузами Т2 (Т2 кажется кратно Т1), затем пауза длительностью Т3 (тоже кратная Т1). Меня хватило только помигать светодиодом. Программный ШИМ и работу с таймерами осилить не смог. (((
Эскизы прикрепленных изображений
|
|
|
|
Guest_TSerg_*
|
Dec 13 2013, 12:45
|
Guests

|
Браться надо за то, что можете, а не за то, что хочется, а иначе - это заказ на работу.
|
|
|
|
|
Dec 13 2013, 12:54
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-12-13
Пользователь №: 79 611

|
Цитата(TSerg @ Dec 13 2013, 14:45)  Браться надо за то, что можете, а не за то, что хочется, а иначе - это заказ на работу. Могу и заплатить, Вы возьметесь?? Это не для промышленного производства, сразу оговариваюсь. Это разовое решение, для игрушки-робота. Но хочу именно исходник, без ассемблера и готовых бинарников, иначе так и не научусь. Украина, Киев. Спс.
Сообщение отредактировал Disha - Dec 13 2013, 12:58
|
|
|
|
Guest_TSerg_*
|
Dec 13 2013, 13:04
|
Guests

|
|
|
|
|
|
Dec 13 2013, 13:11
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-12-13
Пользователь №: 79 611

|
додаток Цитата(TSerg @ Dec 13 2013, 15:04)  Что я по этой ссылке должен был увидеть??
Эскизы прикрепленных изображений
|
|
|
|
Guest_TSerg_*
|
Dec 13 2013, 13:30
|
Guests

|
- тему "Предлагаю работу".
|
|
|
|
|
Dec 13 2013, 14:02
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(Disha @ Dec 13 2013, 16:08)  Меня хватило только помигать светодиодом. Тут, похоже, ШИМ не обязателен, достаточно просто функций delay_ms() и delay_us(). Это я о CodeVision. 300 мкС с помощью последней функции получить - раз плюнуть. Думаю, так будет даже проще, чем с аппаратным ШИМ. Еще вариант: в обработчике прерывания от таймера (прерывание возникает каждые 150 мкС) реализовать простейший цифровой автомат, управляющий ножкой. Еще вариант: тот же автомат, но управляемый таблицей состояния ножки, заданной в виде массива. Этот вариант, возможно, будет наилучшим. Один бит - одно состояние. Задача несложная. И с ШИМ никаких особых проблем нет, тем более сейчас есть масса книг по AVR на русском ...
|
|
|
|
|
Dec 16 2013, 10:53
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-12-13
Пользователь №: 79 611

|
Цитата(kovigor @ Dec 13 2013, 16:02)  Тут, похоже, ШИМ не обязателен, достаточно просто функций delay_ms() и delay_us(). Это я о CodeVision. 300 мкС с помощью последней функции получить - раз плюнуть. Думаю, так будет даже проще, чем с аппаратным ШИМ. Еще вариант: в обработчике прерывания от таймера (прерывание возникает каждые 150 мкС) реализовать простейший цифровой автомат, управляющий ножкой. Еще вариант: тот же автомат, но управляемый таблицей состояния ножки, заданной в виде массива. Этот вариант, возможно, будет наилучшим. Один бит - одно состояние. Задача несложная. И с ШИМ никаких особых проблем нет, тем более сейчас есть масса книг по AVR на русском ... Я не зря писал что Т2 и Т3 кратны Т1. Самые короткие импульсы это грубо говоря несущая (частоту которой я точно не знаю) около 40 кГц. Я думал ее организовать с помощью ШИМ чтоб подбирать было легче и точнее. А потом уже отсчитывая нужное кол-во коротких импульсов формировать все крупные последовательности (там только колво импульсов несущей нужно подставлять). Именно с помощью массива. спс
Сообщение отредактировал Disha - Dec 16 2013, 10:55
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|