Почему скорость AT328P на 8 Мгц ниже, чем на 1 МГц?(Решено)

Тема в разделе "Микроконтроллеры AVR", создана пользователем cofessor, 21 фев 2019.

Статус темы:
Закрыта.
  1. cofessor

    cofessor Нерд

    Должно быть ровно в 8 раз при расхождении частот под которую скомпилирован скетч и ту, на которую настроен МК, а в 10 раз разница - из-за девиации частоты осциллятора. Реально разница была где-то в 9,5 раз, что сбивало - как-то не очень близко к 8-ми.
    Proteus.
     
  2. Airbus

    Airbus Радиохулиган Модератор

    RTC?I2C устройства?SPI устройства.Тот же Rfid
     
  3. KindMan

    KindMan Гуру

    Обманул, я в то время не ардуиновскую среду использовал, а баском. Но загрузчик из дуни, и не было проблем ни с чем, все тайминги ок, что на 8, что на 16.
     
  4. parovoZZ

    parovoZZ Гуру

    23 ещё только завтра))

    на работу не проспи
     
    Igor68 нравится это.
  5. parovoZZ

    parovoZZ Гуру

    Ты на каком осцилляторе сидел? Я не верю - Он так врать не может. Все мои аттини на внутреннем осцилляторе выдают частоту, очень и очень близкую к 8МГц. Я прекрасно наблюдаю кратковременную нестабильность, а вот долговременная нестабильность очень хорошо скомпенсирована. Это раз. Два. В МК есть два калибровочных фьюза для внутреннего осциллятора. При желании можно подкрутить, если этого не сделала узкоглазая таргашня (МК то с алика?).
     
    Последнее редактирование: 21 фев 2019
  6. parovoZZ

    parovoZZ Гуру

    в изыде вот так вот
    touch sensor.png
    Пока все галочки не встанут на свои места, экспорт в гербер не начнется.
     
  7. cofessor

    cofessor Нерд

    Согласен, сам считал что погрешность должна быть намного меньше 1%. А когда встречаешь что-то такое, чего совсем не ожидал, да когда уже котелок и так дымиться начинает... короче, современемразъяснитсявсё. :rolleyes:
    Пока меня самодельные платы вполне устраивают - быстро, дёшево, можно ашипки делать.
     
  8. parovoZZ

    parovoZZ Гуру

    фьюзом выведи тактовую на CKOUT и замерь. Будешь ещё раз удивлен.
     
  9. AlexU

    AlexU Гуру

    Зависит, но, если верить доке, то дивиация в пределах 7.5 - 8.5 МГц. На практике надо смотреть. Это касается оригинальных чипов, а не поделок...
    И как определили что именно в 10 раз?
    В данном случае частота не имеет значения. Если не завелось, то что-то не превильно сделали.
    Глупость космического масштаба. Для чипа нужен свой кварц, для RTC свой. Это, если хотите стабильной работы. Если нужно кое-как, то чип можно оставить без кварца. Да, впрочем, и у RTC кварц выдернуть и в помойку...
    Не правильно предполагаете. У I2C данные тактируются отдельной линией и приёмнику плевать плавает частота или нет. Главное что-бы приёмник успевал принимать данные.
    Если есть сомнения, то правильность хода своих мыслей проверяют на макетках. Кто-то на бредбоардах, но я бы советовал использовать типа таких.
    Вы как-нибудь определитесь: либо у Вас есть время самому мастерить платы и соответственно копаться в их программировании; либо берите готовые -- и тогда и задачи решите, и время будет не только на хобби.

    И наконец, что касается частоты...
    В самом начале программы вставьте следующий код:
    CLKPR = (1 << CLKPCE);
    CLKPR = 0;
    В этом случае фьзы можно не трогать.
    PS: код для контроллера ATmega328P

    Ну и PPPS:
    Такой программе как Proteus верить нельзя... Обманывает, сволочь...
     
    cofessor и Andrey12 нравится это.
  10. parovoZZ

    parovoZZ Гуру

    это всё синхронные интерфейсы. Им частота вообще побоку. Вот USI тактирует (фиолетовый)
    trans.png

    МК вообще может уйти на прерывание в момент передачи данных, затем вернуться и продолжить тактировать)) Ну в мастере, разумеется.
     
    Andrey12 и Igor68 нравится это.
  11. cofessor

    cofessor Нерд

    Ну ни хрена себе - более 6%! Нет, я не говорил что точно в 10 раз, определял самым примитивным способом: ставил задержку 1 сек и считал время секундомером пока мигнёт раз 10, затем делил на 10 и смотрел сколько секунд получается. Выходило где-то 9,5 вместо 8-ми, значит девиация примерно 19%, что всё равно в 3 раза больше той, которую вы привели.
    Это утверждение не объясняет фактов. Ещё раз:
    Вначале я прошил чип указав в инструментах частоту 8Мгц - Si7021 не завёлся. Затем указал частоту 1Мгц - Si7021 заработал. В Lfuser-е в обоих случаях была запись 0x62. Что изменилось? - Только частота, поэтому она для связи по I2C в данном случае значение имеет - де факто, объясняйте уж как хотите.
    Склоняюсь к тому что вы правы, поскольку пользуюсь готовыми библиотеками, где внутри там сям могут использоваться задержки. Однако слишком абстрактно как-то, можете привести конкретный пример когда нестабильность МК может напакостить, если для отсчёта временных интервалов я использую RTC, у которой кварц есть? Да и с RTC непонятно - почему её кварц в помойку? Имеете в виду не DS3231, а DS1307?
    Не представляю, как QFP32 и SOP можно проверять на макетке. Впрочем, кажется я и тут сглупил, ведь ничто не мешает распаять по одному экземпляру на гребёнки. Наверное так и сделаю на будущее, чтобы не собирать в случае критических ошибок каждый раз новую плату. Что делать - учусь по ходу, 3 года назад у меня было всё пусто голо, что в голове, что на полках, причём занимаюсь только зимами.
    У меня чисто прагматический подход: На чипах получается более компактная и намного более дешёвая конструкция? - Да. Значит делаю на них, а вопросы буду решать по мере их появления. Рисую вручную или в интерактивном режиме, автомату не доверяю, потому что нужна максимальная компактность и простота: фокус с удалением кварца не удался - возвращаю его назад.
    Так и двигаюсь мелкими шажками. А симуляция на протеусе мне сильно помогла в 1-й год, когда детали из Китая сильно задерживались и некоторые вообще не пришли, пришлось перезаказывать.
    За идею управления предделителем из программы спасибо, перед этим предлагали уже, буду использовать при случае.
     
  12. parovoZZ

    parovoZZ Гуру

    не имеет. Хоть для этого случая, хоть для какого-то другого. Вполне возможно, что для Si7021 необходимо выдерживать какие-то паузы - я не изучал. Но этот момент никакого отношения к I2C не имеет.
     
    cofessor нравится это.
  13. parovoZZ

    parovoZZ Гуру

    ни тем инструментом смотришь. Как точно узнать частоту осциллятора писал выше.
     
  14. cofessor

    cofessor Нерд

    Так может причина в том, что в скетче сказано что работаем от 8МГц, а на самом деле там 1МГц, поэтому задержки в библиотеке формируются в 8 раз более длинными и нарушают работу временных диаграмм обмена по I2C, которые формируются тактовыми сигналами МК и не связаны с отчётом временных интервалов?
     
  15. parovoZZ

    parovoZZ Гуру

    Я ответ уже писал:
    Лично мне порулить частотой МК не доставляет никаких хлопот. И с удовольствием это делаю, когда нужна какая-то пауза, а тупо простаивать не хочу. Что делать? Опускать частоту, инициализировать другие устройства/модули. Потом поднимаем частоту обратно и работаем с устройством, для которого выдерживали паузу. Говорю сразу - такими вещами можно заниматься только тогда, когда имеешь все инструменты для этого.
     
  16. AlexU

    AlexU Гуру

    Это из доки для температур от -40 до 110 и напряжений от 1.8V до 5.5V. Для более полной информации смотрите документацию.
    Вот лучше бы ни чего про это не писали (имею ввиду предыдущие высказывания про "в 10 раз"). Только людей в заблуждение вводите.
    Изменились условия работы прошивки и I2C тут не при чём.
    Это был сакрказм; стоп, нет -- стёб; упс, нет -- ... Не знаю Вашего возраста поэтому сами придумайте.
    Уверенны? Думаю, что Вы забываете учитывать стоимость разработки и производства самодельных плат. Сколько стоит Ваш рабочий день?
    Это касается любых SMD корпусов...
     
  17. b707

    b707 Гуру

    дешевая? с чего бы это? - АТМЕГА328 в ДИП корпусе - стоит 100-110р, а готовая Нано - 140. Прибавьте к первой цену текстолита, конденсаторов, кварца, регулятора напряжения и тд и тп - ваша плата УЖЕ выйдет дороже готовой.
    И это мы еще не учитывали затраты времени, с учетом них разница выйдет в разы - если не в десятки раз - в пользу готовой ардуины.
    Другой вопрос. что свои платы а)компактнее б) меньше потребляют энергии, что критично в случае мобильных устройств
    В остальных случаях я везде ставлю готовые Нано (в случае АВР) или готовую Блюпилл в случае СТМ32
     
    Airbus и KindMan нравится это.
  18. parovoZZ

    parovoZZ Гуру

    вот только давай не будем сравнивать цены на толчке с официальными ценами. Просто потому, что их сравнивать нельзя ('nj тоже самое, что сравнивать цены на новые машины с ценами на не новые машины). В итоге мы имеем: DIP корпус самый дорогой и 328 стоит в этом корпусе стоит 1.51$, VQFN 1.46& Нано же стоит порядка 15$.
     
  19. b707

    b707 Гуру

    вот именно - "давай не будем"
    Прежде чем писать свои обычные бредни про "отбраковку из китая" - ты спроси у ТС, где он свои чипы покупает - он уже писал - на АЛИ
    Так что давай сравнивать китай с китаем - а там голая атмега и ардуино нано стоят практически одинаково
     
  20. parovoZZ

    parovoZZ Гуру

    С обязательной припиской - ворованое.
     
Статус темы:
Закрыта.