-
- На 8 меге работают сотни устройств 24 часа в сутки уже лет 10 без сбоев. Для кварца 14.7456МГц фузы sut=1,ckopt=0,cksel=f - 0men(20.04.2013 23:14)
- Спасибо, информация ценная. Осталось мне только понять, какой sut лучше, 1 или 3, т.к. на этот счет в рекомендацих имеет место разнобой. - Ксения(20.04.2013 23:16)
- Ксения СУТ=1 нужно применять ели БОД включен (у меня так) СУТ=3 если забили на БОД, и просто задержка на 65мс после ресета (вообщем, таблица 5) - 0men(20.04.2013 23:23 - 23:28)
- Я на BOD забила, т.к. его не понимаю. :) - Ксения(20.04.2013 23:35)
- Компаратор - ниже определённого порога , выставляется fuses, вырабатывает RESET, но + , при достижении питания практически номинала включается таймер формирования задержки сброса на определённую SUT величину. Т.е процессор снова проходит путь как ilyaul(25 знак., 20.04.2013 23:54)
- Не надо понимать. Включай давай :) - Codavr(20.04.2013 23:38)
- согласен на все 100! ну или на 146%, как многие оппы говорят ))) БОД обязателен в принципе! Если его нет внутреннего, то нужно ставить внешний, тогда СУТ=3 допустим. Смысл СУТ=3 (на мой взгляд) - гарантированное (65мс) время старта после 0men(49 знак., 20.04.2013 23:43)
- +100500 - AU08(20.04.2013 23:54)
- В давние времена по всему инету шел срач на тему что типа у атмеля БОД корявый, а у пиков он супер-пупер. У меня проблем не было, а с пиками не сложилось по причине того что на то время у них флеша на борту не было. А после того как со службой Codavr(103 знак., 20.04.2013 23:48)
- Проблемы были у неудачников :) Они еще спрашивали, а нужно ли AVDD подключать, если АЦП не используется :) - 0men(20.04.2013 23:51)
- А осадок остался. С тех пор резистором ресет притягиваю на питание от греха :) - Codavr(20.04.2013 23:52)
- Резистор на +V порядка 5-10 кОм + конденсатор >1000 пФ на GND есть в app note ATMEL по серии ATmega - AU08(21.04.2013 00:41)
- Я, обычно, ставлю 4.7кОм, 0.01мкФ, коллега 1кОм, 0.1мкФ - 0men(21.04.2013 00:44 - 00:48)
- Для особой паранои можно поставить еще диод на питание (параллельно резистору) - 0men(21.04.2013 00:46)
- Я, обычно, ставлю 4.7кОм, 0.01мкФ, коллега 1кОм, 0.1мкФ - 0men(21.04.2013 00:44 - 00:48)
- Резистор на +V порядка 5-10 кОм + конденсатор >1000 пФ на GND есть в app note ATMEL по серии ATmega - AU08(21.04.2013 00:41)
- А осадок остался. С тех пор резистором ресет притягиваю на питание от греха :) - Codavr(20.04.2013 23:52)
- Проблемы были у неудачников :) Они еще спрашивали, а нужно ли AVDD подключать, если АЦП не используется :) - 0men(20.04.2013 23:51)
- согласен на все 100! ну или на 146%, как многие оппы говорят ))) БОД обязателен в принципе! Если его нет внутреннего, то нужно ставить внешний, тогда СУТ=3 допустим. Смысл СУТ=3 (на мой взгляд) - гарантированное (65мс) время старта после 0men(49 знак., 20.04.2013 23:43)
- Я на BOD забила, т.к. его не понимаю. :) - Ксения(20.04.2013 23:35)
- Дык. Все в той же самой таблице 5 на странице 28 выбираем какой нам Recommended Usage. - Codavr(20.04.2013 23:23)
- Ксения СУТ=1 нужно применять ели БОД включен (у меня так) СУТ=3 если забили на БОД, и просто задержка на 65мс после ресета (вообщем, таблица 5) - 0men(20.04.2013 23:23 - 23:28)
- Спасибо, информация ценная. Осталось мне только понять, какой sut лучше, 1 или 3, т.к. на этот счет в рекомендацих имеет место разнобой. - Ксения(20.04.2013 23:16)
- Когда первый раз программировал 8 мегу (10 лет назад) написал батничек. Правда конденсаторы ставлю 12 пф. Проблем не было ни на 8 ни на 8А. Codavr(20.04.2013 23:06)
- А у вас sut=1, не как у всех. :) - Ксения(20.04.2013 23:11)
- Ващета в таблице 5 рекомендовано для Crystal Oscillator, BOD Codavr(99 знак., 20.04.2013 23:22)
- А у вас sut=1, не как у всех. :) - Ксения(20.04.2013 23:11)
- CKOPT должен быть "programmed" т.е. = 0 для кварцев. Амплитуда на ведущем выходе XTAL при этом близка к напряжению питания. Иначе рядом громко чихнуть нельзя, тактовая частота плавает. Для ATmega88 штатная частота 20 МГц при 5В. - AU08(20.04.2013 18:26)
- Но у меня не Мега88, а просто Мега8. Тогда как 20 МГц в таблицах для UART существует еще с тех времен, когда меги работали до 8 МГц. - Ксения(20.04.2013 18:28 - 18:37)
- Народ разгонял 8-ку до 20, при комнатной работает до 24 МГц. Запас хороший, в серийной продукции так не надо делать. А с кварцем 16МГц и CKOPT=1 (молодой спец напутал) глючило раз в неделю, по непредсказуемым законам. CKSEL0=1 и SUT1:0=11 ставили, AU08(208 знак., 20.04.2013 18:33 - 18:39)
- У меня тоже стоят CKSEL=F и SUT=3, только с CKOPT=0 пронеслась, т.к. раньше работала с малыми частотами, а 16 МГц врубила недавно, не меняя фуз. Ну, а в серийной продукции могу ли я поставить кварц 16.384 МГц вместо допустимых 16 МГц по даташиту? Ксения(89 знак., 20.04.2013 19:01)
- От 16 МГц нельзя секунду получить чтоли? - Apтём(20.04.2013 20:10)
- Как 2 пальца... Прескалер 1024, прерывания каждые 125 - получаем 125 чётких прерываний в секунду. - AU08(20.04.2013 22:19)
- А что? И правда можно :). Но на кварце 16.384 прерываться надо будет не 125 раз в секунду, а только 64 раза. Реже прерываться уже нельзя теоретически. - Ксения(20.04.2013 22:40 - 22:49)
- Если сделать инверсию пина (Toggle OC2 on Compare Match) на выход (ОС2) 64 раза в секунду, и завести на другой pin + разрешить прерывание по фронту получим 32 прерывания в секунду. AU08(503 знак., 20.04.2013 23:58 - 21.04.2013 00:06)
- Идея знатная :), но осуществлять ее, видимо, не стану. - Ксения(21.04.2013 03:51)
- Побочный вопрос: прескайлер 1/2048 у каких-либо AVR-ок встречали? А то AVRcalc[ulator] в списке прескайлеров имеет еще 1/4096 и 1/16384 (хотя 1/8192 почему-то нет). У кого такие бывают? - Ксения(20.04.2013 23:00)
- Tiny85 и иже с ней - ilyaul(21.04.2013 00:04)
- Какая несправедливость! Tiny может, а Mega нет. - Ксения(21.04.2013 03:53)
- Не то слово. У 15 тиньки унутре заложен был 16x PLL. Такая ципа! А у меги нет. - Codavr(21.04.2013 03:58)
- А зачем этой Тиньке нужен этот PLL? Понимаю, когда USB канал надо держать на малой частоте кварца. А тут для чего? - Ксения(21.04.2013 04:12 - 04:51)
- Не то слово. У 15 тиньки унутре заложен был 16x PLL. Такая ципа! А у меги нет. - Codavr(21.04.2013 03:58)
- Какая несправедливость! Tiny может, а Mega нет. - Ксения(21.04.2013 03:53)
- Tiny85 и иже с ней - ilyaul(21.04.2013 00:04)
- Если сделать инверсию пина (Toggle OC2 on Compare Match) на выход (ОС2) 64 раза в секунду, и завести на другой pin + разрешить прерывание по фронту получим 32 прерывания в секунду. AU08(503 знак., 20.04.2013 23:58 - 21.04.2013 00:06)
- А что? И правда можно :). Но на кварце 16.384 прерываться надо будет не 125 раз в секунду, а только 64 раза. Реже прерываться уже нельзя теоретически. - Ксения(20.04.2013 22:40 - 22:49)
- Можно выбрать источник тактирования clk/128=16000000/128=125000 Гц. Режим таймера CTC с регистром сравнения равным 124 или 249. Получаете частоту прерываний 1 кГц. - Apтём(20.04.2013 21:59)
- Зачем мне 1 КГц, если мне нужен всего лишь 1 Гц (в 1000 раз меньше)? - Ксения(20.04.2013 22:43)
- Нет ничего страшного, если раз за 16000 тактов прерывание возникнет, Имхо. - Apтём(20.04.2013 23:27)
- Зачем мне 1 КГц, если мне нужен всего лишь 1 Гц (в 1000 раз меньше)? - Ксения(20.04.2013 22:43)
- Нельзя. У меня длинный таймер (T1) занят на более важное дело - счет импульсов, а время приходится отсчитывать коротким таймером (T2). А там самый большой делитель - 1024, и с ним мне секунду никак не удается получить точно. Пока живу на OCR2=0xF3 Ксения(160 знак., 20.04.2013 21:25)
- Как это нельзя? mazur(857 знак., 20.04.2013 22:01)
- 1000 в качестве делителя у вас откуда взялась? - Ксения(20.04.2013 22:33)
- Не помню уже весь ход рассуждений. :) Главное, что я получил результат. Вы возьмите калькулятор. mazur(39 знак., 20.04.2013 22:37)
- Ты для начала подели 16Мгц на 1024, а потом уже бери 15625Гц и дели их 8 битным таймером. Ну как-то так. Это тот случай когда важен не результат, а правильное решение. - Codavr(21.04.2013 03:42 - 03:44)
- Ксении важно как можно меньше прерываний. Мне же нужно было получить 1 мс (круглые частоты). На крайняк 10 мс (частоты для уарта). Так что и правильное решение и результат. - mazur(21.04.2013 08:21)
- Я грешным делом подумал, что ты ее задачу решить помогаешь. - Codavr(21.04.2013 08:54)
- Так она после уже написала, что как можно меньше прерываний. - mazur(21.04.2013 08:56)
- Тады ой. Прошу пардону! - Codavr(21.04.2013 09:03)
- Так она после уже написала, что как можно меньше прерываний. - mazur(21.04.2013 08:56)
- Я грешным делом подумал, что ты ее задачу решить помогаешь. - Codavr(21.04.2013 08:54)
- Ксении важно как можно меньше прерываний. Мне же нужно было получить 1 мс (круглые частоты). На крайняк 10 мс (частоты для уарта). Так что и правильное решение и результат. - mazur(21.04.2013 08:21)
- Зачем мне калькулятор? :) Если бы у меня прескайлер был не 1/1024, а 1/1000, то дело было на мази. А так приходится на кварц 16.384 МГц заглядываться. Впрочем, я сама виновата, что не знала, что такие бывают в продаже - цена-то у них одинаковая. - Ксения(20.04.2013 22:47)
- 1000 мс. По тому коду, что я выложил, прерывание получается каждые 1 мс. 1000 прерываний дают секунду. mazur(168 знак., 20.04.2013 22:56)
- Да поняла я, только сильно не хочется делать лишних 999 прерываний. Хотелось бы, чтобы их было как можно меньше, т.к. МК и так тяжело приходится - там, кроме часов, других прерываний много (T0 и T1 мегагерцы считают, и потому тоже часто просят Ксения(45 знак., 20.04.2013 23:04)
- может процик поменять? мега162 - 4 таймера , 2 уарта - m16_home(20.04.2013 23:23)
- Слишком велик он. Да и не надо мне 2 уарта. - Ксения(20.04.2013 23:40)
- может процик поменять? мега162 - 4 таймера , 2 уарта - m16_home(20.04.2013 23:23)
- Да поняла я, только сильно не хочется делать лишних 999 прерываний. Хотелось бы, чтобы их было как можно меньше, т.к. МК и так тяжело приходится - там, кроме часов, других прерываний много (T0 и T1 мегагерцы считают, и потому тоже часто просят Ксения(45 знак., 20.04.2013 23:04)
- 1000 мс. По тому коду, что я выложил, прерывание получается каждые 1 мс. 1000 прерываний дают секунду. mazur(168 знак., 20.04.2013 22:56)
- Ты для начала подели 16Мгц на 1024, а потом уже бери 15625Гц и дели их 8 битным таймером. Ну как-то так. Это тот случай когда важен не результат, а правильное решение. - Codavr(21.04.2013 03:42 - 03:44)
- Не помню уже весь ход рассуждений. :) Главное, что я получил результат. Вы возьмите калькулятор. mazur(39 знак., 20.04.2013 22:37)
- 1000 в качестве делителя у вас откуда взялась? - Ксения(20.04.2013 22:33)
- субботнее альтернативное: выход схемы сравнения второго таймера ОС2 соединяете со входом Т0 нулевого таймера. второй таймер программируете в режиме СТС ,вывод счётчика ОС2 программируете Toggle on Compare Match, Т0 программируете External clock m16_home(84 знак., 20.04.2013 21:54)
- Не пойдет, оба таймера (T0 и T1) заняты счетом внешних импульсов. Для счета времени свободен только T2, т.к. у него не внешнего входа. - Ксения(20.04.2013 22:35)
- 8000000/256/250/125 Расшифровывать? - ilyaul(20.04.2013 23:28)
- Растолковать! Обязательно. - Ксения(20.04.2013 23:37)
- 256 предделитель таймера 250-OCR 125 - посчитать "ручками" - это лучше чем 1000 - ilyaul(20.04.2013 23:46)
- Растолковать! Обязательно. - Ксения(20.04.2013 23:37)
- если Вас устроит 8мгц внутреннего от генератора то можно на TOSC1/2 часовой кварц повесить - m16_home(20.04.2013 23:26)
- Нет, внутренний генератор мне не годится. - Ксения(20.04.2013 23:39)
- 8000000/256/250/125 Расшифровывать? - ilyaul(20.04.2013 23:28)
- Не пойдет, оба таймера (T0 и T1) заняты счетом внешних импульсов. Для счета времени свободен только T2, т.к. у него не внешнего входа. - Ксения(20.04.2013 22:35)
- Как это нельзя? mazur(857 знак., 20.04.2013 22:01)
- Как 2 пальца... Прескалер 1024, прерывания каждые 125 - получаем 125 чётких прерываний в секунду. - AU08(20.04.2013 22:19)
- Ясное дело, что эти +2,5% никак не повлияют если до 20 МГц разгоняется. Цитата: у меня папа умер потому, что вместо 15 капель Боткина принимал по 16 (C) А.П.Чехов :) AU08(85 знак., 20.04.2013 19:33 - 19:55)
- От 16 МГц нельзя секунду получить чтоли? - Apтём(20.04.2013 20:10)
- У меня тоже стоят CKSEL=F и SUT=3, только с CKOPT=0 пронеслась, т.к. раньше работала с малыми частотами, а 16 МГц врубила недавно, не меняя фуз. Ну, а в серийной продукции могу ли я поставить кварц 16.384 МГц вместо допустимых 16 МГц по даташиту? Ксения(89 знак., 20.04.2013 19:01)
- Народ разгонял 8-ку до 20, при комнатной работает до 24 МГц. Запас хороший, в серийной продукции так не надо делать. А с кварцем 16МГц и CKOPT=1 (молодой спец напутал) глючило раз в неделю, по непредсказуемым законам. CKSEL0=1 и SUT1:0=11 ставили, AU08(208 знак., 20.04.2013 18:33 - 18:39)
- Но у меня не Мега88, а просто Мега8. Тогда как 20 МГц в таблицах для UART существует еще с тех времен, когда меги работали до 8 МГц. - Ксения(20.04.2013 18:28 - 18:37)
- На 8 меге работают сотни устройств 24 часа в сутки уже лет 10 без сбоев. Для кварца 14.7456МГц фузы sut=1,ckopt=0,cksel=f - 0men(20.04.2013 23:14)