Например TDA7294

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





Текущее время: Вт апр 23, 2024 13:05:50

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


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



Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: BMP085 не заводится
СообщениеДобавлено: Чт ноя 08, 2012 18:17:45 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн окт 12, 2009 18:16:50
Сообщений: 49
Откуда: Саранск
Рейтинг сообщения: 0
Не могу завести BMP085 на Атмеге32 в Codevision. Датчик брался в деалэктриме уже распаянный с подтяжкой, конденсаторами и стабилизатором на 3,3 В. Мега питалась от 5 В и 3,8 В (ниже уже не показывает ЖК).
Проблема в том, что содержимое любого байта регистра возвращается как FF, да и при отключеном датчике программа работает также и показывает 255 (т.е. FF). Ощущение, что датчик совсем нерабочий.
вот код чтения
Код:
   i2c_start();
   i2c_write(BMP085_I2C_ADDRESS);
   i2c_write(0xAA);
   i2c_start();
   i2c_write(BMP085_I2C_ADDRESS | 1);
   ac1 =i2c_read(0);
   i2c_stop();

i2c_start() выдает 1, что означает шина свободна. Это значит нет устройств?

Как определить адреса устройств, которые висят на шине? В примере для Raspberry Pi значится #define BMP085_I2C_ADDRESS 0x77


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Чт ноя 08, 2012 19:35:38 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 81
Зарегистрирован: Вс июл 29, 2012 16:25:39
Сообщений: 312
Рейтинг сообщения: 0
Dj_Alex писал(а):
Мега питалась от 5 В и 3,8 В
Если Мега работала на +5, то эти +5 были и по SDA/SDL. Могло пожечь датчик.
Dj_Alex писал(а):
Ощущение, что датчик совсем нерабочий.
Документация на датчик читалась?
Dj_Alex писал(а):
i2c_start() выдает 1, что означает шина свободна. Это значит нет устройств?
А что говорит документация CV на эту функцию? Что должно вернуть?

Dj_Alex писал(а):
Как определить адреса устройств, которые висят на шине? В примере для Raspberry Pi значится #define BMP085_I2C_ADDRESS 0x77
Понятно, вопрос о документации снимаю как неактуальный. Я уже не удивлен. Такое ощущение, что нынче не модно читать документацию :)))
4.2 Device and register address
The BMP085 module address is shown below. The LSB of the device address distinguishes between read (1) and write (0) operation, corresponding to address 0xEF (read) and 0xEE (write).


Имхо, гораздо проще, быстрее и интереснее открыть даташит на BMP085, даташит на TWI в Атмеге и за полчаса набросать функции записи/чтения. Вместо использования каких-то примеров, без понимания что и как там делается.
Спойлер
Код:
//----------
// команда чтения регистра BMP085
#define BMP085_R 0xEF

// команда записи регистра BMP085
#define BMP085_W 0xEE
//----------
void TwiInit()
{
    // Конфигурация TWI модуля
// Ftwi = F / ( 16 + 2 *TWBR * TWPS)
// Bit Rate: 250,000 kHz
    TWBR = 0;
    TWSR = ( (0<<TWPS1) | (0<<TWPS0) ); // делитель частоты = 1
    TWAR = 0x00;

    TWDR = 0xFF;                                      // Default content = SDA released.
    TWCR = (1 << TWEN)|                                 // Enable TWI-interface and release TWI pins.
         (0 << TWIE) | (0 << TWINT)|                      // Disable Interupt.
         (0 << TWEA) | (0 << TWSTA) | (0 << TWSTO)|           // No Signal requests.
         (0 << TWWC);                                 //
}
//----------

unsigned int bmp085_ReadReg(char cAddr)
{
    r_Measure.bTwiError = 1; // ошибка i2c
    unsigned int data = 0xFFFF;
// старт TWI
    TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT) ) );
    // Проверка статуса
    if( (TWSR & 0xF8) != TWI_START )
        return data;

// адрес устройства
    TWDR = BMP085_W;
    TWCR = (1<<TWINT) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_MTX_ADR_ACK )
        return data;

// адрес регистра
    TWDR = cAddr;
    TWCR = (1<<TWINT) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_MTX_DATA_ACK )
        return data;

// перезапуск i2c
    TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_REP_START )
        return data;

// адрес устройства
    TWDR = BMP085_R;
    TWCR = (1<<TWINT) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_MRX_ADR_ACK )
        return data;

// отсылаем ACK
    TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
    // Ожидание  выполнения
    while( !(TWCR & (1<<TWINT)) );
    //Проверка статуса
    if( (TWSR & 0xF8) != TWI_MRX_DATA_ACK )
        return data;
    // Чтение данных, MSB
    char cMSB = TWDR;

