BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
koms48
Встал на лапы
Сообщения: 132
Зарегистрирован: Пт окт 19, 2012 05:54:55

Re: BASCOM AVR в вопросах и ответах

Сообщение koms48 »

По первому вопросу:
Вот это
Sck Alias Pinc.0
замени на это
Sck Alias Portc.0
Реклама
Аватара пользователя
Foton-4n
Электрический кот
Сообщения: 1073
Зарегистрирован: Вт май 22, 2012 19:29:06

Re: BASCOM AVR в вопросах и ответах

Сообщение Foton-4n »

А кто подскажет как переключать частоту? Надо бы от RC генератора или кварца переключаться на низкочастотный перед экономичным режимом?
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: BASCOM AVR в вопросах и ответах

Сообщение COKPOWEHEU »

В некоторых из sleep-режимов тактовый генератор просто останавливается, независимо от источника тактирования
Аватара пользователя
Foton-4n
Электрический кот
Сообщения: 1073
Зарегистрирован: Вт май 22, 2012 19:29:06

Re: BASCOM AVR в вопросах и ответах

Сообщение Foton-4n »

Да причём тут sleep режимы блин! Меня интересовала работа на пониженной частоте в экономичном режим, скажем 128КГц экономичный. Ладно мне ответили что это невозможно.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: BASCOM AVR в вопросах и ответах

Сообщение COKPOWEHEU »

В контроллерах энергия расходуется не по времени, а по количеству переключений. То есть, программа работает 1 сек на частоте 10 МГц или 10 сек на 1 МГц энергии потребуется примерно одинаковое количество. Иными словами почти нет разницы, будет ли контроллер работать все время на 128 кГц или интервалами по 1 мс с промежутками по 99 мс на частоте 12.8 МГц. Использование сна чуть сложнее. Потребление энергии в нем может быть выше, если остается много работающей переферии, или меньше, если контроллер только отвечает на внешние события (телевизионные пульты вон сколько работают).
Поэтому и возникает интерес, что же за задача такая, что самые очевидные решения не устраивают.
Реклама
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Re: BASCOM AVR в вопросах и ответах

Сообщение kip96 »

Этому где-то учат, или сами додумались?
АТМЕЛ только не говорите, а то массового суицида сотрудников АТМЕЛ не избежать :)))
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: BASCOM AVR в вопросах и ответах

Сообщение COKPOWEHEU »

Это следует из принципа работы КМОП (разумеется, я слегка упростил, на самом деле будут и утечки, и другие расходы, но в первом приближении верно) и даташита. Загляните туда на графики зависимости потребляемого тока от частоты. Вы будете удивлены, но они достаточно близки к линейным.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: BASCOM AVR в вопросах и ответах

Сообщение uk8amk »

Foton-4n писал(а):Меня интересовала работа на пониженной частоте в экономичном режим, скажем 128КГц экономичный.
Выбор тактового генератора из программы реализован в семействе XMega AVR. У MegaAVR приходится довольствоваться только делителем CLKPR(и то не у всех чипов).
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Вопрос по компаратору на атини 13
мне нужно на порте PB0 (AIN0) засекать появления какого либо напряжения, скажем около 3вольт, как только появилось на этом порте напряжение то далее ставим условие и выполняем действие

Собственно вопрос, каким образом понять что на этом порте появилось напряжение, большее (или меньшее) чем на порте AIN1?
всмысле как это выглядит в виде кода и как конфигурировать компаратор?

нужен именно этот порт так как другие порты с ацп уже заняты,

----

помогите чайнику,
между делом) Спасибо!
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

Мрр котам  :))
Написал прошивку на барсике и собрал схему выключения нагрузки (9вольт) на тиньке13. 
Все просто: делитель напряжения и АЦП. Значение ADC(0) выводится в UART для настройки. Подключил светодиод и все работает просто замечательно. Нагрузка выключается на 9вольтах и ниже. 
И тут столкнулся с проблемой, подключив лампу накаливания (21Вт). Падение напряжения и, как следствие, пляски значения ADC(0) приводят к выключению нагрузки не на том пороге, т.е выключается уже на 11вольтах. 

Подскажите, как убрать эту зависимость от нагрузки программно или может что-то в схему добавить.
Аватара пользователя
Foton-4n
Электрический кот
Сообщения: 1073
Зарегистрирован: Вт май 22, 2012 19:29:06

Re: BASCOM AVR в вопросах и ответах

Сообщение Foton-4n »

