Программно увеличить разрядность АЦП до 11 бит
Программно увеличить разрядность АЦП до 11 бит
Всем привет.
Делаю некий вольтметр на PIC12F675. Измеряемое напряжение до 20,48В, точность нужна 0,01В. При делителе 2МОм/1МОм, напряжении питания 5,12В и 10-разрядном АЦП у меня будет нужный диапазон измерения (0 - 20,48В), но точность только 0,02В. Получается, что мне нужен 11-битный АЦП, а в младших PICах такого не бывает, только 10-битный.
Как бы эдак извернуться, чтобы программно повысить разрядность АЦП до 11 бит? Вот это видел, но смысл не очень понятен...
Делаю некий вольтметр на PIC12F675. Измеряемое напряжение до 20,48В, точность нужна 0,01В. При делителе 2МОм/1МОм, напряжении питания 5,12В и 10-разрядном АЦП у меня будет нужный диапазон измерения (0 - 20,48В), но точность только 0,02В. Получается, что мне нужен 11-битный АЦП, а в младших PICах такого не бывает, только 10-битный.
Как бы эдак извернуться, чтобы программно повысить разрядность АЦП до 11 бит? Вот это видел, но смысл не очень понятен...
- Вложения
-
- 1.JPG
- (6.67 КБ) 920 скачиваний
(c) 1982 Sinclair Research Ltd
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Повышение разрядности АЦП с помощью оверсемплинга заключается в том, что Вы делаете не одно, а несколько преобразований, а затем усредняете. Но после суммирования накопленного массива делите сумму не на количество элементов массива, а на вдвое меньшую величину.
Но оверсемплинг не повышает точность преобразования. Он лишь повышает разрешающую способность за счет падения скорости преобразования.
Кроме того, массив накопления нужно делать скользящим. Сиречь каждое новое преобразование выталкивает из массива самое старое (кольцевой буфер). После записи в буфер очередного измерения производится расчет среднего значения (удвоенного за счет вдвое меньшего делителя).
Фактически это представляет из себя ФНЧ с конечной импульсной характеристикой (КИХ-FIR) и прямоугольной оконной функцией (Rectangular Window).
Есть еще одно ограничение оверсемплинга по увеличению разрядности.Дело в том, что амплитуда шума во входном сигнале должна быть больше младшего разряда АЦП. Иначе никакого повышения разрядности получить не выйдет.
ЗЫ. Искомой точности Вы не получите хотя бы потому, что не читали даташит.
Точность АЦП всегда ниже его разрядности. Максимальная общая ошибка АЦП указана в даташите.
Для выбранной Вами платформы она равна плюс-минус 1 МЗР.
http://ww1.microchip.com/downloads/en/D ... 41190G.pdf
страница 103 таблица 12-8 пункт А02
Но оверсемплинг не повышает точность преобразования. Он лишь повышает разрешающую способность за счет падения скорости преобразования.
Кроме того, массив накопления нужно делать скользящим. Сиречь каждое новое преобразование выталкивает из массива самое старое (кольцевой буфер). После записи в буфер очередного измерения производится расчет среднего значения (удвоенного за счет вдвое меньшего делителя).
Фактически это представляет из себя ФНЧ с конечной импульсной характеристикой (КИХ-FIR) и прямоугольной оконной функцией (Rectangular Window).
Есть еще одно ограничение оверсемплинга по увеличению разрядности.Дело в том, что амплитуда шума во входном сигнале должна быть больше младшего разряда АЦП. Иначе никакого повышения разрядности получить не выйдет.
ЗЫ. Искомой точности Вы не получите хотя бы потому, что не читали даташит.
Точность АЦП всегда ниже его разрядности. Максимальная общая ошибка АЦП указана в даташите.
Для выбранной Вами платформы она равна плюс-минус 1 МЗР.
http://ww1.microchip.com/downloads/en/D ... 41190G.pdf
страница 103 таблица 12-8 пункт А02
Re: Программно увеличить разрядность АЦП до 11 бит
Читал. Собственно точность такая полностью устраивает. Не устраивает шаг выходных данных 0,02В - не фэншуйно. Меня устроило бы даже квазиувеличение точности путём интерполяции предыдущих отсчётов.ЗЫ. Искомой точности Вы не получите хотя бы потому, что не читали даташит.
Точность АЦП всегда ниже его разрядности. Максимальная общая ошибка АЦП указана в даташите.
Для выбранной Вами платформы она равна плюс-минус 1 МЗР.
Это уже написано - борюсь с шумом. 8 10-битных отсчётов суммирую и делю на 8. Самый старый отсчёт заменяется только что измеренным. Получается операция интегрирования по времени 8 отсчётов.Кроме того, массив накопления нужно делать скользящим. Сиречь каждое новое преобразование выталкивает из массива самое старое (кольцевой буфер). После записи в буфер очередного измерения производится расчет среднего значения (удвоенного за счет вдвое меньшего делителя).
Фактически это представляет из себя ФНЧ с конечной импульсной характеристикой (КИХ-FIR) и прямоугольной оконной функцией (Rectangular Window).
Смысл этого от меня ускользает. Фактически я имею удвоенное среднее арифметическое за 8 отсчётов. И чё?Повышение разрядности АЦП с помощью оверсемплинга заключается в том, что Вы делаете не одно, а несколько преобразований, а затем усредняете. Но после суммирования накопленного массива делите сумму не на количество элементов массива, а на вдвое меньшую величину.
Но оверсемплинг не повышает точность преобразования. Он лишь повышает разрешающую способность за счет падения скорости преобразования.
Соответственно и это непонятно. Амплитуду шума всегда можно увеличить уменьшив ёмкость блокировочного конденсатора по входу АЦП. Но каким образом связан шум на входе и удвоенное среднее за несколько отсчётов с увеличением разрядности?Есть еще одно ограничение оверсемплинга по увеличению разрядности.Дело в том, что амплитуда шума во входном сигнале должна быть больше младшего разряда АЦП. Иначе никакого повышения разрядности получить не выйдет.
(c) 1982 Sinclair Research Ltd
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Возьмем 16 ПОСЛЕДНИХ отсчетов. Просуммируем. И поделим не на 16, а на 8.
Если диапазон между соседними значениями АЦП заполнить белым шумом, а затем усреднить, то мы получим статистическое среднее.
Это среднее и будет входным сигналом.
Так например, если реальное значение сигнала будет находится ровно посередине двух значений, то в массиве окажется равное количество этих соседних значений. При усреднении которых мы и получим нижнее+0,5.
Амплитуду шума увеличить путем уменьшения емкости на входе не получится.
Нужен именно ШУМ, а не какой то паразитный входной сигнал, который, скорее всего, будет наводкой от 50 Гц...
Кстати, назначение входного фильтра у АЦП вполне конкретное. И он не предназначен для уменьшения шума.
Его задача - АНТИАЛИАСИНГ. То есть удвоенная частота семплирования (частота выборок) должна быть подавлена на разрядность АЦП.
То есть в Вашем случае на 60 дБ (в 1024 раза). Иначе дальнейшая цифровая фильтрация приведет к попаданию в полосу пропускания пересекающуюся с основной часть кратного спектра.
Если диапазон между соседними значениями АЦП заполнить белым шумом, а затем усреднить, то мы получим статистическое среднее.
Это среднее и будет входным сигналом.
Так например, если реальное значение сигнала будет находится ровно посередине двух значений, то в массиве окажется равное количество этих соседних значений. При усреднении которых мы и получим нижнее+0,5.
Амплитуду шума увеличить путем уменьшения емкости на входе не получится.
Нужен именно ШУМ, а не какой то паразитный входной сигнал, который, скорее всего, будет наводкой от 50 Гц...
Кстати, назначение входного фильтра у АЦП вполне конкретное. И он не предназначен для уменьшения шума.
Его задача - АНТИАЛИАСИНГ. То есть удвоенная частота семплирования (частота выборок) должна быть подавлена на разрядность АЦП.
То есть в Вашем случае на 60 дБ (в 1024 раза). Иначе дальнейшая цифровая фильтрация приведет к попаданию в полосу пропускания пересекающуюся с основной часть кратного спектра.
Re: Программно увеличить разрядность АЦП до 11 бит
Ну вот нет у меня необходимой теоретической базы, я этого всего не знаю.
Да, действительно, если уменьшить С, то полезет 50Гц и гармоники, особенно 3-я. А чистый шум можно наверное взять только с выхода сильно шумящего ОУ, если входной сигнал предварительно усиливается. В моём случае неоткуда.
То бишь ничего не будет? Забить?
Можно, наверное, ещё так сделать: , а потом из двух чисел вымутить одно вдвое более точное. Но опять же не очень понятно как.
Да, действительно, если уменьшить С, то полезет 50Гц и гармоники, особенно 3-я. А чистый шум можно наверное взять только с выхода сильно шумящего ОУ, если входной сигнал предварительно усиливается. В моём случае неоткуда.
То бишь ничего не будет? Забить?
Можно, наверное, ещё так сделать: , а потом из двух чисел вымутить одно вдвое более точное. Но опять же не очень понятно как.
(c) 1982 Sinclair Research Ltd
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Один разряд можно вытащить за счет помех цифровой части. Так что 11 разряд Вы конечно получите, но вот его корректность будет весьма невысокой.
Обычно такой способ увеличения разрядности применяют для повышения чувствительности ОБНАРУЖИТЕЛЕЙ сигналов. То есть когда точность не важна, важно лишь обнаружить ИЗМЕНЕНИЕ входного напряжения АЦП.
Обычно такой способ увеличения разрядности применяют для повышения чувствительности ОБНАРУЖИТЕЛЕЙ сигналов. То есть когда точность не важна, важно лишь обнаружить ИЗМЕНЕНИЕ входного напряжения АЦП.
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: Программно увеличить разрядность АЦП до 11 бит
Хорошо расписано в апноте от Atmel, AVR121. Какой именно МК тут совершенно не важно.E30M20B20 писал(а):Ну вот нет у меня необходимой теоретической базы, я этого всего не знаю.
Если наращивать разрядность оверсемплингом – то хотя бы до 2^13 (64 отсчета). Меньше нет смысла.
Последний раз редактировалось trengtor Вс янв 31, 2016 11:44:37, всего редактировалось 1 раз.
Re: Программно увеличить разрядность АЦП до 11 бит
А, вот наконец до меня дошло! Удвоенное среднее - оно же и есть на один бит длиннее
Я всё понял, огромное спасибо!
Так а мне большего-то и не надо. Это измерительная часть самописца, фиксирующего динамику изменения напряжение на 12В акк батарее. Здесь нужна не столько точность, сколько понимание куда растёт график.Один разряд можно вытащить за счет помех цифровой части. Так что 11 разряд Вы конечно получите, но вот его корректность будет весьма невысокой.
Обычно такой способ увеличения разрядности применяют для повышения чувствительности ОБНАРУЖИТЕЛЕЙ сигналов. То есть когда точность не важна, важно лишь обнаружить ИЗМЕНЕНИЕ входного напряжения АЦП.
Я всё понял, огромное спасибо!
А почему? 64 отсчёта мне в RAM не влезет, у 675-го PICа всего 64 байта RAM!Если наращивать разрядность оверсемплингом – то хотя бы до 2^13 (64 отсчета). Меньше нет смысла.
(c) 1982 Sinclair Research Ltd
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Смысл всегда есть, если он обоснован.
11, 12 или 100 разрядов - совершенно безразлично.
Важно лишь, чтобы результат был ожидаемым.
Такшта делайте 11-ый. Массив возьмите хотя бы 16 отсчетов (32 байта ОЗУ).
ЗЫ. У Вас там входной делитель слишком высокоомный. Откройте даташит в разделе АЦП и почитайте про эквизишн тайм.
Вообще то выходное сопротивление источника должно быть ниже 10 кОм.
11, 12 или 100 разрядов - совершенно безразлично.
Важно лишь, чтобы результат был ожидаемым.
Такшта делайте 11-ый. Массив возьмите хотя бы 16 отсчетов (32 байта ОЗУ).
ЗЫ. У Вас там входной делитель слишком высокоомный. Откройте даташит в разделе АЦП и почитайте про эквизишн тайм.
Вообще то выходное сопротивление источника должно быть ниже 10 кОм.
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: Программно увеличить разрядность АЦП до 11 бит
А почитать апнот, прежде чем спрашивать?E30M20B20 писал(а):А почему? 64 отсчёта мне в RAM не влезет, у 675-го PICа всего 64 байта RAM!Если наращивать разрядность оверсемплингом – то хотя бы до 2^13 (64 отсчета). Меньше нет смысла.
Про 64 – совет из личной практики. Сможете сделать 256 – делайте 256. Хуже не станет.
Как вывернуться, чтобы сохранить ОЗУ – тут мне сложно вам что-то советовать. Сам я предпочитаю использовать МК с избыточным объемом ПЗУ и ОЗУ.
Последний раз редактировалось trengtor Вс янв 31, 2016 11:31:59, всего редактировалось 1 раз.
Re: Программно увеличить разрядность АЦП до 11 бит
Ну кто же так делает? Инструкции в конце концов читаются только от отчаяния...
Сумма такого большого количества чисел - само по себе геморрой, это уже вылазит за рамки двух байтов, нужен третий. Имеет ли смысл - непонятно. Тем более, что в моём случае настоящей честной точности мне как бы не очень и надо - проблема чисто косметическая, чтобы было не через 2 сотки, а по-нормальному, через одну.
Сумма такого большого количества чисел - само по себе геморрой, это уже вылазит за рамки двух байтов, нужен третий. Имеет ли смысл - непонятно. Тем более, что в моём случае настоящей честной точности мне как бы не очень и надо - проблема чисто косметическая, чтобы было не через 2 сотки, а по-нормальному, через одну.
И про это знаю. Но из соображения электробезопасности вынужден применить такой высокоомный делитель (меряю аккумулятор, находящийся под потенциалом сети, выходные данные в виде UART 8N1 через оптрон идут в RxD UART-USB. Питание PICа тоже гальванически развязано от USB). Неизбежно возникающую погрешность буду компенсировать при калибровке готового девайса.ЗЫ. У Вас там входной делитель слишком высокоомный. Откройте даташит в разделе АЦП и почитайте про эквизишн тайм.
Вообще то выходное сопротивление источника должно быть ниже 10 кОм.
Последний раз редактировалось E30M20B20 Вс янв 31, 2016 15:26:15, всего редактировалось 3 раза.
(c) 1982 Sinclair Research Ltd
-
Pnjom-Penb
- Мучитель микросхем
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Re: Программно увеличить разрядность АЦП до 11 бит
Не совсем точно. Вместо "несколько" следовало написать 4^n, где n - необходимое число дополнительных разрядов. И делить надо не "на вдвое меньшую величину", а на 2^n, то есть, на величину корня квадратного из первого коэффициента.КРАМ писал(а):Повышение разрядности АЦП с помощью оверсемплинга заключается в том, что Вы делаете не одно, а несколько преобразований, а затем усредняете. Но после суммирования накопленного массива делите сумму не на количество элементов массива, а на вдвое меньшую величину.
Точность полученных значений он же повышает, тогда зачем путать ТС?КРАМ писал(а):Но оверсемплинг не повышает точность преобразования.
Это уже не к оверсемплингу относится, а к скользящему среднему, что несколько из другой оперы.КРАМ писал(а):Кроме того, массив накопления нужно делать скользящим.
Пример описания в апноте от Силабса: для повышения разрядности на 4 бита, берете 256 измерений (4^4), складываете их и делите на 16 (sqrt(256)) ("Once we calculate the result of 256 samples (in this example), we store or process the data and begin collecting data for the next output").
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: Программно увеличить разрядность АЦП до 11 бит
Вам нужно убрать мусор в незначащий (скрытый) разряд. Не так ли?E30M20B20 писал(а):Ну кто же так делает? Инструкции в конце концов читаются только от отчаяния...![]()
Сумма такого большого количества чисел - само по себе геморрой, это уже вылазит за рамки двух байтов, нужен третий. Имеет ли смысл - непонятно. Тем более, что в моём случае настоящей честной точности мне как бы не очень и надо - проблема чисто косметическая, чтобы было не через 2 сотки, а по-нормальному, через одну.
А апнот прочитайте. В вашем случает это must, а не should.
Только AVR121, а не 221. Моя ошибочка
Последний раз редактировалось trengtor Вс янв 31, 2016 11:46:01, всего редактировалось 2 раза.
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: Программно увеличить разрядность АЦП до 11 бит
В общем да, тут КРАМ путает скользящую сумму со скользящим средним. Нужна скользящая сумма.Pnjom-Penb писал(а):Это уже не к оверсемплингу относится, а к скользящему среднему, что несколько из другой оперы.КРАМ писал(а):Кроме того, массив накопления нужно делать скользящим.
Пример описания в апноте от Силабса: для повышения разрядности на 4 бита, берете 256 измерений (4^4), складываете их и делите на 16 (sqrt(256)) ("Once we calculate the result of 256 samples (in this example), we store or process the data and begin collecting data for the next output").
Все прекрасно реализуется на сдвиговых операциях (работаем-то с целочисленными значениями из АЦП), просто сдвигаем вправо на степень четверки.
Re: Программно увеличить разрядность АЦП до 11 бит
Ну то есть, если мне нужен всего лишь один дополнительный разряд, то я должен взять сумму 4-ёх отсчётов, и разделить её на 2?Не совсем точно. Вместо "несколько" следовало написать 4^n, где n - необходимое число дополнительных разрядов. И делить надо не "на вдвое меньшую величину", а на 2^n, то есть, на величину корня квадратного из первого коэффициента.
Почитаю. Но хочется, как обычно, простого и быстрого решения, которое уже нашлосьAVR121
Последний раз редактировалось E30M20B20 Вс янв 31, 2016 11:50:06, всего редактировалось 1 раз.
(c) 1982 Sinclair Research Ltd
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Речь шла об ОДНОМ лишнем разряде. Поэтому объяснение вполне корректно.Pnjom-Penb писал(а):Не совсем точно. Вместо "несколько" следовало написать 4^n, где n - необходимое число дополнительных разрядов. И делить надо не "на вдвое меньшую величину", а на 2^n, то есть, на величину корня квадратного из первого коэффициента.КРАМ писал(а):Повышение разрядности АЦП с помощью оверсемплинга заключается в том, что Вы делаете не одно, а несколько преобразований, а затем усредняете. Но после суммирования накопленного массива делите сумму не на количество элементов массива, а на вдвое меньшую величину.
То, о чем написали Вы очевидно, если понять частный случай лишнего разряда.
НЕ ПОВЫШАЕТ он никакой точности. Он повышает РАЗРЕШЕНИЕ. Или Вы не знаете разницу между точностью и разрешением?Pnjom-Penb писал(а):Точность полученных значений он же повышает, тогда зачем путать ТС?КРАМ писал(а):Но оверсемплинг не повышает точность преобразования.
Наличие лишних разрядов никак не изменяет смещение нуля и нелинейность АЦП.
Абсолютно из этой оперы.Pnjom-Penb писал(а):Это уже не к оверсемплингу относится, а к скользящему среднему, что несколько из другой оперы.КРАМ писал(а):Кроме того, массив накопления нужно делать скользящим.
Вся история с оверсемплингом является тупо фильтрацией (цифрового шума+белого шума) с целью выделения сигнала ниже уровня этого шума. При этом можно применять как скользящее среднее (КИХ), так и рекурсивный БИХ. Результат будет абсолютно одинаковый.
КРАМ тут ничего не путает.trengtor писал(а): В общем да, тут КРАМ путает
Это Вы с пнем-пенем плохо понимаете физику и математику метода.
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: Программно увеличить разрядность АЦП до 11 бит
С учетом шума АЦП (±1 младший разряд), а также нестабильности и шума опорника (вы же не сказали, что у вас использовано), вам понадобятся избыточные разряды, в которые должны проваливаться шумы (нестабильность показаний) после оверсемплинга и децимации.E30M20B20 писал(а):Ну то есть, если мне нужен всего лишь один дополнительный разряд, то я должен взять сумму 4-ёх отсчётов, и разделить её на 2?Не совсем точно. Вместо "несколько" следовало написать 4^n, где n - необходимое число дополнительных разрядов. И делить надо не "на вдвое меньшую величину", а на 2^n, то есть, на величину корня квадратного из первого коэффициента.
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Удивительная каша...trengtor писал(а):...а также нестабильности...опорника....в которые должны проваливаться шумы (нестабильность показаний) после оверсемплинга и децимации.
Нестабильность опорного напряжения (в нашем случае напряжения источника питания МК) ВООБЩЕ НИКАК не будет подавлена.
К тому же нестабильность и шум не имеют друг к другу никакого отношения.
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: Программно увеличить разрядность АЦП до 11 бит
А что насчет вашего скользящего среднего? Оно-то каким место сюда относится?КРАМ писал(а):Удивительная каша...trengtor писал(а):...а также нестабильности...опорника....в которые должны проваливаться шумы (нестабильность показаний) после оверсемплинга и децимации.![]()
Нестабильность опорного напряжения (в нашем случае напряжения источника питания МК) ВООБЩЕ НИКАК не будет подавлена.
К тому же нестабильность и шум не имеют друг к другу никакого отношения.
А насчет того, что за опора – пускай топикстартер нам и скажет.
- КРАМ
- Друг Кота
- Сообщения: 25218
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Программно увеличить разрядность АЦП до 11 бит
Прежде чем загадочно подмигивать, попробуйте разобраться в цифровой обработке сигналов...trengtor писал(а):А что насчет вашего скользящего среднего? Оно-то каким место сюда относится?
Скользящее среднее - это ЧАСТНЫЙ СЛУЧАЙ цифрового фильтра низких частот с конечной импульсной характеристикой (с прямоугольным окном). К слову, окно может быть не обязательно прямоугольным.
Вы пользуетесь аппнотами без всякого понимания что и откуда там берется. Оттого делаете странные и наивные выводы.
Последний раз редактировалось КРАМ Вс янв 31, 2016 12:03:14, всего редактировалось 1 раз.



