Arduino IDE и Atmega8a.

Обсуждаем контроллеры компании Atmel.
Ответить
Deemon
Родился
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 15:40:08

Arduino IDE и Atmega8a.

Сообщение Deemon »

Привет.

Начал играться с AVR процессорами. В помощь мне -Ардуинка. Но задумал сделать термометр на базе ATmega8A(!) и DHT11.
Цоколёвка ATmega8A совпадает с ATmega328P, поэтому в качестве отладочной платы использую Arduino UNO с атмегой в панельке.
Скетч пишу в Arduino IDE и конвертирую в hex, установив в качестве board Arduino NG > ATmega8(!). Прошиваю hex программатором USBISP китайским, который сам драйвера ставит. Софт для программатора PROGISP v172. Программатор подключён к разъёму ICSP на Ардуино УНО.
Всё отлично шьётся. Но вопрос не в этом.
Скетч работает в целом. Выводит на дисплей 5110 нужные символы , но показания с датчика DHT11 нулевые.
Тот же скетч, но прошитый в Ардуино УНО работает без проблем. Удобно , не отключая дисплей и датчик, проверить работоспособность скетча, просто передёрнув контроллер из панельки.

Частотой генератора фьюзами на ATmega8A игрался. Библиотеки в Ардуино ИДЕ менял. Но не считывает с датчика.

Вероятно , что в процессе компиляции для ATmega8 и ATmega8A в среде Arduino IDE есть какие-то ньансы. Но все даташиты уверяют в полной схожести этих контроллеров, ну, в технологии разница есть, да и только.
Ардуинро ИДЕ для меня начальный этап. Перейду на более высокий уровень. Но поделку хочется сделать пока из того что есть (Arduino UNO - ATmega8A - USBISP китайский - датчик DHN11 - Arduino IDE).
Есть мысли , почему не считывает с датчика ?

Заранее сенкс.


ЗЫ. Интернет читал, но подсказки не нашёл.
Реклама
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Arduino IDE и Atmega8a.

Сообщение Z_h_e »

Deemon писал(а):Но все даташиты уверяют в полной схожести этих контроллеров, ну, в технологии разница есть, да и только.
Это разные МК :)

Добавлено after 2 minutes 22 seconds:
Я в Ардуине не разбираюсь, но если желаете портировать прошивку с одного МК на другой, думаю с ней пора завязывать :)
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15579
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE и Atmega8a.

Сообщение BOB51 »

На 8-ой меге адуринка должна поддерживаться платформой
arduino NG or older
соответственно и компиляцию выполнять предварительно установив данный "инструмент", чтоб выяснить вписывается код в "старушку" или нет.
Там вот такой вариант
http://img.radiokot.ru/files/20529/1qvlfb7pkb.JPG
http://img.radiokot.ru/files/20529/1qvlfez2lz.JPG
а не атмега 328Р устанавливается.
8)
Вложения
схема.JPG
(47.69 КБ) 860 скачиваний
Deemon
Родился
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 15:40:08

Re: Arduino IDE и Atmega8a.

Сообщение Deemon »

На 8-ой меге адуринка должна поддерживаться платформой
arduino NG or older
соответственно и компиляцию выполнять предварительно установив данный "инструмент", чтоб выяснить вписывается код в "старушку" или нет.
Я ж написАл изначально
конвертирую в hex, установив в качестве board Arduino NG > ATmega8(!)
Там вот такой вариант
http://img.radiokot.ru/files/20529/1qvlfb7pkb.JPG
http://img.radiokot.ru/files/20529/1qvlfez2lz.JPG
а не атмега 328Р устанавливается.
Ардуино УНО использую как отладочную плату. Вытаскиваю из панельки атмегу 328, вставляю амегу8, подключаю к ICSP разъёму программатор.
Ардуино ИДЕ использую просто как удобный инструмент для начинающего. Если этот инструмент компилирует с учётом контроллера, который я выставляю в настройках, то почему нет?
Вопрос в том, что один и тот же скетч (считай ,что код) скомпилированный для соответствующих контроллеров (в настройках меняю при компиляции) на одном контроллере работает, а на другом только часть.
Но язык Ц++ придуман,чтобы писать программульки не озираясь на 'железо'. компилятор уже следит за правильностью перевода языка высокого уровня в понятные коды для контроллера. Получается,что Ардуино ИДЕ делает что-то не так.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
SIM31
Это не хвост, это антенна
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Re: Arduino IDE и Atmega8a.

Сообщение SIM31 »

Arduino IDE всё делает нормально. В AtMega8 памяти просто меньше. И потребление выше. Даже для AtTiny13 можно под ардуиной закодить.
Реклама
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Arduino IDE и Atmega8a.

Сообщение Ivanoff-iv »

В арду выводы обозначаются цифрами, а в меге - портX.N, может у платки после переделки эта нумерация не сходится...
попробуй подрыгать ножками - убедиться в соответствии номеров пинам.
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Deemon
Родился
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 15:40:08

Re: Arduino IDE и Atmega8a.

Сообщение Deemon »

[uquote="SIM31",url="/forum/viewtopic.php?p=3510847#p3510847"]Arduino IDE всё делает нормально. В AtMega8 памяти просто меньше. И потребление выше. Даже для AtTiny13 можно под ардуиной закодить.[/uquote]

Вот для ATTiny2313 ARDUINO IDE как раз отказалась компилировать этот скетч, ругаясь на функцию управления дисплеем. Оказалось, что не всё можно скомпилировать для ATTiny,а только часть команд поддерживается. ATTiny поддержка в Arduino IDE мной прикручена.
Поэтому и стал возиться с ATmega8A.