Точность АЦП плавает от напруги и температуры. Для суперточный решений только стабильная паруга питания и желательно 5В. Погрешность вполне приличная при верхнем пороге измерения в ~6.6В до 30-40мВ может дойти погрешность при изменении напруги с 2.5 до 5В, так что проблема еще та!
Так же проблема при нагреве плывёт вниз, в результате ЗУ успешно заряжает до скажем 4.12 когда плата прогрелась, и на холодную уже заряжает до 4.1 или даже 4.09В! Вот это конечно проблема из проблем.
Во всех случаях опора внутренняя 1.1В, мне показалось или на мега меньше плывёт от температуры как бы, ЗУ на mega168p вроде не заметил плавания напруги хотя плата тоже греется так же примерно.

А что бы более точно было оценивать напругу надо юзать алгоритм кратковременного захвата, тут либо оценка по пику, или если значение достигает нужного то сбрасываем таймер, если снизилось то таймер начинает работать по истечению времени событие, тогда короткие провалы не будут влиять. Захват по пику тут измеряем пики на протяжении времени, если новое значение ниже то опять таймер по истечении новое значение (при ШИМ точно показывает напругу при выключенной напгрузке, хотя колебания от 3.5В до 2.7-2.8В, показывает 3.5В реальная 2.7В просадка, при выключенной показания реальной не меняются, просадка = реальной, специально проверял запитав через резюк так что алгоритм работает идеально), если выше сразу и сброс таймера. У меня напруга очень даже пляшет при включении и просаживается но это не привело к ложным срабатываниям, можно увеличить время ожидания при потенциальной просадкой. У меня вольтметр достаточно тяжёлая процедура там куча таймеров для правильной оценки напруги, минимумы и пики, и это по каждому каналу.
Вольтметр в универсальном портативном БП занимает около 20% памяти от 32Кб, в простых решениях лазерах и фонарях около 30-40% от 8Кб памяти.

А по поводу сна тут конечно вопрос спорный. Кратковременное пробуждение требует работы генератора какого? Странно у меня на 8МГц при 5В тянет около 8.5мА, в IDLE аж до 5 снижается :))) я бы сказал супер! Про переферию говорить мне не надо я сюда пришёл не с вопросом как мне таймер сделать!
Вот про то я и говорю что снижение частоты можно было сохранять режим оперативного выхода на рабочий режим гораздо дольше, скажем при потреблении в 0.3мА против 8.5мА во сколько раз он бы продлился!
Активация нужна при нажатии кнопок сидящий на АЦП.
delf74
Родился
Сообщения: 4
Зарегистрирован: Пт май 03, 2013 06:17:18

Re: BASCOM AVR в вопросах и ответах

Сообщение delf74 »

Прошу помощи у уважаемых котов! Возник вопрос по режиму сна PowerSave.
Собрал барометр на Mega8, датчике Bmp180 (GY-68), Lcd Nokia 3310, питание от батареек 3в. В программе используются софтовые часы, соответственно задействован таймер Т2. С периодом 1 с происходит опрос датчика и вывод показаний на экран, на всё это уходит около 50мс и чтобы не расходовать энергию батареек, перевожу мк в режим PowerSave, но после пробуждения (по срабатыванию таймера Т2) перестает работать обмен с датчиком по шине I2C (использую аппаратный интерфейс), соответственно на экране сплошные нули. После некоторых экспериментов обнаружил, обмен с датчиком восстанавливается только при сбросе (Reset или по сторожевому таймеру), а ещё в режиме Power Idle (вместо PowerSave) работает как надо (но и потребление тоже больше)!
Может кто сталкивался с подобной проблемой или направит в нужное русло... :?
Аватара пользователя
Foton-4n
Электрический кот
Сообщения: 1073
Зарегистрирован: Вт май 22, 2012 19:29:06

Re: BASCOM AVR в вопросах и ответах

Сообщение Foton-4n »

А реконфигурация порта? А смысл а батарейках?
delf74
Родился
Сообщения: 4
Зарегистрирован: Пт май 03, 2013 06:17:18

Re: BASCOM AVR в вопросах и ответах

Сообщение delf74 »

Хотелось чтоб мобильность была и без лишних проводов, а если на аккумуляторах, то к ним ещё зарядка нужна ... :)
Пробовал повторно настраивать порт ... не помогло, только ресет.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

понадобился пульт ик стандарт NEC,попробовал написать,выходит лажа,в протеусе все вроде норм-может кто подскажет что не так...приемник принимает команды не правильно
Спойлер$regfile = "m8adef.dat" ' Используемый контроллер
$crystal = 16000000 ' 2000000 ' 4000000 ' 8000000
$framesize = 40
$hwstack = 40
$swstack = 40
'$sim