// отсылаем NACK
    TWCR = (1<<TWINT) | (1<<TWEN);
    // Ожидание  выполнения
    while( !(TWCR & (1<<TWINT)) );
    //Проверка статуса
    if( (TWSR & 0xF8) != TWI_MRX_DATA_NACK )
        return data;
    // Чтение данных, MSB
    char cLSB = TWDR;

//Put Stop Condition on bus
    TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
//Wait for STOP to finish
    while( TWCR & (1<<TWSTO) );

    data = (cMSB << 8) + cLSB;
    r_Measure.bTwiError = 0; // отработали успешно
    return data;
}

char bmp085_WriteReg(char cAddr, char cData)
{
// старт TWI
    TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT) ) );
    // Проверка статуса
    if( (TWSR & 0xF8) != TWI_START )
        return 0;

// адрес устройства
    TWDR = BMP085_W;
    TWCR = (1<<TWINT) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_MTX_ADR_ACK )
        return 0;

// адрес регистра
    TWDR = cAddr;
    TWCR = (1<<TWINT) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_MTX_DATA_ACK )
        return 0;

// записываемые данные
    TWDR = cData;
    TWCR = (1<<TWINT) | (1<<TWEN);
    while( !(TWCR & (1<<TWINT)) );
    if( (TWSR & 0xF8) != TWI_MTX_DATA_ACK )
        return 0;

//Put Stop Condition on bus
    TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
//Wait for STOP to finish
    while( TWCR & (1<<TWSTO) );
    return 1; // отработали успешно
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Чт ноя 08, 2012 19:44:08 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 607
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3715
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Согласно ДШ байт с I2C адресом для записи в BMP085 должен быть 0хЕЕ. Я не знаю как работает CodeVison, может он сдвигает адрес 0х77 на бит влево для получения 0хЕЕ. Однако, тогда, адрес для чтения 0х77 | 1 до сдвига будет тоже 0х77 (?) Попробуйте адреса 0хЕЕ и 0хEF.
http://www.bosch-sensortec.com/content/language1/downloads/BST-BMP085-DS000-05.pdf


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 15:24:00 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн сен 10, 2012 10:15:09
Сообщений: 22
Откуда: Ставрополье
Рейтинг сообщения: 0
Народ, аналогичная проблема, помогите понять алгоритм обращения к датчику. У меня есть адаптер USB <-> I2C на микроконтроллере PIC (с поддержкой шины). Обмен данными с этим адаптером осуществляется через виртуальный COM-порт, собственно, какие последовательности я должен слать, например в терминал, чтобы получить данные?


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 15:37:44 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 904
Откуда: ВО
Рейтинг сообщения: 0
Цитата:
какие последовательности я должен слать, например в терминал, чтобы получить данные?

Цитата:
Понятно, вопрос о документации снимаю как неактуальный. Я уже не удивлен. Такое ощущение, что нынче не модно читать документацию

Ещё чего - читать документацию . Читать уже не модно. :cry:


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 15:49:08 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн сен 10, 2012 10:15:09
Сообщений: 22
Откуда: Ставрополье
Рейтинг сообщения: 0
Понимаю ваш сарказм, но хотелось бы услышать совет от понимающих людей.

Пример последовательности для чтения данных с регистра датчика температуры:
1. EE F4 2E - результат нулевой
2. 77 F4 2E - последовательность FF


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 16:20:44 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 161
Зарегистрирован: Вт июл 27, 2010 11:31:59
Сообщений: 2204
Откуда: Кххх
Рейтинг сообщения: 0
Проект на BMP085 с исходниками.
http://avrproject.ru/publ/barometr_na_bmp085/1-1-0-102


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 16:42:21 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн сен 10, 2012 10:15:09
Сообщений: 22
Откуда: Ставрополье
Рейтинг сообщения: 0
Спасибо, но если бы мне необходимо было получать данные микроконтроллером, то вопросов бы не было. У меня же замеры должны осуществляться компьютером через виртуальный COM-порт, который по сути выполняет функции шины I2C. И прежде чем написать софт, мне необходимо узнать, какую последовательность команд выставлять на шину I2C через тот же терминал, чтобы получить ответ от датчика.

