Petka 0 25 сентября, 2009 Опубликовано 25 сентября, 2009 · Жалоба Микросхема на стенде, это тонкими проводами соединены выводы с разъёмом программатора А конденсаторы на всех парах питания не забыли + электролит на всю мегу? И чем запитываете мегу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jatagan 0 25 сентября, 2009 Опубликовано 25 сентября, 2009 · Жалоба А вот на AVCC напругу не подавал, меге 8 тоже не подавал, меге 8535 тоже не подавал, но они при этом, без проблем дружат с программатором (но это так, в качестве эксперемента, обычно на них напряжение подаю, так же объединяю аналоговую землю с цифровой в одном месте). Попробую на аналоговую чать напряжение подать, мож изменится что нибудть в лучшую сторону. А может и действительно партия битая попалась... Всем спасибо за дельные советы. Электролит на всю мегу танталловый, плюс конденсаторы керамические на лапках... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jatagan 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба Все работает! Странно... После того, как на плате работать не захотела, все дальнейшие экперементы проводил на сетнде, но на анологовую сторону напругу не подавал (потому что другим мегам это не требуется), подал, заработало. Всем огромное спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба Все работает! Странно... После того, как на плате работать не захотела, все дальнейшие экперементы проводил на сетнде, но на анологовую сторону напругу не подавал (потому что другим мегам это не требуется), подал, заработало. Всем огромное спасибо! Нет, так просто мы вас не отпустим. Напишите пожалуйста к каким выводам что было подключено когда не работало, и что куда подключено, когда заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба на анологовую сторону напругу не подавал (потому что другим мегам это не требуется) Мега 8 - это еще не все "другие". Пример Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба Весь этот сыр-бор на две страницы из-за невнимательного чтения документации. В случая ATmega8515 аналоговое питание не подаётся ибо его там нет. В случае же с ATmega8 и ATmega128 в документации на обе чётко сказано: 1. в разделе по программированию есть вполне понятный рисунок, на котором AVcc изображено и ниже следует VCC - 0.3 < AVCC < VCC + 0.3, however, AVCC should always be within 2.7 - 5.5V. 2. в Table 103. ADC Characteristics и примечаниях к ней (мелкими буквами) 2. Minimum for AVCC is 2.7V. 3. Maximum for AVCC is 5.5V. Все разговоры типа "А я делал и у меня получалось" более чем несерьёзны. Результат мы здесь наблюдаем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kool 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба И не только документации, но и форума. Я ж еще в 4-м посте написал: Все ноги vcc и gnd подсоединяли? Дожно быть 3 пары. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jatagan 0 3 октября, 2009 Опубликовано 3 октября, 2009 · Жалоба Причем здесь 8515, я про нее ничего не говорил... Кстати, только после того, как подал аналоговое питание, все образумилость, действительно, про "три пары" сказано было верно. Вопрос другой. Кто нибудь работал с АЦП меги 8? Лично я работал с мегой16, никаких проблем. Скорее всего что-то не то делаю... Но проблема в другом, АЦП работает только при включении контроллера. Пишу при инициализации: ADMUX = _BV(REFS0); //0-й канал ADCSRA = 0b11000111; Через две секунды считываю, потом даю команду сарт конверсии: ADCSRA |= 0x40; Через 2 секунды снова считываю, но, в регистре АЦП остается предыдущее значение, хотя бит окончания конверсии устанавливается, его можно сбросить записью в него 1. Но измеряется только при включении, когда инициализация происходит. Видимо какая-то нелепая ошибка с моей стороны... Кварц 12 МГц, тактовая частота АЦП получаетсч около 78 КГц. С предделением все вроде как в порядке, на АРЕФ подано 5 В. Но почему работает только при включении? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 3 октября, 2009 Опубликовано 3 октября, 2009 · Жалоба Причем здесь 8515, я про нее ничего не говорил... Виноват, ошибся, разговор был о 8535. Не поленился, скачал документ, и там всё как и в 8 и в 128 об аналоговом питании при программировании по ISP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jatagan 0 3 октября, 2009 Опубликовано 3 октября, 2009 (изменено) · Жалоба С питанием аналоговым, тут дело такое, что корпус 128-й это дело тоскливое, ее снять с платы, подпоять на проводки... А мега 8, на самом деле при последовательном программировании, не требует аналогового питания, но с ней проще, корпус ДИПовский... Поэтому было не понятно... А что с АЦП кто нибудь делал? Изменено 3 октября, 2009 пользователем Jatagan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 3 октября, 2009 Опубликовано 3 октября, 2009 · Жалоба Через 2 секунды снова считываю, но, в регистре АЦП остается предыдущее значение, хотя бит окончания конверсии устанавливается, его можно сбросить записью в него 1. Ну так и сбрасывайте бит окончания перед стартом нового преобразования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jatagan 0 3 октября, 2009 Опубликовано 3 октября, 2009 · Жалоба Сбрасываю! До лампочки! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jatagan 0 3 октября, 2009 Опубликовано 3 октября, 2009 (изменено) · Жалоба Запустил через прерывание, и в обработчике прерывания считываю значение, но, остается все равно то, что было замерено при первом преобразовании... Хрень какая-то... В регистрах АЦП ничего не меняется!... Причем, бит начала конвертации, после прерывания сбрасывается, как и положено, но почему значения не меняются?... Кварц на 11.0592МГц, деление на 128 частота получается 86.4 КГц, это если быть точным. Кто нибудь сталкивался с чем нибудь подобным? ADCSRA = 0b11001111; Младшие три бита это коэфициент деления, в данном случае 128; 4-й, если младший считать первым, это разрешение прерывания; 5-й всегда 0, зарезервирован, или назначения не нашлось, неважно; 6-й цикличное преобразование, устанавливал, в обработчике прерывания инкрементировал переменную, смотрел на ее значение, да, работает циклично, но значения аналоговых регистров не меняются... 7-й старт конвертации; 8-й разрешение АЦП. Это я по памяти пишу... Вроде не ошибся... Все равно, значение аналоговых регистров не меняется, остается неизменным после первого преобразования! Изменено 3 октября, 2009 пользователем Jatagan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kool 0 4 октября, 2009 Опубликовано 4 октября, 2009 · Жалоба 1. ADCH считываете? Новый результат в ADCH:L появляется только после считывания ADCH. 2. Ножка случайно не закорочена на питание/землю? 3. Аналоговое питание присутствует? 4. Порт входа АЦП настроен на 3-е состояние? 5. Напряжение на входе АЦП не превышает опорное напряжение? 5. Точно уверенны, что значения АЦП не меняются? может, ошибка в другом месте кода? P.S. 5-й всегда 0, зарезервирован, или назначения не нашлось, неважно; 5й (если считать с 1-го) - это флаг ADIF (ADC Interrupt Flag), т.е. вышеупомянутый Вами "бит окончания конверсии". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 5 октября, 2009 Опубликовано 5 октября, 2009 · Жалоба Для ADC важно в каком порядке вычитывать обе половины этого регистра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться