Полная версия этой страницы:
назначение ног ATmega8A
roman_golovenkov
Nov 9 2011, 07:07
Доброе время суток!
Объясните, пожалуйста, неграмотному

. В меге 8 есть такие ноги РВ6 и РВ7. К ним подключается кварц (если использовать функции XTAL1/2) и часовой кварц (если использовать функции TOSC1/2). Вроде так из ДШ понял? А можно ли использовать их непосредственно как I/O???
Конечно можно использовать как I/O если тактирование будет от внутреннего генератора.
Цитата(roman_golovenkov @ Nov 9 2011, 11:07)

А можно ли использовать их непосредственно как I/O???
Да, можно. Подключение к ним кварца - альтернативная функция этих ног.
roman_golovenkov
Nov 9 2011, 07:30
Может тогда что то не так делаю? Фьюзы выставляю так:
CKSEL3..0 = 0100 - частота 8 МГц, внутренний генератор
CKOPT = 1 - в ДШ условие при внутреннем генераторе
SUT1..0 = 10
BODEN = 1
BODLEVEL = 1
BOOTRST = 1
BOOTSZ1..0 = 00
RSTDISBL = 1
Инициализирую порт В
DDRB = 0xff
А светодиоды на РВ6..7 не мигають
Где то не догоняю...
Чем программируете и код , плиз
roman_golovenkov
Nov 9 2011, 08:27
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);
};
}
Цитата(roman_golovenkov @ Nov 9 2011, 12:27)

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

Т.е не мигают PB6 PB7? Прочтите порт DDRB PINB и PORTB , что в старших битах
Да, не мигают. После работы попробую прочитать и по UART на терминал пк отправить (по другому никак).
Цитата(Палыч @ Nov 9 2011, 13:44)

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

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

?? STK500 и есть отладочная плата+программатор! через переходник com-usb к ноутбуку (на нем CodeVision)
А почему тогда надо
Цитата
После работы попробую прочитать и по UART на терминал пк отправить
roman_golovenkov
Nov 9 2011, 10:31
А как еще? прочитать эти 2 бита и через другой порт на светодиоды отправить?
Цитата(roman_golovenkov @ Nov 9 2011, 14:31)

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

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

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

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

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

А в чем дело? По умолчанию - 1 МГц, меня это никак не устраивает.. не меньше 8 нуно.
Чет я как-то сомневаюсь по поводу влияния клока.

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

Что Вы понимаете под словом "неправильные"? Не может же быть "правильной" только частота 1МГц!
Таймер не используется.
1. Вы верните и проверьте - секундное дело
2. Это ещё ничего незначит
roman_golovenkov
Nov 10 2011, 14:21
Поменял частоту... как и думал, ничего не изменилось.
ILYAUL
Nov 10 2011, 14:43
Цитата(roman_golovenkov @ Nov 10 2011, 18:21)

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

Заразы и как входы работать не хотят!!!!
А ASSR обнулял, выше написано уже... Ни при 8, ни при 1МГц не работает! Мистика.... Или совсем я глупенький )
Тогда остаётся только одно - они просто принудительно отключены при изготовлении
roman_golovenkov
Nov 10 2011, 15:20
А как такое может быть?
PB6 (XTAL1/TOSC1) and PB7(XTAL2/TOSC2) can be used as either general I/O pins or Timer Oscillator pins:
ILYAUL
Nov 10 2011, 15:24
Цитата(roman_golovenkov @ Nov 10 2011, 19:20)

А как такое может быть?
PB6 (XTAL1/TOSC1) and PB7(XTAL2/TOSC2) can be used as either general I/O pins or Timer Oscillator pins:Тоже не понимаю , но всё что влияет на эти пины проверили ( FUSES и ASSR )
roman_golovenkov
Nov 10 2011, 15:34
Как же тогда получается
Цитата(roman_golovenkov @ Nov 9 2011, 19:14)

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

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

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

А фото для чего?
Вот теперь уже не нужно . Раз уж Вы привели схему вкл. светодиодов из схемы STK500, то наверное видели , что PB6 и PB7 на ней по умолчанию сконфигурированы для внешней частоты. Читайте описание работы с STK и если это вообще возможно - переключайте выходы на LED STK
roman_golovenkov
Nov 11 2011, 04:30
Посмотрел схему - действительно. Огромное спасибо за помощь!!!
Этот вопрос можно считать закрытым.
-----------
Отходя чуть от темы, смущает такая вещь: при мигании СД (delay_ms(1000)) частота немного выше (заметно "на глаз"). Может связано с регистром OSCCAL?
ILYAUL
Nov 11 2011, 07:29
Цитата(roman_golovenkov @ Nov 11 2011, 08:30)

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

а это вручную подстраивать надо?
Автоматизация этого уже решена Atmel'ом. Есть AppNote
AVR053 и соответствующие
программы.
roman_golovenkov
Nov 11 2011, 18:43
Спасибо за ссылки!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.