Буду очень признателен за советы!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 17:17:50 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 161
Зарегистрирован: Вт июл 27, 2010 11:31:59
Сообщений: 2204
Откуда: Кххх
Рейтинг сообщения: 0
Извините не понял сразу.
Да пожалуй и никто не поймет.
Вы ничего не сказали, что у вас за адаптер. Какой датчик температуры они там подключают...
Надо разбираться как реализован т.н. "автомат состояний" в вашем пике.
Обмен данных по iic шине с BMP085 приводится на стр. 15 даташита.
Морока в общем.
Проще к готовому проекту типа того, что я вам привел поддержку RS232 прикрутить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 17:22:39 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 607
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3715
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Zorg - народ прав, в том, что ответ на Ваш вопрос присутствут в явном виде в ДШ на сенсор. Именно, внизу на стр. 18 приведен (осциллограммы) пример какие нужно формировать сигналы на выводах SDA и SCL для чтения 2-х байт из сенсора. В проектах на МК для работы с сенсором формируются точно такие-же сигналы, какие Вам нужно будет генерировать через преобразователь USB-I2C. Поэтому посмотреть исходник работающего проекта будет очень полезно. Кстати, не забудьте о необходимости формирования сигналов типа START, STOP, ACK, NACK, которые не сводятся просто к посылке определенных байтов в сенсор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт янв 22, 2013 18:54:16 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 904
Откуда: ВО
Рейтинг сообщения: 0
Я могу проект на asm дать , вдруг он Вам ближе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Ср мар 12, 2014 00:56:36 
Встал на лапы
Аватар пользователя

Карма: 10
Рейтинг сообщений: 47
Зарегистрирован: Ср фев 01, 2012 20:45:47
Сообщений: 128
Откуда: Киров
Рейтинг сообщения: 0
Подскажите у кого есть опыт работы с этим датчиком BMP085(BMP180).

Ниже написанный код неверно выдает показания с датчика завышает примерно на 29 мм.рт.ст.

В чем может быть причина?



Спойлер#define BMP085_R 0xEF // Write address
#define BMP085_W 0xEE // Read address
#define OSS 1 // Oversampling Setting

#include <i2c.h>

signed short ac1;
signed short ac2;
signed short ac3;
signed short b1;
signed short b2;
signed short mb;
signed short mc;
signed short md;
unsigned short ac4;
unsigned short ac5;
unsigned short ac6;


long bmp085Read2Bytes(unsigned char address)
{

unsigned int msb=0;
unsigned int lsb=0;
unsigned int data;



delay_ms(10);

i2c_start(); //посылаем команду "старт" в шину i2c
i2c_write(BMP085_W); //посылаем в шину адрес устройства
i2c_write(address); //посылаем в шину адрес читаемой ячейки
i2c_start(); // снова посылаем "старт" в шину
i2c_write(BMP085_R); //пишем адрес устройства(BMP085) + состояние “чтение”
msb=i2c_read(0); //принимаем данные с лини и сохраняем в переменную
i2c_stop();

delay_ms(10);

i2c_start();
i2c_write(BMP085_W);
i2c_write(address+1);
i2c_start();
i2c_write(BMP085_R);
lsb=i2c_read(0);
i2c_stop();
delay_ms(10);

data = (msb << 8 ) + lsb;

return data;
}

long bmp085Read3Bytes(unsigned char address)
{
unsigned char msb=0;
unsigned char lsb=0;
unsigned char xlsb=0;
long int data;


delay_ms(10);

i2c_start();
i2c_write(BMP085_W);
i2c_write(address);
i2c_start();
i2c_write(BMP085_R);
msb=i2c_read(0);
i2c_stop();
delay_ms(10);


delay_ms(10);

i2c_start();
i2c_write(BMP085_W); // Write required to clock in address
i2c_write(address+1); // Mem address
i2c_start(); // Restart
i2c_write(BMP085_R); // Device address for reading
lsb=i2c_read(0); // Read address
i2c_stop(); // Stop
delay_ms(10);

delay_ms(10);

i2c_start();
i2c_write(BMP085_W);
i2c_write(address+2);
i2c_start(); // Restart
i2c_write(BMP085_R);
xlsb=i2c_read(0);
i2c_stop(); // Stop
delay_ms(10);



data =(( msb<< 16)+ (lsb << 8 ) + xlsb) >> (8-OSS);

return data;
}

void BMP085_Calibration(void)
{

ac1 = bmp085Read2Bytes(0xAA);
ac2 = bmp085Read2Bytes(0xAC);
ac3 = bmp085Read2Bytes(0xAE);
ac4 = bmp085Read2Bytes(0xB0);
ac5 = bmp085Read2Bytes(0xB2);
ac6 = bmp085Read2Bytes(0xB4);
b1 = bmp085Read2Bytes(0xB6);
b2 = bmp085Read2Bytes(0xB8);
mb = bmp085Read2Bytes(0xBA);
mc = bmp085Read2Bytes(0xBC);
md = bmp085Read2Bytes(0xBE);

}



long bmp085ReadTemp(void)
{
i2c_start();

i2c_write(BMP085_W);
i2c_write(0xF4);
i2c_write(0x2E);
delay_ms(10);
i2c_stop();

delay_ms(10);

return bmp085Read2Bytes(0xF6);
}


long bmp085ReadPressure(void)
{
i2c_start();
i2c_write(BMP085_W);
i2c_write(0xF4);
i2c_write(0x34 | (OSS << 6));
i2c_stop();

delay_ms(2 + (3<<OSS));
return bmp085Read3Bytes(0xF6);

}


void bmp085Convert(unsigned long *pressure,long *temperature)
{
long x1, x2, x3, b3, b5 ,b6, ut, up;
unsigned long p,b4, b7;




ut = bmp085ReadTemp();
up = bmp085ReadPressure();

x1 = (((long) ut - (long) ac6) * (long) ac5) >> 15;
x2 = ((long) mc << 11) / (x1 + md);
b5 = x1 + x2;
*temperature = ((b5 + 8 ) >> 4);


b6 = b5 - 4000;
x1 = (b2 * ((b6 * b6) >> 12)) >> 11;
x2 = (ac2 * b6) >> 11;
x3 = x1 +x2;
b3 = (((((long)ac1 )*4 + x3) <<OSS) + 2) >> 2;
x1 = (ac3* b6) >> 13;
x2 = (b1 * ((b6*b6) >> 12) ) >> 16;
x3 = ((x1 + x2) + 2) >> 2;
b4 = (ac4 * (unsigned long) (x3 + 32768)) >> 15;
b7 = ((unsigned long)(up - b3) * (50000>>OSS));
if (b7 < 0x80000000)
p = (b7 << 1) / b4;
else
p = (b7 / b4) << 1;
x1 = (p >> 8 )*(p >> 8 );
x1 = (x1 * 3038) >> 16;
x2 = (-7357 * p) >> 16;
p += (x1 + x2 + 3791) >> 4; //press in Pa
p*=100; //для отображения с десятыми долями на моем устройстве.
*pressure= p / 1333; // press in mm Hg //надо делить на 133.322
}


:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Ср мар 12, 2014 21:29:44 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 81
Зарегистрирован: Вс июл 29, 2012 16:25:39
Сообщений: 312
Рейтинг сообщения: 0
vvsv писал(а):
Ниже написанный код неверно выдает показания с датчика завышает примерно на 29 мм.рт.ст.
Завышение всегда одно и тоже - +29?

vvsv писал(а):
В чем может быть причина?
Уверен в том значении, от которого завышено?
Может быть врет не BMP, а "калибровочный" замеритель?

По коду вроде бы все правильно. Могу только посоветовать вывести все-все сырые значения (калибровочных регистров, сырой замер давления и температуры), посчитать руками и сравнить. Я в своё время так нашёл ошибку со скобками. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Ср мар 12, 2014 22:16:00 
Встал на лапы
Аватар пользователя

Карма: 10
Рейтинг сообщений: 47
Зарегистрирован: Ср фев 01, 2012 20:45:47
Сообщений: 128
Откуда: Киров
Рейтинг сообщения: 0
Спасибо.
Попробую.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Вт мар 25, 2014 21:50:44 
Встал на лапы
Аватар пользователя

Карма: 10
Рейтинг сообщений: 47
Зарегистрирован: Ср фев 01, 2012 20:45:47
Сообщений: 128
Откуда: Киров
Рейтинг сообщения: 1
Нашел где была ошибка. :))
исправил.

Теперь имеется библиотека для работы BMP180 ( BMP085) на CodeVisionAVR
Вложение:
BMP085.c [4.38 KiB]
Скачиваний: 852


Для получения значений давления и температуры вставляем строки:

BMP085_Calibration();
bmp085Convert(&pressure_,&temperature_);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BMP085 не заводится
СообщениеДобавлено: Чт дек 24, 2015 05:57:53 
Грызет канифоль

Карма: 1
Рейтинг сообщений: -3
Зарегистрирован: Ср авг 01, 2012 10:45:42
Сообщений: 261
Рейтинг сообщения: 0
Цитата:
Теперь имеется библиотека для работы BMP180 ( BMP085) на CodeVisionAVR

Прошу прощения за беспокойства, имеется датчик BMP180, хочу сделать метеостанцию, могу писать только CVAVR? подскажите какую библиотеку надо заменить? подскажите начинающему. Заранее спасибо.


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

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


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

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


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

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


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