Easyelectronics.ru

Электроника для всех
Текущее время: 21 июн 2018, 20:59

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 24 ] 
Автор Сообщение
 Заголовок сообщения: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 20 фев 2014, 19:42 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Создал DEMO прошивку для ATMega8A совместно с модулем MEGA x8 на основе уроков от DI HALT а также на основе DEMO прошивки для ATMega16.
Прошивка сделана по принципу LEGO, она состоит из отдельных файлов, каждый из которых отвечает за свое действие.
По мне так очень удобно просматривать код и быстро отключать ненужный код.
Так же в таком виде, по крайней мере мне, легче изучать чужой код.
--------------------------------------------------------------------------------------------------------------------------------
Описание работы прошивки:
После прошивки МК и СБРОСА FTDI(нажав на соответственную кнопку на PINBOARD II),а также после подключения всех портов ввода/вывода
Будет происходить следуюющее:

1)Будет мигать светодиод LED2 каждые 0.5с

2)Светодиод LED1 будет плавно менять свою яркость от минимума к максимуу и обратно

3)На экране появиться надпись:

PINBOARD II
by MatR ER-16-11

4)Если нажимать поочередно на клавиши BTN1,BTN2,BTN3 то на экране будет написанно:

Нажата кнопка
X-Номер кнопки

Где X-номер нажатой кнопки(1,2,3)

5)Если повернуть ручку переменного резистора UFI то на экане будет написанно:

АЦП, канал 0
XXX - Значение

Где XXX -значение АЦП(от 0 до 255)
Так же это значение посылается в UART.Тоесть если открыть Terminal и подключиться к МК на скорости 19200,
то можно наблюдать символы в командной строке либо можно посмотреть в виде графика изменения значения АЦП.
Есть еще одна мелочь.
Если значение АЦП превысит пороговое значение(127) то начнет мигать светодиод LED3.

6)Если через Terminal поласть какое нибудь значение то на экране будет высвечиваться:

Ввод с трминала
XYZ

Где XYZ ваши данные посланные в UART

Так же если послать в UART символ 'R' то в командной строке придет ответ 'In' и на 5с прервется отсыл данных АЦП в UART,
но если в течении 5с послать символ 'A' то зажжется на 1с светодиод LED0.
По окнчании 5с после вывода в терминал 'In', в терминал придет 'Ex', продолжиться отсыл данных значений АЦП
и перестанет загораться светодиод LED0 при посылки в UART символа 'A'.
-----------------------------------------------------------------------------------------------------------------------------------
Архив с проектом для Atmel Studio 6.1
Прошивка для ATMega8A ver1.1

Общий вид подключений:
Изображение

далее фотки с работой прошивки:

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
-----------------------------------------------------------------------------------------------------------------------------------
Подключения портов ввода/вывода
    -----------------------------------------------------
    Кнопки:

    BTN1-->PD7
    BTN2-->PD6
    BTN3-->PD5
    -----------------------------------------------------
    Светодиоды:

    LED0-->PB0
    LED1-->PB3
    LED2-->PB2
    LED3-->PB1
    -----------------------------------------------------
    LCD дисплей:

    LCD Порт данных
    D4-->PB4
    D5-->PB5
    D6-->PB6
    D7-->PB7

    LCD Порт управления
    RS--->PD2
    R/W-->PD3
    E---->PD4
    -----------------------------------------------------
    АЦП:

    UFI-->PC0
    -----------------------------------------------------
    UART:

    Rx-->PD1
    Tx-->PD0
    -----------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------
Необходимые программы:
SinaProg2.1.1 настроенная для PINBOARD II
Terminal от Br@y
Ну и сама ATMEL STUDIO 6.1.1
----------------------------------------------------------------------------------------------------------------------------------
P.s. Прошивка будет обновляться и улучшаться( в планах задействовать полный потенциал ATMega8A).
Тему обновлять иногда лень, поэтому все оперативные изменения лежат здесь.
P.s. пока учусь, времени мало заниматься всякого рода описаниями. =(
P.s. Не претендую на авторство и очень хочу чтобы уважаемый DI HALT поставлял, такого рода, ДЕМО прошивку вместе с модулем Mega x8 ну и самой ATMega8 ^^,


Последний раз редактировалось Andrsonin 27 фев 2014, 01:00, всего редактировалось 12 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 21 фев 2014, 01:15 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Помогите с ШИМ разобраться. Делал так же как в примере у DI HALT но мне нужно было оставить порт OC1B свободным поэтому инициализацию произвел вот так:
;Инициализация (ШИМ)
SBI PWML_D,PWML
CBI PWML_P,PWML
OUTI OCR1AH,0x00
OUTI OCR1AL,0xFF
OUTI TCCR1A,1<<COM1A0|1<<WGM10|1<<WGM11
OUTI TCCR1B,1<<CS10|1<<WGM12|1<<WGM13

LDI OSRG,-1
STS PWM_L_V,OSRG

Далее хотел воплотить Плавное моргание светодиода как в демо прошивке для ATMega16 скопировал код:
;плавная Мигалка
PWM_Light: LDS ACC,PWM_L_V

CPI ACC,-1
BREQ ON_TOP

CPI ACC,1
BREQ ON_BOTTOM


NEX: ADD OSRG,ACC
OUT OCR1AL,OSRG

SetTimerTask TS_PWM_Light,5
RET


ON_TOP: LDI ACC,1
IN OSRG,OCR1AL
CPI OSRG,0xFF
BRNE NEX

STS PWM_L_V,ACC
LDI ACC,-1
RJMP NEX

ON_BOTTOM: LDI ACC,-1
IN OSRG,OCR1AL
CPI OSRG,0x00
BRNE NEX

STS PWM_L_V,ACC
LDI ACC,1
RJMP NEX
;------------------------------------------------------

Ну вообщем светодиод загорелся но не моргает а просто не так сильно горит как обычно и все...не моргает.Что не так?Чем режим этот отличается от того что в демке от DI HALT?Я просто не очень в английском, что бы очень хорошо понимать datasheet, только основное могу разобрать...понял только что сравнение идет не с младшим битом(OCR1AL), а с обоими(OCR1A).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 21 фев 2014, 06:59 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
А он моргает, просто с такой скоростью, что для глаза это равноценно снижению яркости.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 21 фев 2014, 08:27 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
DI HALT писал(а):
А он моргает, просто с такой скоростью, что для глаза это равноценно снижению яркости.

А почему так происходит? Когда я инициировал ШИМ как вас в DEMO прошивке( на оба порта) все хорошо и плавно мигало, как только поменял инициализацию то перестало мигать. Хотя вроде бы особо ничего не изменилось, или я не прав?
Что необходимо изменить что бы заработало? Время задержки? А как его выщитать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 21 фев 2014, 09:07 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
У тебя регистр сравнения не меняется. Там моргалка как работает:

Раз в 100мс (или около того) счетчик увеличивает значение "яркости" и записывает это в регистр OCR и так по циклу повторяется для всех каналов. Инициализацию то ты переписал, а работу с регистрами OCR конкретного таймера нет.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 21 фев 2014, 19:10 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Спасибо буду пробовать)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:14 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Проблема стала понятнее.Но все-равно ничего не понятно.
я Начал методом проб-и ошибок проверять, а именно записывать разные значения в младший и старший байты.(пока без последующего изменения, то есть постоянный ШИМ).И еще поставил предделитель что бы видеть различия(так как нету осциллографа).
Сначало так:
;Инициализация плавной моргалки(ШИМ)
SBI PWML_D,PWML
CBI PWML_P,PWML

OUTI TCCR1A,1<<COM1A0|1<<WGM10|1<<WGM11
OUTI TCCR1B,1<<CS12|1<<WGM12|1<<WGM13

OUTI OCR1AH,0x00
OUTI OCR1AL,0x00 ;от таких значений светодиод просто светился
Потом изменил их так:
OUTI OCR1AH,0x7F ;половина от максимума
OUTI OCR1AL,0xFF ;от таких значений светодиод как я и предполагал будет находиться в режиме On столько же сколько и в режиме OFF