Добавлено after 1 minute 54 seconds:
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3510859#p3510859"]В арду выводы обозначаются цифрами, а в меге - портX.N, может у платки после переделки эта нумерация не сходится...
попробуй подрыгать ножками - убедиться в соответствии номеров пинам.[/uquote]

Дрыгал. Это первое,что попробовал.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Arduino IDE и Atmega8a.

Сообщение Dimon456 »

Сам скейч выложите.
Deemon
Родился
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 15:40:08

Re: Arduino IDE и Atmega8a.

Сообщение Deemon »

#include <iarduino_DHT.h> // подключаем библиотеку для работы с датчиком DHT
#include <LCD5110_Basic.h> // подключаем библиотеку

LCD5110 myGLCD(6,5,4,3,2); // объявляем номера пинов LCD CLK,DIN,DC,RST,CE

extern uint8_t SmallFont[]; // малый шрифт (из библиотеки)
extern uint8_t BigNumbers[]; // средний шрифт для цифр (из библиотеки)
iarduino_DHT sensor(7); // пин DHT11

void setup() {

myGLCD.InitLCD(68); // инициализация LCD дисплея
myGLCD.clrScr(); // очистка экрана

}

void loop() {

myGLCD.setFont(SmallFont); // задаём размер шрифта
myGLCD.print("TemP", LEFT, 10); // выводим на строке 4 равнение по левому краю
myGLCD.print("Humi", LEFT, 34); // выводим на строке 44 равнение по левому краю

sensor.read();
int h = sensor.hum ;//dht.readHumidity()
int t = sensor.tem ; //dht.readTemperature()
myGLCD.setFont(BigNumbers); // задаём размер цифр
myGLCD.print(String(t),27, 0); // выводим в строке 4
myGLCD.print(String(h),27, 24); // выводим в строке 34

delay (1000); // задержка 1 сек
}

Добавлено after 1 hour 50 minutes 10 seconds:
Похоже я нашёл засаду.

Применив ещё одну библиотеку, увидел, что с датчика что-то считывается, но полная ерунда. Но показания меняются.

Причина, наверное, в том, что атмеге8 просто не хватает быстродействия. атмега328 в ардуине работает от внешнего кварца 16 МГц, а атмега8 от внутреннего генератора 8 Мгц. Переключив фьюзы для уменьшения частоты внутреннего генератора на атмеге8 получил то, что видел на других библиотеках.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15579
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE и Atmega8a.

Сообщение BOB51 »

Я ж уже давал выше схемку для NG.
А перед тем надо в нее еще соответствующий бутлоадер загрузить...
Фузы в соответствии с бутлоадером на внешний кварц устанавливаются - иначе все временные характеристики (в том числе и для встроенных в IDE "расширенных " функций) потеряют/изменят свои характеристики.
Иное дело ежли "за пределами" ардуины - там все что угодно делать можно.
Или хороший опыт по настройке самой среды (что посолиднее работы напрямую под Си для АВРок знаний требует).
Для начинающего делать чего-то "вне рамок"... весьма сомнительно успех принесет...
:roll:
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Arduino IDE и Atmega8a.

Сообщение Dimon456 »

Сделайте следующее
Спойлер

Код: Выделить всё

#include <iarduino_DHT.h> // подключаем библиотеку для работы с датчиком DHT

iarduino_DHT sensor(7); // пин DHT11 PD7

void setup() {
Serial.begin(9600);   // скорость порта UART 9600
delay (2000); // задержка 1 сек
Serial.println("Welcome to the DHT11 Communication Test");
}

void loop() {
sensor.read();
int h = sensor.hum ;//dht.readHumidity()
int t = sensor.tem ; //dht.readTemperature()

Serial.print("Humidity ");
Serial.println(h);
Serial.print("Temperature ");
Serial.println(t);

delay (1000); // задержка 1 сек
}
А здесь частота 8Меги настраивается
СпойлерИзображение
Deemon
Родился
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 15:40:08

Re: Arduino IDE и Atmega8a.

Сообщение Deemon »

Всем спасибо.

В самом деле 8 МГц внутреннего генератора не хватает. Выставил фьюзы программатор на внешний генератор и контроллер заработал с кварцем 16 Мгц на плате ардуино уно.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15579
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE и Atmega8a.

Сообщение BOB51 »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3511086#p3511086"]...А здесь частота 8Меги настраивается
СпойлерИзображение
[/uquote]
У Вас не базовая версия IDE (по умолчанию), а с дополнительно установленным вариантом платок (с какого-то ресурса инета и/или самодельная - через соответствующие программы изготовленная).
У начинающего такого комплекта обычно нету - ежли показан пример не помешает и указать откуда и каким образом подобная конфигурация (платка) устанавливается (или ссыль предоставить). В противном случае пример будет бесполезен.
8)
Deemon
Родился
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 15:40:08

Re: Arduino IDE и Atmega8a.

Сообщение Deemon »

К базовой версии ИДЕ можно прикрутить поддержку других board'ов. Я пример понял, но не прикручивал поддержку ATMega8 , а воспользовался поддержкой ATMega8 на Ардуино NG. Теперь прикручу поддержку контроллеров не в составе ардуинок.
Когда начал играться с ATTiny, то прикрутил к ИДЕ поддержку этих контроллеров. А с ATmega8 я не знал, что отдельная поддержка даёт множество настроек. К тому же, если компилировать hex в ИДЕ , а заливать через отдельную прогу программатором, то фьюзы не поменяются. А вот если приаттачить программатор к ИДЕ, то настройки можно будет менять. Но ИДЕ не поддерживает китайский USB ISP программатор. Поэтому пока такой зоопарк.
Ответить

Вернуться в «AVR»