AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
05.10.2018, 11:20
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Не тот импульс.
Здравствуйте. Что-то проверил я устройство на микроконтроллере ATTiny13 и оно оказалось неработоспособным, а точнее импульс, который я закладывал в программу(ASM) не такой как я хотел. Вообще-то я хотел инверсный или отрицательный импульс: длительность 0 T1 = 1 (мкс), длительность 1 T2 = 2 (мкс), и так в периоде.
Но осциллограф показывает постоянно T1 = 10 (мкс), T2 = 16-17 (мкс). В чем может быть проблема и как ее решить? Желательно просто. Слово "постоянно" написано не случайно, дело в том что эти величины(T1 и T2) держатся постоянно - вне зависимости от того, как я меняю переменные в программе - те переменные, которые задают длительность импульсов. Вот программа:
Код:
|
;T1 = 12 тактов = 1 (мкс)
;T2 = 24 такта = 2 (мкс)
Forever: ;Число тактов
ldi Temp, 0 ;1
out PORTB, Temp ;1, Out = 0
ldi Counter, 0 ;1, 12/3 = 4
Delay1:
dec Counter ;1
brne Delay1 ;2 - при ответвлении, 1 - при проходе вниз
ldi Temp, 0x10 ;1
out PORTB, Temp ;1, Out = 1
ldi Counter, 0 ;1, 21/3 = 7
Delay2:
dec Counter ;1
brne Delay2
rjmp Forever ;2 |
Схема внизу, выход с ноги PB4.
|
|
|
|
05.10.2018, 11:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Не тот импульс.
Код:
|
ldi Counter, 0 ;1, 12/3 = 4 |
это что?
|
|
|
|
05.10.2018, 11:59
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: Не тот импульс.
Код:
|
ldi Counter, 0 ;1, 12/3 = 4 |
Это загружаем в переменную Counter(R21) значение 0, но суть в том, что я туда подставлял несколько значений: 4, 1 и 0. Последовательно. Всегда выходит один и тот же импульс: лог.0 - T1 = 10 (мкс), лог.1 - T2 = 16 (мкс). - Ну как писал выше.
Дальше по строке: 1 - это число тактов в этой команде: ldi, по аналогии здесь проставлено число тактов для каждой команды;
12/3 = 4 - это я считал число тактов для лог.0, который выходит с ноги PB4. 12 тактов нужно удерживать 0 для поучения длительности T1 = 1 (мкс) при тактовой частоте 12 (МГц). 3 - это число тактов в периоде этого цикла(Delay1). 12 поделил на 3 получили 4 прохода цикла, т.о. записываем 4 в переменную Counter. Теперь понятно. Что Вы об этом всем думаете?
Кратко смысл здесь в том, что я хотел получить обратный импульс с длительностями 1 (мкс) и 2 (мкс), а получилось 10 (мкс) и 16 (мкс). 1-ое число - это длительность лог.0, 2-ое - длительность лог.1. Плюс ко всему это еще и не регулируется, при изменении переменной Counter ничего не меняется - всегда 10 и 16 (мкс). Это минимальные значения времени что-ли из-за каких-то внутренних накладок?
Последний раз редактировалось Signalshik2; 05.10.2018 в 12:07.
|
|
|
|
05.10.2018, 12:36
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Не тот импульс.
в вашем случае "вертушка" крутится 256 раз, по 3 такта - грубо 750 тактов. Тактовая, если не путаю, 5 или 10 МГц. При 10 МГц длительность такта 0,1 uS, следовательно длительность задержки в такой вертушке 75 мкс.
Как-то не стыкуется с вашими значениями никак.
Покажите программу целиком, скажите какие значения фузиков, особенно BOLDEVEL - питание 4.4в несколько смущает...
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
05.10.2018, 13:01
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от nml
|
в вашем случае "вертушка" крутится 256 раз, по 3 такта - грубо 750 тактов. Тактовая, если не путаю, 5 или 10 МГц. При 10 МГц длительность такта 0,1 uS, следовательно длительность задержки в такой вертушке 75 мкс.
Как-то не стыкуется с вашими значениями никак.
Покажите программу целиком, скажите какие значения фузиков, особенно BOLDEVEL - питание 4.4в несколько смущает...
|
- вот эту фразу из картинки я хотел стереть, но поленился. Это я измерял давно - может быть и неправда. Так что не берите это число за основу(4,4В).
Часто тактового генератора 12 (МГц) - подается с отдельной платы на вход CLKI-PB3. Соответственно Fuse-биты CKSEL10 = External CLK, Uprising time 14CK + 0ms delay - не помню точно их значения, пишу по памяти, щас не могу их посмотреть, извините. Остальные Fuse-биты не менял, скорее всего они по-дефолту.
|
|
|
|
05.10.2018, 13:10
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 714
Сказал спасибо: 363
Сказали Спасибо 797 раз(а) в 371 сообщении(ях)
|
Re: Не тот импульс.
Signalshik2, если уж 8-ногая ATtiny, взяли бы Вы ATtiny25/45/85...
У нее по крайней мере на PB4 есть выход ШИМ таймера 1,
который к тому же способен работать на частоте до 64 МГц.
Было бы проще эти микросекунды шлифовать.
Извиняюсь за оффтоп.
|
|
|
|
05.10.2018, 13:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.01.2007
Адрес: Пермский край
Сообщений: 1,596
Сказал спасибо: 418
Сказали Спасибо 1,364 раз(а) в 514 сообщении(ях)
|
Re: Не тот импульс.
Чё-т вспоминается, что есть в этой Тиньке CKDIV8, и если фьюзы по умолчанию, то он установлен и делит тактовую на 8.
|
|
|
Сказали "Спасибо" alxchep
|
|
|
05.10.2018, 15:28
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от alxchep
|
то он установлен и делит тактовую на 8.
|
Верно, но в этом случае получилось бы еще в 8 раз более длинный импульс. А у него наоборот короче расчетного. и не меняется. Потому я и грешу на питание. Может он просто ресетится.
ЗЫ И еще вот подумал - а чего бы не использовать команды установки-сброса бита порта, CBI/SBI, вместо загрузки в TEMP и вывода всего порта?
ЗЫЗЫ А еще бы проверил на КЗ между PB4 и PB5. Если там короткое, то появление 0 на выходе сбросит - но не сразу... емкость там... вот и неизменные времена - разряд кондера и стартовое...
__________________
[ жизнь приятна и красива, если выпить литр пива ]
Последний раз редактировалось nml; 05.10.2018 в 15:43.
|
|
|
|
05.10.2018, 17:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от nml
|
Верно, но в этом случае получилось бы еще в 8 раз более длинный импульс. А у него наоборот короче расчетного. и не меняется.
|
у него длиннее расчетного. Как раз 2 мкс расчет, а на осциле 16-17 мкс - в 8 раз шире.
|
|
|
|
05.10.2018, 17:32
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Ara41
|
у него длиннее расчетного. Как раз 2 мкс расчет, а на осциле 16-17 мкс - в 8 раз шире.
|
По моим расчетам для 10 МГц - длительность 75 мкс. Откуда взялись 2, мне непонятно.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:47.
|
|