А вот дальше пошли чудеса...:
OUTI OCR1AH,0xFF
OUTI OCR1AL,0xFF ;от таких значений светодиод По идеи не должен был гореть. НО!!! он горел почти так же как и во втором случае половину времени включен половину времени выключен(то есть мигал!) в чем причина такого эм...поведения?!?!?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:18 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
А посмотри относится ли прикол с порядком записи/чтения между младшим и старшим регистром. Есть на 16ти разрядных регистрах такие штуки в AVR - порядок записи/чтения имеет значение.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:19 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
И вообще у тебя ШИМ скольки разрядный? Если 8 то старшие биты вообще не при делах.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:34 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
16ти разрядным вроде пользуюсь(по DATASHEET).
Сейчас проверю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:36 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
А вообще прогнал бы давно уже в симуляторе и посмотрел как у тебя тикает таймер.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:42 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Поменял порядок записи
;Инициализация плавной моргалки(ШИМ)
SBI PWML_D,PWML
CBI PWML_P,PWML

OUTI TCCR1A,1<<COM1A0|1<<WGM10|1<<WGM11
OUTI TCCR1B,1<<CS12|1<<WGM12|1<<WGM13

Сначала так:
OUTI OCR1AL,0x00
OUTI OCR1AH,0x00 ;от таких значений светодиод просто светился

Потом изменил их так:
OUTI OCR1AL,0xFF ;половина от максимума
OUTI OCR1AH,0x7F ;Светодиод просто горит

Случай 3:
OUTI OCR1AL,0xFF
OUTI OCR1AH,0xFF ; светодиод просто горит...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:45 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
DI HALT писал(а):
А вообще прогнал бы давно уже в симуляторе и посмотрел как у тебя тикает таймер.

Дело в том что у меня в этой версии студии симулятор не хочет запускаться, как его настроить я тоже не понял, копался долго....когда нажимаю пошаговую отладку студия ругается...картинка прикрепил


Вложения:
1234.gif
1234.gif [ 171.99 Кб | Просмотров: 7148 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:46 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
А нехрен юзать всякие новомодные глючные рюшечки :))) Поэтому я сижу на студии 4.19 там работает все. От симулятора до жтага.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:48 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
DI HALT писал(а):
А нехрен юзать всякие новомодные глючные рюшечки :))) Поэтому я сижу на студии 4.19 там работает все. От симулятора до жтага.

я бы с радостью, но на ноуте WINDOWS 8.1, а на нем старая студия не работет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:49 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1456
Откуда: Докучаевск, Донецкая обл
Путь к проекту НЕ должен содержать кириллицу! Вопросительные знаки в пути на скриншоте ни на какие мысли не наводят?

_________________
Programmer - it is a machine for converting coffee to software.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:50 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Финский писал(а):
Путь к проекту НЕ должен содержать кириллицу!


при чем здесь это?
она же все создает отлично.
хотя..можно проверить=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:55 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1456
Откуда: Докучаевск, Донецкая обл
Всплывала уже такая проблема.

_________________
Programmer - it is a machine for converting coffee to software.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:55 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Финский писал(а):
Путь к проекту НЕ должен содержать кириллицу! Вопросительные знаки в пути на скриншоте ни на какие мысли не наводят?


Финский,СПАСИБО! и правда все заработало!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 22 фев 2014, 14:56 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Но как быть с ШИМ я так пока и не понял, буду копать...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 25 фев 2014, 23:01 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
Сделал ШИМ на 8-ми bit таймере.
А про 16-bit таймер написано, что при работе в режиме одного канала скважность 50% максимум( при большей скважности работа негарантируется) так что будьте внимательны!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 27 фев 2014, 14:32 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
Классно. Добавлю ее в спецуху. Как раз планировал мегу8 давать в укомплектованной версии скоро.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 27 фев 2014, 18:12 
Только пришел
Аватара пользователя

Зарегистрирован: 19 фев 2014, 01:40
Сообщения: 22
Откуда: МО, Юго-Восток
У меня тут вопрос возник.
Как написать код, что бы при выключении и последующем включении питания не приходилось сброс делать, чтобы LCD экран заработал?
Я предполагаю, что инициализацию экрана надо где-то в другом месте делать.Но пока не смог придумать куда именно переместить инициализацию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pinboard II_Модуль Mega x8_Demo прошивка_ATMega8
СообщениеДобавлено: 27 фев 2014, 19:00 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6244
Откуда: Челябинск
При старте где то. Контроллер должен перезапустить его. Я уже не помню, но вроде бы в кодах лцд была команда сброса в дефолт.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB