Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega8, ADC, резистор
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср июн 18, 2025 16:06:00

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Atmega8, ADC, резистор
СообщениеДобавлено: Чт авг 18, 2016 23:00:40 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
Доброй ночи!
Есть Atmega8 к ней через ADC0 подключен переменный резистор на 10 кОм (крайний - +5v, средний - ADC, крайний - GND). Проблема в том, что уже где-то на половине хода ручки резистора, контроллер выдает максимальное значение, которое дальше не меняется до конца хода ручки.
Подозреваю, что проблема в характеристике переменного резистора (лог, лин, эксп..). Вопрос в том, какой именно резистор мне нужен (если больше я ничего не перепутал, конечно) чтобы значения менялись плавно и равномерно в течение всего хода ручки переменного резистора?
И, возможно есть возможность не менять резистор, а устранить этот недочет программно или средствами самого контроллера/языка программирования? В общем, как поступить в данной ситуации?
Гуглил и яндексил, но все «вокруг да около», а того, что нужно найти не удалось, увы :dont_know:
Заранее огромное спасибо всем помогающим! :beer:

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Чт авг 18, 2016 23:56:13 
Друг Кота

Карма: 2
Рейтинг сообщений: 59
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8051
Откуда: .ru
Рейтинг сообщения: 0
Stass48 писал(а):
Проблема в том, что уже где-то на половине хода ручки резистора, контроллер выдает максимальное значение, которое дальше не меняется до конца хода ручки.


1- Чтобы не гадать.. существует тестер. Простой тестер показывает все напряжение в схеме. Нас интересует напряжение на выходе резистора (относительно общего провода).

2- Думаю что проблема с настройкой самого АЦП в Atmega8.

Вот схема АЦП Atmega8:
Вложение:
АЦП.JPG [149.11 KiB]
Скачиваний: 624

Там есть регистр настройки АЦП. Назвывается ADMUX. У него есть биты, которые отвечают за выбор опорного напряжения АЦП.

ADMUX = 0b11000000, где:

10000000 REFS1 - опорное напряжение...
01000000 REFS0 - опорное напряжение... если 1, то AVCC...
...

А у Вас какие настройки АЦП в программе?
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 00:59:00 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
Огромное спасибо за ответ! :)
Кажется, я начинаю понимать ход Ваших мыслей... Типа максимальное напряжение может быть задано опорным... Хм...
Язык Bascom AVR вот строка конфигурации АЦП в моей программе:
Код:
Config Adc = Single , Prescaler = 128 , Reference = Internal


Вот так вот получаю значение АЦП:
Код:
Dim Vol As Word
Vol = Getadc(0)

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 01:15:42 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
Отвечаю сам себе. Вот что пишут в справке по Bascom-у:
Цитата:
'The reference param may be :
'OFF : AREF, internal reference turned off
'AVCC : AVCC, with external capacitor at AREF pin
'INTERNAL : Internal 2.56 voltage reference with external capacitor ar AREF pin


А вот что удалось найти в даташите на контроллер:
Цитата:
27.5.2. ADC Voltage Reference
The reference voltage for the ADC (VREF) indicates the conversion range for the ADC. Single ended
channels that exceed VREF will result in codes close to 0x3FF. VREF can be selected as either AVCC,
internal 2.56V reference, or external AREF pin.
AVCC is connected to the ADC through a passive switch. The internal 2.56V reference is generated from
the internal bandgap reference (VBG) through an internal amplifier. In either case, the external AREF pin
is directly connected to the ADC, and the reference voltage can be made more immune to noise by
connecting a capacitor between the AREF pin and ground. VREF can also be measured at the AREF pin
with a high impedance voltmeter. Note that VREF is a high impedance source, and only a capacitive load
should be connected in a system.
If the user has a fixed voltage source connected to the AREF pin, the user may not use the other
reference voltage options in the application, as they will be shorted to the external voltage. If no external
voltage is applied to the AREF pin, the user may switch between AVCC and 2.56V as reference selection.
The first ADC conversion result after switching reference voltage source may be inaccurate, and the user
is advised to discard this result.


Выставил у себя в программе:
Код:
Config Adc = Single , Prescaler = 128 , Reference = Avcc


Теперь все работает как нужно!

Однако, в даташите и справке по Bascom AVR говорится еще о каком-то конденсаторе, который якобы нужно "посадить" с AREF на GND! Что за конденсатор? Куда его подключать? Что делать с выводом AREF? Какая емкость этого конденсатора?
Схема моего подключения:
Изображение
Пример взят отсюда. Как видите, этот вывод "висит" в воздухе. Правильно ли это? Если нет, то как правильно?

Еще есть вопрос о предделителе:
Код:
Prescaler = 128

