Краткий Курс - программирование AVR - часть VII

 
1 2 3 4 5 6 7 12

Yuran

опытный

Вопрос по 8 задаче, из курса ....

....Вопрос для самоконтроля:
а каким примерно будет напряжение на PB2 в вольтах?....

Я считаю, что Hi Z - 10мOm, и как на схеме 1мОм, 10 kOm, на ноге МК получается 8,182В, что то дофига если МК работает на 3,3 вольта да и для 5В, тоже дофига. Может Hi-Z неправильно взял?

Питание так же как в схеме 9В...

 
RU termostat #03.10.2005 18:05
+
-
edit
 

termostat

аксакал

Хорошая новость!

Каталог продукции компании ТЕРРАЭЛЕКТРОНИКА

можно купить в розницу компоненты, в том числе и чип-резисторы чип-конденсаторы и т.п.! от 1 шт. - я говорил щас с ними по телефону (095) 780-2075 - нет ни каких ограничений и по минимальной суме покупки в розницу.

По России доставляют почтой !

Главное: по письменной заявке по факсу БЕСПЛАТНО и без предоплаты набирают ваш заказ, затем оплачиваете и получаете.
RU termostat #03.10.2005 18:24
+
-
edit
 

termostat

аксакал

Yuran >
Вопрос по 8 задаче, из курса ....

....Вопрос для самоконтроля:
а каким примерно будет напряжение на PB2 в вольтах?....

Я считаю, что Hi Z - 10мOm, и как на схеме 1мОм, 10 kOm, на ноге МК получается 8,182В, что то дофига если МК работает на 3,3 вольта да и для 5В, тоже дофига.

Может Hi-Z неправильно взял?

Питание так же как в схеме 9В...
 



Как в комедии Гайдая:

1) За то что курс читаешь ставлю 5 !

2) За то что не посмотрел в ДШ устройство пинов и портов - ставлю 2


ОТВЕТ:

ножки МК имеют защитные диоды на землю и на питание МК - они похоже "шотки" потому напряжение на ножке будет:

V(PB2) = напряжение питания + падени напряжения на защитном диоде если ток через резистор 1 МОм не превысит тока потребляемого МК.

Если ток окажется выше то будет беда !!! напряжени питания МК будет расти, так как стабилизатор питания обычно не препятствует повышению напряжения на его выходе.

Часто люди бывают в ступоре почему "выключеный" МК продолжает работать, а это всего лишь ошибка в схемотехнике приводит к питанию через диоды других ножек.

Yuran

опытный

termostat>> V(PB2) = напряжение питания + падени напряжения на защитном диоде если ток через резистор 1 МОм не превысит тока потребляемого МК.

Дык, а чему равно падение напряжение неужели 0,6?




 

GOGI

координатор
★★★
Термостат, спасибо за магазин, а то ЧипДип так уже надоел своими минимальными 300 рублями.

1  

Yuran

опытный

termostat>> ножки МК имеют защитные диоды на землю и на питание МК - они похоже "шотки" потому напряжение на ножке будет:
termostat> V(PB2) = напряжение питания + падени напряжения на защитном диоде если ток через резистор 1 МОм не превысит тока потребляемого МК.

Итак имеем ~3,65В, смотрим даташит Vih1 Vcc+0.5 (3,8В)... тоесть из диапазона не выбились, надеюсь 5мкА для питания МК не хватит =)
Прикреплённые файлы:
1.jpg (скачать) [26,17 кбайт, 34 загрузки] [attach=17223]
 
 
 

Yuran

опытный

to termostat... А как узнать падение напряжения на защитном диоде? Можешь пожертвовать какой нибудь старенькой заюзаной Мегой64l и измерить? B)

Если шоттки то 0,2В должно примерно быть, если нет то до 0,6....
 
Это сообщение редактировалось 03.10.2005 в 21:05
+
-
edit
 

Serj78

новичок
Защитные диоды у Меги 8 по крайней мере не шоттки, при токе 1ма 520 мв падение... у меня однажды на внутреннем генераторе от высокого уровня на одной из ног программирования (программатор у меня 5 резюков по 150 ом на LPT...) мега8 запустилась, и даже чего-то на rs 232 передавать начала, а я гадал, я же все питание оторвал, что за глюк терминала в CV ? :)
 
+
-
edit
 

termostat

аксакал

Yuran> Дык, а чему равно падение напряжение неужели 0,6? [»]
 


Падение напряжения на диоде всеж зависит от тока.

на память:
типично считается что для "шотки" 0.3-0.4 вольта
для кремниевых 0.6 - 1.2 вольт примерно.

Легче померить на МК прямо в схеме уже.

А в принципе ЗАЧЕМ ?

Yuran

опытный

termostat>> Легче померить на МК прямо в схеме уже.
termostat> А в принципе ЗАЧЕМ ?

Померить дело то не хитрое не хочется испоганить трудом запаянную недешёвую микросхему B)

Или если подать на ногу напряжение которое выше допустимого, тоона выживет? :rolleyes:
 
RU termostat #03.10.2005 23:15
+
-
edit
 

termostat

аксакал

GOGI >
Термостат, спасибо за магазин, а то ЧипДип так уже надоел своими минимальными 300 рублями.
 


Если закажешь что-то и получишь такой сервис как обещали - напиши сюда пожалуйста, а лучше в БРЭО чтоб народ был в курсе.

Если облажаются то тоже напиши!
RU termostat #03.10.2005 23:53
+
-
edit
 

termostat

аксакал


Yuran >
Померить дело то не хитрое не хочется испоганить трудом запаянную недешёвую микросхему

Или если подать на ногу напряжение которое выше допустимого, тоона выживет?
 


Нет конечно. Дак ты ж не подавай. Тыж через резсистор 1 МОм подаешь ток! микроскопический ток.

Если собираешься переводить МК в спящий режим то поставь резистор на 5 МОм чтоб сделать ток еще меньше.

только такие высокоомные резисторы лучше ставить поближе к ножке МК, чтоб высокоомная цепь была покороче и меньше наводок ловила.
+
-
edit
 

DrDoom

новичок
Если кто знает - подскажите. При симуляции ATmega128 в AVR Studio 4.11 при изменении значения регистра данных USART (UDR0, либо UDR1) при выполнении очередной команды происходит сброс этого регистра, а также в режиме MPCM возникает прерывание приема, хотя 9-й адресный бит не установлен.
 

pokos

аксакал

DrDoom> ....при изменении значения регистра данных USART (UDR0, либо UDR1) при выполнении очередной команды происходит сброс этого регистра,
Это не бага, это фича! Зачем так сделано в этом симуляторе, не знаю, значение в регистр надо класть непосредственно перед выполнением команды, которая его считывает, т.е. ставить точку останова на неё. Нахрена они так сделали, не понятно, неудобно ващще.
 
RU termostat #05.10.2005 12:09
+
-
edit
 

Yuran

опытный

Господа, не помню писали ли здесь, но в последней версии AVRStudio + WinAVR сделана интеграция. Эти продукты бесплатны и ждут пока вы их скачаете с офицального сайта атмела


Atmel Products - Atmel AVR 8- and 32-bit Microcontrollers - megaAVR - AVR Studio 4

MicrocontrollersAtmel AVR 8- and 32-bit32-bit AVR UC3AVR XMEGAmegaAVRtinyAVRBattery ManagementAutomotive AVRAtmel ARM-based SolutionsMCU Wireless8051 ArchitectureTouchMemoryAutomotiveWireless / RFMore Products
Home > Microcontrollers > Atmel AVR 8- and 32-bit Microcontrollers > megaAVR > AVR Studio 4
Print
AVR Studio 4
Overview
Devices


// Дальше — www.atmel.com
 


и

http://sourceforge.net/projects/winavr/

соответсвенно.
 
RU termostat #05.10.2005 16:22
+
-
edit
 

termostat

аксакал

в VMLAB еще в 3.9 эта интеграция нарисовалась, причем ВинАВР только поставить нужно и больше НИКОГДА в него не заглядывать - все делается из под VMLAB.

