Atmega8515 - Частотомер, работающий на Atmega8

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

kras писал(а):Собрал новую схему с другим дисплеем LCM1602K - нет ответа от нее. Поэтому вопрос в алгоритме, наверное, что-то не так понимаю. Все делаю на CVAvr.
4. Для теста припаял диод к выходу PORTB.0 и сделал делитель напряжения для ножки PORTA.0 (подумал, может АЦП есть).
5. Написал программу для мигания PORTB.0, заработала, но время идет некорректно: delay_ms(999) длится не 1секунду, а дольше раз в 8.
6. Пошел дальше, кинул стандартный код LCD с нета. Не заработало, хотя в PROTEUS все ок!
7. Решил воспользоваться генератором кода, там по умолчанию частота 8МГц, подключил LCD, добавил 3 строчки из проекта пункта 6, итог:

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

#include <mega8515.h>

// Alphanumeric LCD functions
#include <alcd.h>

// Declare your global variables here

void main(void)
{
char *_str="Hell!"; //Создаем выводимую строку
// Declare your local variables here

// Input/Output Ports initialization

// Characters/line: 16
lcd_init(16);

     
     

//#asm
//   .equ __lcd_port=0x15 ;PORTC
//#endasm  // Инициализируем PORTC как порт ЖКИ
 
     
}

Прошиваю FLASH, при этом фьюзы не меняю. Дисплей молчит! А в Proteus все ок.
8. Кручу резистор вправо-влево - ноль эмоций у LCD.
Больше ничего не делал. Если я все необходимое назвал, то где мог ошибиться?


LCD подключал еще на CVAVR первой версии. Использовал и встроенную библиотеку и свою. С этих позиций мне кажется херню вы пишите.
Надо сначало
//#asm
// .equ __lcd_port=0x15 ;PORTC
//#endasm // Инициализируем PORTC как порт ЖКИ
а потом
lcd_init(16);
А то как вы иницизируете lcd, если вы порт не установили, где вход, где выход?
Возмите автоматически генерируемый код CVAVR.
А вот фьюзы менять надо. Судя по всему в мк используется внутренний генератор на 1МГц. А вы пишете код на 8МГц
ЧИТАЙТЕ ДАТАШИТ. СКОЛЬКО РАЗ ВАМ ЭТО НАДО ПОВТОРИТЬ. :oops:

(подумал, может АЦП есть) А ДАТАШИТ ДЛЯ КОГО? :oops:

Привожу рабочий код для меги 8. Две штуки. Сам изучал чей-то пример. Если и это не поможет, то :kill:
Вложения
v2.c
(3.61 КБ) 268 скачиваний
volt_lcd.c
(4.13 КБ) 409 скачиваний
Учиться, учиться, ...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

Нашел сайт по фьюзам:http://www.engbedded.com/fusecalc. Но есть сомнения, поэтому просьба разъяснить. Если хочу работать с внутренним резонатором на 8Мгц, то подойдет то, то на рисунке?
Безымянный.png
(28.61 КБ) 688 скачиваний


А тогда можете показать, как этот код будет выглядеть для Atmega8515? А то у меня сейчас каждая ошибка на счету:)
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение vitalik_1984 »

Зачем вам тогда калькулятор?Смотрите какая настройка фьюзов конкретно в вашей программе.И ставьте.Что нам теперь за вами проверять правильно ли вы выбрали?Там же элементарно нужный пункт ниспадающим списком выбирается вы выбрали внутренний генератор?
int RC 8MHz
если выбрали, значит подойдет.
В поисках истины человек развивается.
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

kras писал(а):Нашел сайт по фьюзам:http://www.engbedded.com/fusecalc. Но есть сомнения, поэтому просьба разъяснить. Если хочу работать с внутренним резонатором на 8Мгц, то подойдет то, то на рисунке?
Безымянный.png


А тогда можете показать, как этот код будет выглядеть для Atmega8515? А то у меня сейчас каждая ошибка на счету:)

Я скоро буду ругаться матом.
Скажите сколько раз вам надо написать ЧИТАЙТЕ ДАТАШИТ???
Я всегда фьюзы устанавливаю по даташиту. Если внимательно прочитать, то все ясно.
Какой внутренний резонатор на 8МГц??? В даташите написано RC.
Купите мегу8, сделайте на ней. Когда все заработает, переносите на 8515. Если кто-то это сделает за вас, то как вы сами научитесь программировать?
Учиться, учиться, ...
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение vitalik_1984 »

Там еще есть как правило биты выраженные числом перед программированием убедитесь, что они совпадают,потом только программируйте.

ds1307 Вспомните себя в молодости, не стоит так кричать.Мне вот лично не все понятно из даташита особенно фьюзы разбросаны.
Если бы была общая сводная таблица с режимами, а то где то режим задержки перед стартом, где то режим работы с RC или внешним кварцем.
Вот предположим таблица даташита:
Изображение
в каком состоянии должен быть при этом бит CKSEL 0?Вам понятно, а новичек теряется. :dont_know:
А вот фьюз калькулятор это другое дело.Только нужно знать как ваша программа интерпретирует биты.

Вот русский вариант калькулятора.
Вложения
CKSEL.GIF
(17.74 КБ) 1634 скачивания
В поисках истины человек развивается.
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

vitalik_1984 писал(а):ds1307 Вспомните себя в молодости, не стоит так кричать.Мне вот лично не все понятно из даташита особенно фьюзы разбросаны.

Я кричу потому что человек даже ни разу не посмотрел в даташит. Вы посмотрите всю переписку. Разве можно так работать с микроконтроллером, да и вообще с электроникой. То он на него 6Вольт подает, при новых батарейках еще больше. То думает, что там есть АЦП.
А про фьюзы я уже заодно написал. Я действительно один раз хорошо вкурил даташит и разобрался более-мене с фьюзами.
Судя по количеству сообщениий в электронике человек не новичек.
Учиться, учиться, ...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

Я смотрел, просто, наверное, долго мне придется разбираться одному, ну ок. Действительно просто боюсь, что вообще не заработает, хотя насчет научусь/ненаучусь программировать - вопрос, у меня еще много чего впереди насчет частотомера с выводом на дисплей, но вдруг мне будет также страшно. Короче почитаю еще раз даташиты Atmega8 и Atmega8515 и попробую сделать схему дубль 3 для Atmega8. Ну просто я этому нигде и не учусь, то есть только самому собирать, а по учебе нужно кое-что на основе частотомера сделать. Но, безусловно, разобраться главное.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

Делал (скорее баловался) частотомер от Panda_y2k
http://vrtp.ru/index.php?s=7185a0a47549 ... =7275&st=0
Но он на тиньке, зато лично проверял. Все работает. Один только геморой с кварцами, автор их постоянно менял.
Последняя прошивка под кварц 20МГц.
Прилагаю два файла, на случай если с оригинала скачать не удасться.
Вложения
F_C__.c
(3 КБ) 532 скачивания
f_c.c
(3 КБ) 539 скачиваний
Учиться, учиться, ...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

Блин, ну я сразу такой боюсь собирать:)
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение Kaban »

Ну раз боишься, то ничему никогда не научишься. Там собирать нечего. Сколько я пожёг контроллеров в результате экспериментов :))) . И ничего, не опускаю руки.
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

Давайте еще раз, хоть узнать, с чем примерно у меня косяки. Допустим, по железу все норм. Тогда остается проверить программу и процесс прошивки. Программа, специально простая:

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

#include <mega8515.h>

// Включение для любой марки дисплея с соответствующим интерфейсом
#include <alcd.h>

void main(void)
{

char *_str="Hello"; //Создаем выводимую строку

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm  // Инициализируем PORTC как порт ЖКИ

lcd_init(16);

     lcd_gotoxy(0, 0); // Переводим курсор на первый символ первой строки
     lcd_puts(_str);   // Выводим строку _str на дисплей
     
     while (1){ // безконечный цикл, а на дисплее все еще держится информация
     };
     
}


Скомпилилось, ок. Фьюзы:
Безымянный.png
(24.83 КБ) 549 скачиваний
. Этого достаточно, чтобы сказать, что на программном уровне у меня все отлично? Или нужно что-то исправить? Или я чего-то не представил необходимого?
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
lawr
Встал на лапы
Сообщения: 120
Зарегистрирован: Чт фев 16, 2012 15:22:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение lawr »

kras, в железе вывод R/W индикатора должен сидеть на массе. Если он сидит на меге и там единица - то ты постоянно "читаешь" из индикатора и ты на нем ничего не увидишь :))
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

kras писал(а):Давайте еще раз, хоть узнать, с чем примерно у меня косяки. Допустим, по железу все норм. Тогда остается проверить программу и процесс прошивки.
Фьюзы?


#asm
.equ __lcd_port=0x15 ;PORTC
#endasm // Инициализируем PORTC как порт ЖКИ
затем
#include <lcd.h>
затем
void main(void)
затем
Желательно инициализацию Портов и всего остального (а вось пригодится)
затем
// LCD module initialization
lcd_init(16);
lcd_gotoxy(0, 0); // Переводим курсор на первый символ первой строки
//lcd_puts(_str); // пока не будем
lcd_putsf("Hello"); // display the message
В моих примерах вольтметра именно в таком порядке (Для вас же приводил)

Меня еще смущает что у вас #include <alcd.h>, а не #include <lcd.h>
Но может это от версии зависит

Фьюзы по частоте правильно выставлены.
А вот SUT0 и SUT1 надо 01 или 10 (зависит от источника питания, но пока не принципиально).
У вас 00, а это для случая когда BOD включен, а вы его не активировали.

lawr писал(а):в железе вывод R/W индикатора должен сидеть на массе. Если он сидит на меге и там единица - то ты постоянно "читаешь" из индикатора и ты на нем ничего не увидишь :))