Какое здесь значение лучше ставить и на что оно влияет? Или может быть лучше ограничиться автоматическим режимом:
Код:
Prescaler = Auto
?

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 01:34:11 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
Все таки задам еще последний вопрос. Когда резистор находится в одном из крайних положений, все хорошо. Но когда он находится где-то посередине, то значения немного "прыгают" в пределах +/-1. Так как у меня программа написана таким образом что при смене значения она его пересылает по UART, то это приводит к постоянной пересылке данных! Есть ли какой-то штатный метод (программный или аппаратный) чтобы решить эту проблему? Или все же мне придется "лепить" свой "велосипед" внутри программы чтобы избежать повторной отправки данных больших или меньших на 2 единицы значений от предыдущего?

Заранее огромное спасибо за ответы! :) :wink:

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 02:42:10 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3731
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Stass48 писал(а):
Prescaler = 128
Какое здесь значение лучше ставить и на что оно влияет?

Оно влияет на частоту тактирования АЦП, которое, согласно ДШ, должно быть в пределах от 50 до 200 кгц при разрешении 10 бит и до 1000кгц при 8-битном разрешении. Каждое преобразование занимает 13 циклов этой частоты, что должно быть согласовано с периодом измерений.
Stass48 писал(а):
Есть ли какой-то штатный метод (программный или аппаратный) чтобы решить эту проблему?

Полностью гарантированно устранить прыгание не удастся. Для его уменьшения следуйте рекомендациям в секции ADC Noise Canceler в ДШ с учётом построения входной цепи и разводке её на плате. Поставьте хотя-бы RC-фильтр ФНЧ на входе АЦП, например, R=10K и C в пределах 0.1 до 1мкф. В программе совершайте несколько измерений, например 4 с суммированием результатов и последующим делением на 4 перед выдачей на UART. Эти меры значительно уменьшат прыгание и может редкие проявления его будут приемлимы с точки зрения посылки через UART. Если нет то "лепите велосипед" как указали выше.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 10:35:27 
Держит паяльник хвостом

Карма: 25
Рейтинг сообщений: 375
Зарегистрирован: Ср апр 13, 2011 11:09:20
Сообщений: 933
Откуда: Екатеринбург
Рейтинг сообщения: 0
Stass48 писал(а):
Типа максимальное напряжение может быть задано опорным...

Не "может быть", а так оно и сеть. АЦП всегда измеряет в диапазоне от GND до "опоры".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 11:51:25 
Друг Кота

Карма: 2
Рейтинг сообщений: 59
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8051
Откуда: .ru
Рейтинг сообщения: 0
-АЦП в Atmega8 измеряет напряжение на входе ADC0 относительно опорного напряжения.

-нижний предел счёта - GND
-верхний предел счёта - опорное напряжение.


-в качестве опорного напряжения может быть использовано (три варианта):

1- внутренний источник опорного напряжения - стабилизатор, напряжением 2.56 вольт. (Reference = Internal).
2- внешний источник опорного напряжения - вывод AREF (AREF pin). (Reference = AREF).
(На вывод AREF мы можем подключить свой источник опорного напряжения (например второй резистор) и с его помощью мы можем установить верхний предел счёта какой захотим)
3- внешний источник опорного напряжения - вывод AVCC (AVCC pin). (Reference = Avcc).

Stass48 писал(а):
Что делать с выводом AREF?

Ничего. Он нам больше не нужен. Потому что у нас Reference = Avcc. Ну и пусть себе спокойно висит в воздухе)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 12:25:39 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4326
Откуда: Ижевск
Рейтинг сообщения: 0
Stass48 писал(а):
... говорится еще о каком-то конденсаторе, который якобы нужно "посадить" с AREF на GND! Что за конденсатор? Куда его подключать? Что делать с выводом AREF? Какая емкость этого конденсатора?
Вложение:
AREF.PNG [13.89 KiB]
Скачиваний: 719


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 13:12:52 
Друг Кота

Карма: 2
Рейтинг сообщений: 59
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8051
Откуда: .ru
Рейтинг сообщения: 0
Если быть точным... то в даташите Atmega8 написано следующее (своими словами):

"Если установить Reference = Avcc, то вывод AREF (AREF pin) будет подключён к выводу AVCC (AVCC pin), через открытый транзистор."
Вложение:
AREF.PNG [14.58 KiB]
Скачиваний: 475

Таким образом, вывод AREF (AREF pin) оказывается подключённым к источнику питания AVCC (AVCC pin).