Yuran

опытный

termostat>> ...и больше НИКОГДА в него не заглядывать - все делается из под ....

в AVRStudio аналогично =)
 
+
-
edit
 
RU termostat #06.10.2005 18:40
+
-
edit
 

termostat

аксакал

коллега >
Подскажите, пожалуйста, кто знает, как переключать шину 1 wire по линиям порта в CodeVisionAVR?
 


В этом компиляторе это назначается один раз в программе, изменить нельзя.

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

в Atmega можно задействовать еще TWI это тот же i2c только в железе.
+
-
edit
 

karavaev

новичок
Уважаемые знатоки !
Разрешите задать ламерский вопрос. Мне надо генерить прерывание переполнения 8-битного таймера 0 на ATmega8535. Использую пару WinAVR( версия 20030913)+VMLab 3.11 текст такой:

SIGNAL(SIG_OVERFLOW0) {
TCNT0=56;

PORTB=!PORTB;
}

int main(void) {
cli();

DDRB=0xFF;
PORTB=0x00;

DDRC=0xFF;
PORTC=0xAA;

TCNT0=56;
TIMSK=0x01; // Разрешено только прерывание переполнения
TCCR0=0x02; // Делитель системного такта на 8

sei();

while(1);

}

Модифицировал Fuses: CKSEL=0x0F CKOPT=0, чтобы 16 МГц кварц можно было поставить (пока тестирую с 6МГц)

В VMLab видно, что прерывание ни разу не вызывается, более того, как только таймер переполняется, в регистре TIFR устанавливается в 1 бит №1 (Output compare) вместо бита №0 (Переполнение) и в таком состоянии TIFR остается вечно, после зашивки в MEGA8535, естественно, железка PB0 не меняет.
Если в проекте ".PRJ" заменить контроллер .MICRO "ATmega8535" на .MICRO "AT90S8535" программа требуемые действия выполняет, прерывание с требуемой частотой генерится и после зашивки в 90S8535 устройство работает корректно.

Я раньше с MEGA-ми дела не имел, подозреваю, что дело в каких-то их особенностях.
Подскажите, пожалуйста, в чем может быть дело.

С уважением, Анатолий
 
+
-
edit
 

karavaev

новичок
Сейчас попробовал обновить WinAVR до последней версии и эмулировать для разных контроллеров:
не зависимо от версии WinAVR код нормально эмулируется для 90S8535, mega8, mega16; для mega8535 и mega8515 прерывание не генерируется <_< <_<
 
+
-
edit
 

DrDoom

новичок
Набросал то же в AVRStudio4, в симуляторе работает отлично:

.include "m8535def.inc"
.org 0
rjmp reset
.org OVF0addr
rjmp tim0_ovf
reset:
ldi r18,0xFF
out DDRB,r18
ldi r18,0
out PORTB,r18
ldi r18,0xFF
out DDRC,r18
ldi r18,0xAA
out PORTC,r18
ldi r18,56
out TCNT0,r18
ldi r18,1
out TIMSK,r18
ldi r18,2
out TCCR0,r18
ldi r18,low(RAMEND)
out SPL,r18
ldi r18,high(RAMEND)
out SPH,r18
sei
forever: rjmp forever
tim0_ovf:
push r18
in r18,SREG
push r18
ldi r18,56
out TCNT0,r18
in r18,PORTB
com r18
out PORTB,r18
pop r18
out SREG,r18
pop r18
reti

Попробуйте симулировать в AVRStudio
 
+
-
edit
 

karavaev

новичок
Интересно, получается, что кто-то глючит: VMLAB или скорее WinAVR. А у вас нет возможности на VMLABе HEX+COFF полученные от студии просимулировать для окончательного приговора? Я к сожалению привык на WinAVR в паре с VMLab-ом работать, похоже, переучиваться придется.
 
+
-
edit
 

DrDoom

новичок
Попробовал, действительно в симуляторе VMLab работает как Вы описали, т.е. ATmega8535 срабатывает не по переполнению, а по компаратору.
 
1 2 3 4 5 6 7 12

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru