Страница 461 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 11:54:39
ibiza11
в режиме "выход" к ножке подключается какой-либо потребитель (будь то светодиод или другая микросхема). в этом режиме уровни на ножке определяются двумя выходными транзисторами, которые могут либо прижать выход к земле, либо поднять к питанию. при этом ток может быть достаточно большим (относительно).
в режиме "вход" ножка сама является потребителем, выходные транзисторы заперты, ножка как бы висит в воздухе и ее состояние определяется внешним сигналом: подашь единицу - будет единица, подашь ноль- будет ноль.
подтяжка нужна только для того, чтобы ножка в режиме входа не болталась в воздухе при отсутствии сигнала источника. Бывают такие источники, которые имеют два состояния не лог."0"/лог."1", а например лог."0"/"воздух" (например обычная кнопка, которая закорачивает на землю), или лог."1"/"воздух" (это в случае, когда кнопка закорачивает на + питания). Чтобы в состоянии "воздух" вход микроконтроллера не мотылялся из одного состояния в другое от внешних наводок (почитайте подробнее про это, если слово не знакомо), специально используют подтяжку, которая будет определять состояние входа в момент, когда источник сигнала "висит в воздухе". Когда же источник подает активный сигнал, он должен как бы "побороть" эту подтяжку (это происходит в случае, если источник имеет сопротивление ниже сопротивления подтяжки в несколько раз).
В микроконтроллерах AVR есть возможность подтянуть вход только к + питания.
Надеюсь понятно объяснил, почти на пальцах.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 12:21:23
xterro
Да, так понятнее, спасибо сейчас попробую это всё обмозговать ))
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 17:53:53
Engineer_Keen
FreshMan писал(а):вопрос касается ATmega8a относительно ADC
почему ADIF очищается аппаратно только в обработчике вектора прерываний ?
с каких соображений так сделано ?
Так на то он и флаг прерывания, чтобы указывать контроллеру на то, что нужно сделать прерывание АЦП, а если его не сбросить контроллер так и будет перескакивать на обработчик прерывания. Ну а если надо, его можно и руками сбросить, записав "1"...
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 18:51:57
coredumped
xterro писал(а):Да, так понятнее, спасибо сейчас попробую это всё обмозговать ))
Чтоб совсем стало понятно, откройте Reference manual для своего контроллера (например -
RM0090 для Cortex-M4F ) и в разделе 8 "General-purpose I/Os (GPIO)" почитайте, чем именно отличаются разные режимы портов. Там все достаточно подробно описано, с картинками

А то у Вас уже вход от выхода не отличается

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 18:54:19
FreshMan
вот сдесь
http://www.protostack.com/blog/2011/02/ ... atmega168/ есть такой пример
Код: Выделить всё
uint16_t ReadADC(uint8_t __channel)
{
ADMUX = (ADMUX & 0xf0) | __channel; // Channel selection
ADCSRA |= _BV(ADSC); // Start conversion
while(!bit_is_set(ADCSRA,ADIF)); // Loop until conversion is complete
ADCSRA |= _BV(ADIF); // Clear ADIF by writing a 1 (this sets the value to 0)
return(ADC);
}
в цикле while(!bit_is_set(ADCSRA,ADIF)); мы коротаем время пока не будут завершены преобразования, а потом сбрасываем флаг(сами).
не проще ли было бы сделать чтобы сдесь он сбрасывался аппаратно ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 20:03:52
Engineer_Keen
FreshMan писал(а):не проще ли было бы сделать чтобы сдесь он сбрасывался аппаратно ?
Зависит от конкретной программы, где-то удобно через прерывания, где-то тупым ожиданием флага готовности.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 20:13:17
FreshMan
а почему чтобы сбросить ADIF то надо записать 1 ?
ведь 0 буыло бы логичней ........., из каких соображений так сделано ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 20:18:51
pyzhman
Смотреть на микросхему 561ТМ2. Чем там сброс происходит?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 20:44:13
FreshMan
по поводу 561ТМ2 там все понятно....., подаешь на вход R сигнал логической 1 и вуаля.......
а тут мы имеем дело с ячейкой памяти....., то извините, немног другое

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 22:09:51
Аlex
FreshMan писал(а):ведь 0 буыло бы логичней
Согласен. Это равносильно тому, что фраза "сбросить бит" означала бы записать в бит единичку. Не логично однако ....
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 22:31:01
vitalik_1984
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 22:34:48
Аlex
vitalik_1984, хорошая у Вас память

По крайней мере лучше чем у
FreshMan 
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср сен 25, 2013 23:09:37
FreshMan
в тот момент я так и не услышал внятно-понятного ответа......, прозвучали слова касающиеся вокруг да около и так "взагалi"
вот по этому пробел и остался

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 05:57:47
pyzhman
Если не понятно что и как работает, то воспринимаем это как аксиому. Как библию. Как судьбу в виде даташита.

Ну а если не нравится, то делаем свое.

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 10:56:37
FreshMan
pyzhman писал(а):Если не понятно что и как работает
то надо искать источник где это понятно обясняется и излагается
всему есть логическое обьяснение

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 11:07:26
Engineer_Keen
FreshMan писал(а):всему есть логическое обьяснение

Это логическое объяснение может крыться глубоко в схемотехнике контроллера, например если выход этого регистра, отвечающий за флаг статуса идет через логическое "ИЛИ" (со схемой дающей "1" при переходе на адрес вектора прерывания АЦП) на сброс триггера. При этом установка "1" в триггере происходит при окончании преобразования, а его выход это как раз тот самый бит флага но уже только для чтения (и для работы подсистемы прерывания). Т.е. этот бит не просто один физический бит памяти, которым можно манипулировать как вздумается, а более сложное устройство со своей хитрой схемой управления...
Сложный какой-то пример получился

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 11:17:50
vitalik_1984
то надо искать источник где это понятно обясняется и излагается
Ищите молча, потом нам расскажете

Вообще почему Atmel сделал в управляющем регистре портом 0 это вход 1 это выход, в отличие от микрочип, где 1 это вход, а 0 это выход?
Таких загадок можно много найти, а ответ будет один- аппаратные особенности каждого Мк.
Сложный какой-то пример получился
Я как то так же пытался объяснить, но не вышло. Не знает человек что такое схемотехника. Да и плохо объясняю
Вообще ответ могут дать инженеры Atmel, может им стоит написать, вместо этого форума?

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 12:53:23
pyzhman
Мол какого хэ, пацаны?

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 15:16:30
FreshMan
я тут читал что Cortex M3 имеет разделенную шину данных и управления и общую память для програм и ОЗУ
а у AVR шина данных и управления тоже разделены ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт сен 26, 2013 15:38:40
ibiza11
вот так и хочется написать "нах.я тебе все это?"
вы знаете зачем эти шины нужны? а они вообще есть в AVR?