Использовать конденсатор на выводе AREF (AREF pin) или нет? В даташите рекомендуют подключить конденсатор... Но на самом деле я пробовал с конденсатором и без конденсатора. Мой АЦП в Atmega8 работает одинаково, что с конденсатором, что без конденсатора. Поэтому я на вывод AREF (AREF pin) ничего не подключаю. У меня вывод AREF (AREF pin) просто висит в воздухе. Просто я не люблю "лишнии" детали в схеме))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 15:01:19 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
roman.com писал(а):
2- внешний источник опорного напряжения - вывод AREF (AREF pin). (Reference = AREF).
(На вывод AREF мы можем подключить свой источник опорного напряжения (например второй резистор) и с его помощью мы можем установить верхний предел счёта какой захотим)

Такого варианта Bascom не предусматривает. Есть вариант Off, который, как я понял, и отключает все внутренние коммутации с опорным напряжением и передает управление ними на вывод AREF.
Поправьте, если что-то не так понял. :tea:

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 15:10:39 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
akl писал(а):
Вложение:
AREF.PNG

Хм, если верить:
roman.com писал(а):
Если быть точным... то в даташите Atmega8 написано следующее (своими словами):
"Если установить Reference = Avcc, то вывод AREF (AREF pin) будет подключён к выводу AVCC (AVCC pin), через открытый транзистор."

То какой смысл ставить еще один конденсатор, если он и так уже у меня стоит на выводе AVCC:
Stass48 писал(а):
Изображение

?
Тут как бы все уже ясно, просто интересно докопаться до истины :))
Огромное спасибо всем участвующим в теме! :)

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 15:27:13 
Друг Кота

Карма: 2
Рейтинг сообщений: 59
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8051
Откуда: .ru
Рейтинг сообщения: 0
Stass48 писал(а):
То какой смысл ставить еще один конденсатор, если он и так уже у меня стоит на выводе AVCC.

Вот и я так подумал... и выкинул этот конденсатор из схемы))
Stass48 писал(а):
Такого варианта Bascom не предусматривает. Есть вариант Off, который, как я понял, и отключает все внутренние коммутации с опорным напряжением и передает управление ними на вывод AREF.

Я в Bascom не разбираюсь)) Мне лучше на Си.

Как настраивать АЦП - не это не важно. Кому как удобней. Главное что-бы все чётко понимали как работает АЦП.

Мне проще установить нужные биты в регистре управления. Просто записать одной строчкой в программе:

ADMUX=0b01100001; // настройка АЦП, где:

//1... .... REFS1 - опорное напряжение - 0
//.1.. .... REFS0 - опорное напряжение - 1 - AVCC
//..1. .... ADLAR - Выравнивание результата
//...1 .... -
//.... 1... MUX3 - номер канала
//.... .1.. MUX2 - номер канала
//.... ..1. MUX1 - номер канала
//.... ...1 MUX0 - номер канала - ADC0...ADC7 (0000=ADC0)

Всего одна строчка. )) :tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 15:58:21 
Друг Кота

Карма: 2
Рейтинг сообщений: 59
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8051
Откуда: .ru
Рейтинг сообщения: 0
Интересен другой вопрос...
Stass48 писал(а):
значения немного "прыгают" в пределах +/-1. Так как у меня программа написана таким образом что при смене значения она его пересылает по UART, то это приводит к постоянной пересылке данных! Есть ли какой-то штатный метод (программный или аппаратный) чтобы решить эту проблему?

Ser60 писал(а):
Поставьте хотя-бы RC-фильтр ФНЧ на входе АЦП, например, R=10K и C в пределах 0.1 до 1мкф. В программе совершайте несколько измерений, например 4 с суммированием результатов и последующим делением на 4 перед выдачей на UART. Эти меры значительно уменьшат прыгание и может редкие проявления его будут приемлимы с точки зрения посылки через UART. Если нет то "лепите велосипед" как указали выше.

Всё верно.

1- для начала нужно стабилизировать напряжение питания (вывод AVCC) и напряжение на резисторе (на входе ADC0).
Можно стабилизировать напряжение на входе ADC0 относительно AVCC (имеется ввиду, чтобы небыло резких скачков напряжения на входе ADC0 относительно вывода AVCC). Тогда при изменении питания, рузультат преобразования меняться не будет.

Поэтому включать резистор рекомендуется через RC-фильтр ФНЧ. Например так:
Вложение:
12.gif [14.04 KiB]
Скачиваний: 736


2- Чтобы значения не "прыгали" и приводили к постоянной пересылке данных, можно делать несколько измерений и брать среднее значение. Но эти меры только уменьшают "прыганье", но не устраняют их полностью.
Поэтому я в своей программе "слепил велосипед" )). А точнее - добавил простой гистерезис.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 16:27:51 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн фев 18, 2008 17:48:40
Сообщений: 329
Рейтинг сообщения: 0
Ахаха)))
Я в СИ такой же, как Вы в Bascom :)))
Хотя знаю, что не мешало бы перейти на СИ так как он профессиональный и используется везде. Но, увы, простота Bascom-a уж очень сильно подкупает. Порог вхождения более низкий у него :)