Config Pind.2 = Input
Config Portd.3 = Output
'Config Portd.2 = Output-здесь фотоприемник
'Portd.2 = 0
Irrec_pwr Alias Portd.3
Config Timer1 = Timer , Prescale = 8
'Config Timer0 = Timer , Prescale = 64
Config Timer2 = Timer , Prescale = 1 , Compare = Toggle , Clear Timer = 1
Compare2 = 210
Config Portb.3 = Output
Enable Timer1
'Enable Int0
Enable Interrupts
'On Timer0 Tikers 'work on timer
On Timer1 Period5625
'On Int0 Infrared 'work on interruption
'Dim Tik As Word 'counter of teaks of timer
Dim Byt As Byte
Dim Flag As Bit 'counter accepted bit
Dim X As Byte
'Dim Start_flag As Bit 'flag of start condition
Dim Address As Byte 'byte of address
Dim Command As Byte 'byte of command
Dim Command_ As Byte 'direct byte of command
Dim Address_ As Byte 'indirect byte of address
''Dim Command_0 As Byte 'indirect byte of command
'Dim Summa As Word
Command = 0
Address = 2
Flag = 0
Byt = 0
Stop Timer1
'Start Timer2
' Wait 2
Do 'Main cycle

Gosub Form

Incr Command
Waitms 500

Loop
End

Form:
'формирование посылки
Command_ = 255 - Command
Address_ = 255 - Address
Gosub Imp_start1
Gosub Imp_start0
Byt = Address
Gosub Peredacha8bit
Byt = Address_
Gosub Peredacha8bit
Byt = Command
Gosub Peredacha8bit
Byt = Command_
Gosub Peredacha8bit

Return



Peredacha8bit:
For X = 0 To 7
If Byt.x = 0 Then
Gosub Imp_1_562usek
Gosub Imp_0_562usek
Else
Gosub Imp_1_562usek
Gosub Imp_0_1687usek
End If
Next X
Return


Imp_start1:
'передаем старт 9 мс
Flag = 0
Timer1 = 47536
'Timer0 = T0 'Delay 10 en
Start Timer1
Start Timer2
While Flag = 0
'Flag = 0
Wend
Stop Timer2
Stop Timer1
Portb.3 = 0
Return

Imp_start0:
'+пауза 4,5 мс
Flag = 0
Timer1 = 56536
Stop Timer2
Start Timer1
While Flag = 0

Wend
Stop Timer1
Return

Imp_1_562usek:
'импульс 562,5 мкс
Flag = 0
Timer1 = 64411
Start Timer1
Start Timer2
While Flag = 0

Wend
Stop Timer2
Stop Timer1
Portb.3 = 0
Return

Imp_0_562usek:
'пауза 562,5 мкс
Flag = 0
Timer1 = 64411
Stop Timer2
Start Timer1
While Flag = 0

Wend
Stop Timer2
Stop Timer1
Portd.3 = 0
Return

Imp_0_1687usek:
'пауза 1687,5 мкс
Flag = 0
Timer1 = 62161
Stop Timer2 'Delay 10 en
Start Timer1
While Flag = 0
'Flag = 0
Wend
Stop Timer1
Portd.3 = 0
Return




Startimpuls:

Period5625:
Portb.3 = 0

Flag = 1
'Incr Byt
'Timer1 = 56536 '31250/(256-253)=10416,66 Hz (96 een)

'Start Timer1
'Start Timer0
Return
Вложения
nec.zip
(42.06 КБ) 153 скачивания
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

Можно тут посмотреть и тут.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

А мне никто не поможет :?

Написал прошивку на барсике и собрал схему выключения нагрузки (9вольт) на тиньке13. 
Все просто: делитель напряжения и АЦП. Значение ADC(0) выводится в UART для настройки. Подключил светодиод и все работает просто замечательно. Нагрузка выключается на 9вольтах и ниже. 
И тут столкнулся с проблемой, подключив лампу накаливания (21Вт). Падение напряжения и, как следствие, пляски значения ADC(0) приводят к выключению нагрузки не на том пороге, т.е выключается уже на 11вольтах. 
Подскажите, как убрать эту зависимость от нагрузки программно или может что-то в схему добавить.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

max50 писал(а):Можно тут посмотреть и тут.
там приемник,а мне нужно именно сам пульт...
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

KOTик, а ИОН у АЦП кто?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

вопрос исчерпан-я не правильно отправлял биты-задом наперед :)) :)) :))
и в конце передачи импульс добавить 562,5 мксек
Ответить

Вернуться в «AVR»