В данном случае вы не правы. В CVAVR при использовании встроенной библиотеки вывод R/W должен сидеть на меге.
Там проверяется ответ от lcd. Это сделано чтобы работали медленные lcd.
Если сделать по вашему, то код зависнет, т.к. не получит ответа от LCD.
"Учите мат. часть". Как говорил прапорщик после американского плена.
Учиться, учиться, ...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

Перепаял проводок с 5 ножки на землю МК, не помогает, экран ноль эмоций. Перепрошил мк еще раз так, как показал в последнем посту. ВEeprom, как всегда, ничего не загружал, во Flash заливает автоматически. Надеюсь, то, что надо. Питание через программатор, вытащил и вставил его - нету ничего.
Решил провольтметрить LCD в произвольный устаканившийся момент. Относительно первой ноги (GND):
питание: 3.29В;
яркость: 1.44В;
Data D0-D7: 3.2В даже там, где нет подключения к мк;
RS,R/W,E - нули.
Последний раз редактировалось kras Вт сен 11, 2012 18:03:25, всего редактировалось 1 раз.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

У вас 00, а это для случая когда BOD включен, а вы его не активировали

А из-за этого может не работать. И сейчас назад ногу припаяю R/W и посмотрю, что изменится.
Вот:
питание: 3.30В;
яркость: 1.52В;
Data D0-D7: 3.21В там, где нет подключения к мк, а 3.30В в местах подключения к мк;
RS,R/W,E - 3.30,3.30,0, соответственно.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

Теперь разобрался. Вы пользуетесь 2 версией CVAVR.
А я приводил пример для первой. У вас новая библиотека и порт
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
назначается видимо в ней.
Надо разбираться с командами вывода на lcd.
Либо использовать старую #include <lcd.h> вместо новой #include <alcd.h>
Должно прокатить.

SUT1 и SUT0 не делал никогда 00.
Лучше поменяйте, это не сложно.

По поводу яркости. Если имеется в виду контрастность, то у вас большое напряжение. Я вам писал что должно быть около 1:10. И вобще, если при выкручивании резистора на контрастности в крайние положения нигде не засвечивается строка из черных квадратиков, то LCD не работает не зависимо от МК.

Еще возник вопрос: А работает ли ваш LCD от 3,3 вольт. Что написано в даташит.

Вот вспомнил про сайт и там статейка http://my-avr.at.ua/publ/1-1-0-9
про подключение LCD.
Но опять видимо пример для первой версии. Зато должно работать.
Брал у него код для проигрывания wav с SD. Все работало.
Учиться, учиться, ...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение kras »

если при выкручивании резистора на контрастности в крайние положения нигде не засвечивается строка из черных квадратиков, то LCD не работает не зависимо от МК

А сжечь LCD нельзя, если давать напряжение питания (все-таки крайнее положение)? Ну и вообще странно насчет того, что он может не работать, так как я делаю вторую попытку, здесь стараюсь поаккуратнее. Первый дисплей мне продавщица сама дала, а второй я выбрал из коробки, так как боялся, что его долбанули или еще чего, хотя у них всегда норм детали.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение Garin »

kras нормальное развитие событий , называется танец с бубном, разве нельзя собрать на этих же деталях любой простой проект, чтобы убедится, что ваши детальки целы?
А так история будет бесконечна, то ли дисплей не живой , то ли МК, или программа не такая, или фьюзы не те......
lawr
Встал на лапы
Сообщения: 120
Зарегистрирован: Чт фев 16, 2012 15:22:06

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение lawr »

kras писал(а):А сжечь LCD нельзя?...

Да легко!
Есть LCD у которых иная распиновка, чем та к которой все привыкли. Иные могут и не работать при 3,3В. Тут надо смотреть даташит.
Померяй ток через индикатор - и все станет ясно.
А темные прямоугольники при изменении напряжения контрастности должны появляться даже если индикатор подключен только к питанию
Аватара пользователя
ds1307
Грызет канифоль
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Re: Atmega8515 - Частотомер, работающий на Atmega8

Сообщение ds1307 »

Ну упертый пацан попался...
Талдычу талдычу ему посмотри даташит. Ни в какую. Что и даташит страшно почитать?
+5V power supply(Also available for +3.3V)
Перевожу для боязливых:
напряжение питания 5Вольт (так же существуют на 3,3 Вольта)
Если у вас обычная поставка, то у вас 5вольтовый индикатор и он не будет работать от 3,3 вольт.
Если вы на него подавали напряжение от 4 батареек, тоже могли сжеть. У него макс напряжение 5,5Вольт.

Второе: контрастность на индикаторе это вход и ему по барабану с точки зрения сгореть, что вы подаете +5вольт или 0. Это обычный КМОП вход.
Милионы людей до вас подавали и не спалили. Вам описывают проверенную методику проверки работоспособности LCD.
Учиться, учиться, ...
Ответить

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