Теперь оффтоп. Напишу для всех, а то мало ли. Я вот например полдня убил на то пока разобрался! :evil:
Итак начнем. Как вы уже, наверное, поняли: я педант-перфекционист и моя дотошность не имеет границ! Я всегда хочу и пытаюсь делать все ПРАВИЛЬНО! В связи с этим я нашел вот эту статью: тыц.
В ней описываются методы правильной обвязки для микроконтроллера. В данном случае возник казус с выводом Reset! И дело в том, что мне еще преподаватель мой говорил, что вывод Reset в воздухе лучше не оставлять! Вот здесь мы видим схему обвязки для вывода Reset:
Изображение
И вот что пишут в самой статье (цитата):
Цитата:
При отладке сложных программ может понадобиться осуществление принудительного сброса микроконтроллера. В этом случае удобно добавить в схему кнопку сброса, замыкание контактов которой будет подавать сигнал низкого уровня на вход RESET. Кнопку сброса обычно подключают вместе со стандартной RC-цепочкой.

Контакты кнопки при внутрисхемном программировании должны обязательно находиться в разомкнутом состоянии.


Ну и что же вы думаете?
Ну во-первых, я собственноручно убил одну мегу только потому что думал что перегрел ее при пайке! Фена у меня нету! Есть только 25 Вт паяльник! Поэтому пришлось взять канцелярский нож, срезать под корень все выводы, мегу выкинуть и паяльником аккуратно убрать остатки отрезанных ножек. Сама мега не определялась USBasp-ом. Вот потому так. Только когда впаял вторую и получил то же самое - понял, что что-то тут не так! Проблема оказалась в частоте обмена данных между прорамматором и контроллером. Поставил поменьше и все стало ОК, контроллер определился и начал шиться. Но какое же мое удивление было когда я его прошил, а по UART он ничего не стал пересылать! Гуглил, яндексил - пофиг! Причем грешил на китайский преобразователь USB-TTL! Но нашел в инете одну идею: замкнуть на преобразователе RX и TX и попробовать отправить данные) Отправил и все вернулось обратно) Тогда понял что преобразователь тут не причем! Тогда - контроллер! Долбался еще часа три! Было такое ощущение что контроллер вообще "глухой". Наконец я уже решился просто помигать светодиодом! Подпаял светодиод с резистором и я просто офигел, когда и это у меня не получилось! Вывод однозначный – контроллер не запускается! Смотрел как "баран на новые ворота" на свою схему и взгляд пал на вывод Reset и на резистор 10 кОм. Отпаял резистор – светодиод сразу же замигал (контроллер запустился)! Далее прошил его на работу с UART – все "завелось вполоборота"!
Вот и делайте выводы, друзья, какова цена педантичности и дотошности. Был бы я обычным "мудилой" – просто подал бы питание на контроллер и пофиг. Больше чем уверен что все бы работало как часы!

Кто может прокомментировать данную ситуацию? :twisted:

_________________
The only one thing necessary for the triumph of evil ...is for good people to do nothing.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8, ADC, резистор
СообщениеДобавлено: Пт авг 19, 2016 17:07:42 
Друг Кота

Карма: 2
Рейтинг сообщений: 59
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8051
Откуда: .ru
Рейтинг сообщения: 0
Stass48 писал(а):
Проблема оказалась в частоте обмена данных между прорамматором и контроллером. Поставил поменьше и все стало ОК, контроллер определился и начал шиться.

Вообщето... в моей инструкции USBasp про это написано. Все новые Atmega8 идут с завода с настроенным внутренним тактовым генератором 1 Мгц. А в самом USBasp (у меня) есть перемычка, которая уменьшает частоту при программирования...

"Для осуществления возможности выбора частоты программирования, предусмотрена перемычка №1... Это необходимо при программировании микроконтроллеров, тактовая частота которых меньше 1,5 Мгц"

А вывод Reset сам USBasp притягивает к земле.. когда ему это нужно)) На счёт резистора - не знаю. У меня стоит резистор и всё работает чётко. И сбрасывается всё нормально. Только у меня без конденсатора. А вообще мне кажется надо разбираться с фьюзами. Там много всего)) И Reset можно настроить как обычный вывод... и время перезапуска МК устанавливается... У меня таких проблем небыло))

А вообще.. выпаивать сразу не обязательно.. Помоему обычные глюки МК)) Тут есть темы про всякие фьюзы - доктор)) Лечим залоченные МК ))


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y