ATMega8 в вопросах и ответах
Мяу!
Доброго времени суток!
Я новенький, хочу спросить профессионалов:
1. Как подсоединить к ATmega8 аналоговый вход? (амплитуда аналогового входа 0.5 - 4.5 вольт)
2. Как мне это отцифровать? Надо выставлять при этом какие-либо фьюзы?
3. Обязательно подсоединять AREF? Если да то к чему?
Помогите плись!
Доброго времени суток!
Я новенький, хочу спросить профессионалов:
1. Как подсоединить к ATmega8 аналоговый вход? (амплитуда аналогового входа 0.5 - 4.5 вольт)
2. Как мне это отцифровать? Надо выставлять при этом какие-либо фьюзы?
3. Обязательно подсоединять AREF? Если да то к чему?
Помогите плись!
- Вложения
-
- ATmega8.GIF
- (6.26 КБ) 549 скачиваний
Лучше паяльник в руках, чем в другом месте!
Надыбал програматор мудренный на MAX 232, тот кто делал сей девайс говорит все пашет! Хотя я не очень силен в этой области электроники, но всё-же мне кажется питать это устройство лучше не от ком порта, да и вообще кто нить гляньте схемку!!!! Она в железе работать будет???
- Вложения
-
- Пограмирование ATmega8 при помощи MAX232.GIF
- Вот сиё чудо!
- (16.66 КБ) 761 скачивание
Лучше паяльник в руках, чем в другом месте!
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
-=PluS=- писал(а):Мяу!
Доброго времени суток!
Я новенький, хочу спросить профессионалов:
1. Как подсоединить к ATmega8 аналоговый вход? (амплитуда аналогового входа 0.5 - 4.5 вольт)
2. Как мне это отцифровать? Надо выставлять при этом какие-либо фьюзы?
3. Обязательно подсоединять AREF? Если да то к чему?
Помогите плись!
1) Подсоединяешь к любому входу подписаный как ADCx
2) Программно. Фьюзы ставить никакие ненадо.
3) Обязательно. AREF - сюда подаётся напряжение сравнения (В данном случае +5 В.). На AVcc - напряжение питания (+5 В.)
Как кодить АЦП см. Datasheet или Форум. Всё относительно просто.
Вот для CodeVisionAVR :
#include <mega8535>
#include <delay>
#define ADC_VREF_TYPE 0xC0
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
#include <mega8535>
#include <delay>
#define ADC_VREF_TYPE 0xC0
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
Всех приветствую. У меня проблема с ATMega8, решил собрать схему отсюда: http://usb-lcd.narod.ru/shema.html и программатор на LPT: http://usb-lcd.narod.ru/stk200.html - всё работает, но прошивается неверно - в исходном коде и в результирующем (в МК после записи) совпадают только первые символы:
в прошивке - первая строка
:1000000057C042C570C06FC06EC06DC06CC06BC0C1
при считывании из флэш -
:2000000057C042C570C06FC06EC06DC06CC06BC06AC0C2C768C067C066C065C064C063C01D
и дальше сплошное несовпадение, причём по внешнему виду прошивается не случайный, а одинаковый код. Кстати, вопрос (возможно, глупый но опыта у меня пока немного
) - Почему в исходнике нумерация с "1", а во флэше с "2"?!
Подскажите, где грабли? В монтаже ошибок нет - проверил уже много раз, фьюзы прошиты по-рекомендации автора - используется внешний кварц на 12 МГЦ, питание идёт с USB, измерял в момент записи - ничего не проседает... Для записи использовался AVRDude - всё пишется и читается, но пишется неверно. Провода от LPT короткие.
Подскажите, пожалуйста, в чём может быть дело - в меге или в программаторе?
в прошивке - первая строка
:1000000057C042C570C06FC06EC06DC06CC06BC0C1
при считывании из флэш -
:2000000057C042C570C06FC06EC06DC06CC06BC06AC0C2C768C067C066C065C064C063C01D
и дальше сплошное несовпадение, причём по внешнему виду прошивается не случайный, а одинаковый код. Кстати, вопрос (возможно, глупый но опыта у меня пока немного
Подскажите, где грабли? В монтаже ошибок нет - проверил уже много раз, фьюзы прошиты по-рекомендации автора - используется внешний кварц на 12 МГЦ, питание идёт с USB, измерял в момент записи - ничего не проседает... Для записи использовался AVRDude - всё пишется и читается, но пишется неверно. Провода от LPT короткие.
Подскажите, пожалуйста, в чём может быть дело - в меге или в программаторе?
Шил сегодня ночью мегу, забыл перед прошивкой стереть прежнюю прогу. При включении пони распознаёт МК, считывает память, но при попытке стереть выдаёт "неизвестный девайс". Пытаюсь опять прочитать память, выдаёт "неизвестный девайс". Отключаю, подключаю заново, опять, после прочтения памяти, не узнаёт девайс при любом действии.
Попытка сразу, не читая память, стереть тоже приводит к выводы ункновн девайс.
Киньтесь ссылкой, пожалуйста, если такое уже где-то обсуждалось.
Попытка сразу, не читая память, стереть тоже приводит к выводы ункновн девайс.
Киньтесь ссылкой, пожалуйста, если такое уже где-то обсуждалось.