компаратор atmega328p

Тема в разделе "Флудилка", создана пользователем CYITEP_BAC9I, 19 июл 2018.

  1. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    вечер добрый всем. прошу подсказать как настроить компаратор на атмега 328 в частности на ардуине про мини.
    вроде делаю все по "инсрукции"
    Код (C++):
    DDRD=  B00000000; //устанавливаю все порты на вход
      PORTD = B00000000; //отключаю подтяжку
    ACSR = ACSR |(1<<ACBG); подключаю опорное напряжение на вход AIN0, в моем случае цифровой пин 6 или по научному PD6
    а в итоге на 6 ноге никакого напряжения то и нету. висит 1.9 вольта не смотря на
    Код (C++):
    PORTD = B00000000;
    или это теоретический термин " подключить опорное напряжение к выходу AIN0"?
    в общем чего я хочу от компаратора добиться. при изменении
    • AIN0<AIN1
    • или
    • AIN0>AIN1
    по прерыванию в основном цикле проверялся бит ACO . больше или меньше нуля. если меньше 0 - включить генерацию шим, 1 - отключить. но пока что то я не могу даже его завести.
     
  2. CYITEP_BAC9I

    CYITEP_BAC9I Гик

  3. sys

    sys Злобный Буратино

    Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера. (3-е изд. исправленное)
    http://www.bhv.ru/books/book.php?id=191434
     
    CYITEP_BAC9I и Mitrandir нравится это.
  4. parovoZZ

    parovoZZ Гуру

    Ну вот же расписан компаратор
    http://www.gaw.ru/html.cgi/adv/doc/micros/avr/arh128/9.htm

    В частности
     
    CYITEP_BAC9I нравится это.
  5. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    очень осторожно. то есть если бит установлен то и не должно там быть напряжения а если сброшен то на AIN0 можно подавать внешнее опорное напряжение? параллельно или последовательно возник вопрос а что можно использовать в качестве внешнего источник опорного напряжения? стабилитроны? ASM1117 на 3.3 вольта? или внутренний источник обладает достаточной точностью?
     
  6. parovoZZ

    parovoZZ Гуру

    ??? что?

    да хоть резисторный делитель.

    если подходит его уровень, то используй его. Другое дело, что этот уровень предварительно надо измерить - от экземпляра к экземпляру отличается. Это если про точность.
     
    CYITEP_BAC9I и Сусемьбек нравится это.
  7. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    вечер добрый. игра слов. параллельно == пока учусь программировать компаратор думаю что использовать в качестве ИОН. последовательно == после того как освою компаратор все равно к этому вернусь.
    причина.
    пишут что точность внутреннего ИОН атмеги328 10%. если перевести это в 400 вольт которые необходимы то возможно напряжение 440 которое быстро убьет мой слюдяной датчик. тогда придется мудрить с дополнительным analogReadом чтоб не было перенапряжения. а "кот" и так настолько перегружен, что важен каждый такт мк.
    ночью как все уснут, попробую дальше мучить компаратор.
    (после этого останется освоить USART и SPI)
     
    Последнее редактирование: 20 июл 2018
  8. parovoZZ

    parovoZZ Гуру

    Так точность или стабильность?
     
    CYITEP_BAC9I нравится это.
  9. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    и то и другое если точность можно подстроить то стабильность хрен с два угадаешь. кто то делал замеры при комнатной температуре и пониженной и вышли как раз эти 10% нестабильности
    пока варианты MCP1541 или TL431, последний даже удобнее да и дешвле. ждать только долго заказ придется.
     
    Последнее редактирование: 20 июл 2018
  10. Ночер добрый всем. Мучаю свою игрушку. Наконец то перевел генерацию накачки и контроль в Дуню, без всяких внешних источников накачки. Управляется все компаратором в фоне. Если нужно нарисую схему как доберусь до компьютера. А общем ситуация такая на ain0 с стабилитрона идёт 3.9 вольта. На ain1 с делителя 100 мом - 1 мом идёт напряжение с накопительного конденсатора. В скетче вроде все по фен-шую. Как на одном форуме писали пины 6 и 7 (про мини) поставил на вход и записал в них нули типа
    Код (C++):
    digitalWrite ( 7, 0);
    digitalWrite ( 6, 0);
    Все работает ( почти). Но, когда спалил 7 пин ain1, начал разбираться что к чему. Оказалось компаратор занимается какой-то хренью вместо того чтоб работать правильно. Хотично меняется значение регистра aco . И он соответственно даёт команду на генерацию импульсов. А Дуня через мосфет оказывается так может раскочегарить транс накачки, что напряжение даже не меряется. Мультиметр печально пискнул и вырубился, теперь ещё и мультик покупать новый, (блин). Как не странно Дуня отделалась сгоревшим пином и все, хотя и это странно напряжение конечно было здорово превышено, но ток там порядка 15-30 мкА. Потом стал тестить на другой Дуне, такая же хрень. Однако если притянуть к земле ain1 то все работает так как положено. Господа подскажите почему так получается? Особенность моей схемы? И резистор подтяжки лучше ставить а таком случае? Пока работает с 40 ком, но думаю можно пол мегаома постааить
     
  11. parovoZZ

    parovoZZ Гуру

    Ну во-первых емкость порядка 22pF по входу, во вторых входное сопротивление около мегома. Вот и считай неучтёнку в своей схеме.
     
    Сусемьбек нравится это.
  12. Спасибо завтра попробую с конденсатором, отпишусь.
     
  13. parovoZZ

    parovoZZ Гуру

    Я написал про то, что уже есть на ногах МК и что ты в своей схеме никак не учёл.
     
    Сусемьбек нравится это.
  14. Воспринял как руководство к действию.) Подозреваю что нужно уменьшить номиналы делителя.
     
  15. Убавил делитель до 50 мом и 500 ком и на нижнее плече воткнул конденсатор 2400 ПКФ. Вроде работает