Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: назначение ног ATmega8A
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
roman_golovenkov
Доброе время суток!
Объясните, пожалуйста, неграмотному rolleyes.gif . В меге 8 есть такие ноги РВ6 и РВ7. К ним подключается кварц (если использовать функции XTAL1/2) и часовой кварц (если использовать функции TOSC1/2). Вроде так из ДШ понял? А можно ли использовать их непосредственно как I/O???
smk
Конечно можно использовать как I/O если тактирование будет от внутреннего генератора.
Палыч
Цитата(roman_golovenkov @ Nov 9 2011, 11:07) *
А можно ли использовать их непосредственно как I/O???

Да, можно. Подключение к ним кварца - альтернативная функция этих ног.
roman_golovenkov
Может тогда что то не так делаю? Фьюзы выставляю так:
CKSEL3..0 = 0100 - частота 8 МГц, внутренний генератор
CKOPT = 1 - в ДШ условие при внутреннем генераторе
SUT1..0 = 10
BODEN = 1
BODLEVEL = 1
BOOTRST = 1
BOOTSZ1..0 = 00
RSTDISBL = 1

Инициализирую порт В
DDRB = 0xff

А светодиоды на РВ6..7 не мигають crying.gif
Где то не догоняю...
ILYAUL
Чем программируете и код , плиз
roman_golovenkov
CodeVision, STK500
CODE
/*****************************************************
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/

#include <mega8.h>
#include <delay.h>

void main(void)
{
DDRB=0xFF;

while (1)
{
PORTB=0XFF;
delay_ms(1000);
PORTB=0X00;
delay_ms(1000);
};
}


ILYAUL
Цитата(roman_golovenkov @ Nov 9 2011, 12:27) *
CodeVision, STK500

Почему-то мне кажется , что галочки означают программирование единицы , а отнюдь не ноль. Поэтому CKSEL3//0 получается 1011. Такой уж он ATMEL
roman_golovenkov
Нет, с этим все ОК. Остальные биты мигают с частотой 1Гц.
Галочка в CodeVision - бит установлен, а у ATMELA бит установлен - 0.
ILYAUL
Цитата(roman_golovenkov @ Nov 9 2011, 13:17) *
Нет, с этим все ОК. Остальные биты мигают с частотой 1Гц.
Галочка в CodeVision - бит установлен, а у ATMELA бит установлен - 0.

Т.е не мигают PB6 PB7? Прочтите порт DDRB PINB и PORTB , что в старших битах
Палыч
Цитата(roman_golovenkov @ Nov 9 2011, 11:30) *
А светодиоды на РВ6..7 не мигають

Вы реально к ногам светодиоды подключаете, или это - такой образный оборот речи? Какой ток для свечения светодиода нужен?
roman_golovenkov
Цитата(ILYAUL @ Nov 9 2011, 13:37) *
Т.е не мигают PB6 PB7? Прочтите порт DDRB PINB и PORTB , что в старших битах

Да, не мигают. После работы попробую прочитать и по UART на терминал пк отправить (по другому никак).

Цитата(Палыч @ Nov 9 2011, 13:44) *
Вы реально к ногам светодиоды подключаете, или это - такой образный оборот речи? Какой ток для свечения светодиода нужен?

Реально, в STK500 смотрю. Ток получается где-то 20мА. На картинке часть схемы отладочной платы.
ILYAUL
Цитата(roman_golovenkov @ Nov 9 2011, 13:55) *
Да, не мигают. После работы попробую прочитать и по UART на терминал пк отправить (по другому никак).

К чему она у Вас подключена , отладочная плата? К STK500?
roman_golovenkov
?? STK500 и есть отладочная плата+программатор! через переходник com-usb к ноутбуку (на нем CodeVision)
ILYAUL
Цитата(roman_golovenkov @ Nov 9 2011, 14:25) *
?? STK500 и есть отладочная плата+программатор! через переходник com-usb к ноутбуку (на нем CodeVision)


А почему тогда надо

Цитата
После работы попробую прочитать и по UART на терминал пк отправить
roman_golovenkov
А как еще? прочитать эти 2 бита и через другой порт на светодиоды отправить?
ILYAUL
Цитата(roman_golovenkov @ Nov 9 2011, 14:31) *
А как еще? прочитать эти 2 бита и через другой порт на светодиоды отправить?


Ну хотя бы так. Только запишите - биты для каждого считанного порта. (хоть на бумаге)
Палыч
Цитата(roman_golovenkov @ Nov 9 2011, 13:55) *
На картинке часть схемы отладочной платы.

Достаточно ли тока в 1мкА для того, чтобы открыть транзистор?
roman_golovenkov
Цитата(Палыч @ Nov 9 2011, 14:52) *
Достаточно ли тока в 1мкА для того, чтобы открыть транзистор?

1. А откуда такой ток?
2. Всегда открывались транзюки (если сомнения в надежности платы - она атмеловская)
ae_
PB6, PB7 не будут работать, если установлен бит AS2 регистра ASSR.
Может в start-up код закрались такие установки?
roman_golovenkov
Это-то понятно. Я конечно не обнулял регистры таймеров, но все ж с чего могло б такое место быть?
попробую дома отдебажить в авр студио, но там фьюзы не влияют на отладку, так что бессмысленно....
roman_golovenkov
Проверил. ерунда какая-то.
DDRB в единицах, как и должно быть...
PORTB и PINB ........МИГАЮТ на порте D!!!!
А на В не хотят, заразы!

ASSR принудительно обнулял... безрезультатно.

Посадил обе ноги на один светодиод... никакого толку(((
ILYAUL
Цитата(roman_golovenkov @ Nov 9 2011, 19:14) *
Проверил. ерунда какая-то.

Верните установки частоты (fuses) по умолчанию. Будет мигать
roman_golovenkov
Цитата(ILYAUL @ Nov 9 2011, 22:26) *
Верните установки частоты (fuses) по умолчанию. Будет мигать

А в чем дело? По умолчанию - 1 МГц, меня это никак не устраивает.. не меньше 8 нуно.
Чет я как-то сомневаюсь по поводу влияния клока. wacko.gif
ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 08:09) *
А в чем дело? По умолчанию - 1 МГц, меня это никак не устраивает.. не меньше 8 нуно.
Чет я как-то сомневаюсь по поводу влияния клока. wacko.gif


Потому что работу этих пинов могут блокировать только неправильные установки fuses или таймер. Если не заработает по default , будите разбираться с таймером , заработает с fuses
и на всех пинах стоят 10 ком резисторы по базе транзистора?
roman_golovenkov
Что Вы понимаете под словом "неправильные"? Не может же быть "правильной" только частота 1МГц!
Таймер не используется.
Подключение всех СД идентичное, причем эти же СД работают при подключении других выходов.

Меня смущает тот момент, что при снятии состояния с PINB6-7 и присвоении его PORTD, последний мигает СДми

Наверное, хорошо бы посмотреть реальные уровни на осциллографе, но за неимением такого задача усложняется. Если смогу найти - проверю вечером.
ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 09:25) *
Что Вы понимаете под словом "неправильные"? Не может же быть "правильной" только частота 1МГц!
Таймер не используется.

1. Вы верните и проверьте - секундное дело
2. Это ещё ничего незначит
roman_golovenkov
Поменял частоту... как и думал, ничего не изменилось.
ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 18:21) *
Поменял частоту... как и думал, ничего не изменилось.

Попробуйте принудительно обнулить ASSR
roman_golovenkov
Заразы и как входы работать не хотят!!!!

А ASSR обнулял, выше написано уже... Ни при 8, ни при 1МГц не работает! Мистика.... Или совсем я глупенький )
ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 19:06) *
Заразы и как входы работать не хотят!!!!

А ASSR обнулял, выше написано уже... Ни при 8, ни при 1МГц не работает! Мистика.... Или совсем я глупенький )

Тогда остаётся только одно - они просто принудительно отключены при изготовлении
roman_golovenkov
А как такое может быть? blink.gif

PB6 (XTAL1/TOSC1) and PB7(XTAL2/TOSC2) can be used as either general I/O pins or Timer Oscillator pins:
ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 19:20) *
А как такое может быть? blink.gif

PB6 (XTAL1/TOSC1) and PB7(XTAL2/TOSC2) can be used as either general I/O pins or Timer Oscillator pins:


Тоже не понимаю , но всё что влияет на эти пины проверили ( FUSES и ASSR )
roman_golovenkov
Как же тогда получается

Цитата(roman_golovenkov @ Nov 9 2011, 19:14) *
DDRB в единицах, как и должно быть...
PORTB и PINB ........МИГАЮТ на порте D!!!!
А на В не хотят, заразы!

ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 19:34) *
Как же тогда получается

Посмотрите , как устроен любой порт , а точнее любой pin I/O - выбросьте всё , что отвечает за вывод для PB6 И PB7 , и вот почему они их "усекли" не понятно. Пришлите фото этой микрухи , запрошу ATMEL
Если бы были не правильно сконфигурированы FUSES или set AS2 - DDRB PORTB и PINB - читались бы (0) - этого не происходит. Такое впечатление ,что просто нет контакта с самим pinом
roman_golovenkov
Цитата(ILYAUL @ Nov 10 2011, 19:45) *
Такое впечатление ,что просто нет контакта с самим pinом

Вы имеете в виду нет контакта с ножкой непосредственно?
А фото для чего?
ILYAUL
Цитата(roman_golovenkov @ Nov 10 2011, 20:31) *
А фото для чего?

Вот теперь уже не нужно . Раз уж Вы привели схему вкл. светодиодов из схемы STK500, то наверное видели , что PB6 и PB7 на ней по умолчанию сконфигурированы для внешней частоты. Читайте описание работы с STK и если это вообще возможно - переключайте выходы на LED STK
roman_golovenkov
Посмотрел схему - действительно. Огромное спасибо за помощь!!!

Этот вопрос можно считать закрытым.

-----------
Отходя чуть от темы, смущает такая вещь: при мигании СД (delay_ms(1000)) частота немного выше (заметно "на глаз"). Может связано с регистром OSCCAL?
ILYAUL
Цитата(roman_golovenkov @ Nov 11 2011, 08:30) *
Отходя чуть от темы, смущает такая вещь: при мигании СД (delay_ms(1000)) частота немного выше (заметно "на глаз"). Может связано с регистром OSCCAL?

Да, можете подстроить. Для 1Мгц уже заложено +/- 3%.
roman_golovenkov
а это вручную подстраивать надо? сначала смотрю через программатор какое значение на 8МГц, методом научного тыка изменяю значение, вначале кода прописываю его в ОSCCAL, смотрю осциллом как дергается нога... я так понял?
Палыч
Цитата(roman_golovenkov @ Nov 11 2011, 13:43) *
а это вручную подстраивать надо?

Автоматизация этого уже решена Atmel'ом. Есть AppNote AVR053 и соответствующие программы.
roman_golovenkov
Спасибо за ссылки!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.