b00blik

Members
  • Публикации

    46
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О b00blik

  • Звание
    Новенький

Электроника

  • Стаж в электронике
    Не связан с электроникой

Посетители профиля

1 386 просмотров профиля
  1. вы собирали по моей печатной плате ? судя по MAX232 то печатка ваша, можно глянуть? какую прошивку используете? отсутствие заставки и на часовой микросхеме генерации говорит что контроллер не "запустился" в программе идет первым делом : 1 инициализация LCD 2 затем инициализация i2c 3 запуск часовой микросхемы 4 отображение лого обратите внимание на то что на моей схеме в качестве датчика давления Р1 применен модуль BMP180. В модуле уже установлены подтягивающие резисторы номиналом 4.7кОм на шине I2C к +3.3В. Без модуля и подтягивающих резисторов на шине I2C часы DS1307 не запустятся. (хотя лого все равно должно отображаться) фьюзы какие ставили? проверил, у меня на макетной плате контроллер+ экран+ кварц 16МГц+конденсаторы С9 и С10 и резистор R4 на reset - макетка запускается, на экране: лого 2 сек затем надпись No allarms где-то пол сек затем отображается меню где-то 1 сек затем сам переходит в пункт меню Clock setting и в пункте Date непрерывно перемещает курсор
  2. не запустилась вообще? экран светится? надписи на экране есть?
  3. Настройка соединения GPRS в SIM800L

    нашел, вот если кому пригодится: Инициализация AT+CPIN? // Проверка готовности SIM-карты; +CPIN: READY OK AT+CSQ // Уровень сигнала RSSI=18 ед., удовлетворительный уровень; +CSQ: 18,0 OK AT+CREG? // Проверка наличия регистрации сети GSM; +CREG: 0,1 OK AT+CGATT? // Проверка доступа к услугам пакетнойпередачи данных; +CGATT: 1 OK AT+CIPMODE=0 // Командный режим передачи данных; OK AT+CIPMUX=0 // Моносокет; OK Настройка контекста и открытие соединения AT+CIPSTATUS OK STATE: IP INITIAL AT+CSTT=»internet» // Настройка точки доступа; OK AT+CIPSTATUS OK STATE: IP START AT+CIICR // Активация контекста; OK AT+CIPSTATUS OK STATE: IP GPRSACT AT+CIFSR 100.86.15.224 AT+CIPSTATUS OK STATE: IP STATUS AT+CIPSTART=»TCP»,»81.95.20.18»,8888 // Открытиесоединения с удаленным сервером; OK CONNECT OK // Сообщение об успешном открытиисоединения; AT+CIPSTATUS OK STATE: CONNECT OK Передача данных с подтверждением в командном режиме AT+CIPSEND? // Проверяем максимальный размерданных, которые можно послать в сторону удаленнойстороны. Этот размер зависит от сети; +CIPSEND: 1460 OK AT+CIPQSEND? // Нормальный режим передачи данных.При этом режиме каждая порция высланных данных подтверждается сообщением “SEND OK”, что означает, чтосервер данные принял и подтвердил их получение; +CIPQSEND: 0 OK AT+CIPSEND=100 // Передача 100 байт данных; > // Приглашение; hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello // Размер данных не должен быть больше1460 байт; SEND OK // Данные успешно переданы; AT+CIPSEND // Передача данных произвольного размера; > hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello // Размер данныхне должен быть больше 1460 байт и в конце блока данныхследует байт 0x1A; SEND OK Быстрая передача данных в командном режиме AT+CIPQSEND=1 // Режим быстрой передачи данных. Этот режим подразумевает передачу данных без ожидания от сервера подтверждения о получении; OK AT+CIPSEND=100 // Передача 100 байт данных; > hellohellohellohellohellohellohellohellohellohellohellohellohe llohellohellohellohellohellohellohello DATA ACCEPT:100 // Модуль принял данные в свой буфер и вышлет их в сторону сервера в фоновом режиме; AT+CIPACK // Проверка: 300 байт передано на сервер из них 300 байт сервером приняты и подтверждены; +CIPACK: 300,300,0 OK AT+CIPSEND // Передача данных произвольного раз- мера происходит аналогичным образом; > hellohellohellohellohellohellohellohellohellohellohellohellohe llohellohellohellohellohellohellohello DATA ACCEPT:100 AT+CIPACK +CIPACK: 400,400,0 OK AT+CIPQSEND=0 // Нормальный режим передачи данных; OK Прием данных в командном режиме, автоматический вывод принятых данных AT // Модуль находится в командном режиме; OK AT OK HelloHelloHelloHelloHelloHelloHelloHelloHelloHello // Данные, принятые от сервера выводятся из порта UART модуля SIM5300EA автоматически. Данные выводятся «как есть» и это неудобно, поэтому будут полезны следующие настройки; AT OK AT+CIPHEAD=1 // Перед блоком данных, принятых от сервера добавлять заголовок формата +IPD,<длина блока данных>; OK AT+CIPSRIP=1 // При приеме данных показы- вать уведомление в виде RECV FROM:<IP адрес отправителя>,<порт>; OK AT+CIPSHOWTP=1 // Показывать тип протокола в уведомлении +IPD,<длина блока данных>,<тип протокола>; OK RECV FROM:81.95.20.18:8888 // Блок принятых данных, обрамленных уведомлением и заголовком с указанием типа протокола TCP и длиной 50 байт; +IPD,50,TCP:HelloHelloHelloHelloHelloHelloHelloHelloHell oHello Прием данных в командном режиме, ручной вывод принятых данных Для смены способа вывода данных требуется разорвать соединение и деактивировать контекст. AT+CIPCLOSE // Закрытие соединения; CLOSE OK AT+CIPSTATUS OK STATE: TCP CLOSED AT+CIPSHUT // Деактивация контекста; SHUT OK AT+CIPRXGET? +CIPRXGET: 0 // Автоматический вывод принятых данных; OK AT+CIPRXGET=1 // Настройка ручного вывода данных; OK AT+CSTT OK AT+CIICR OK AT+CIFSR 100.116.1.79 AT+CIPSTART=»TCP»,»81.95.20.18»,8888 OK CONNECT OK AT OK AT OK +CIPRXGET: 1,»81.95.20.18:8888» // Уведомление о приеме данных от сервера; AT OK AT+CIPRXGET=4 // Уточнение размера принятых данных; +CIPRXGET: 4,100 // Пришло 100 байт данных; OK AT+CIPRXGET=2,20 // Вывести 20 байт в порт UART; +CIPRXGET: 2,20,80,»81.95.20.18:8888» // В буфере модуля осталось 80 байт; HelloHelloHelloHello // Запрошенные 20 байт данных; OK AT+CIPRXGET=2,20 // Вывести 20 байт в порт UART; +CIPRXGET: 2,20,60,»81.95.20.18:8888» // В буфере модуля осталось 60 байт; HelloHelloHelloHello // Запрошенные 20 байт данных; OK AT+CIPRXGET=2,60 // Вывести 60 байт в порт UART +CIPRXGET: 2,60,0,»81.95.20.18:8888» // Приемный буфер модуля пуст; HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello // Запрошенные 60 байт данных; OK AT+CIPRXGET=4 // Проверка наличия данных в буфере модуля; +CIPRXGET: 4,0 // Буфер пуст OK Обмен данными с сервером в прозрачном режиме Для смены режима передачи данных требуется разорвать соединение и деактивировать контекст. AT+CIPCLOSE CLOSE OK AT+CIPSHUT SHUT OK AT+IFC=2,2 // Аппаратный контроль потока должен быть включен, чтобы избежать потери данных; OK AT+CIPMODE=1 // Прозрачный режим передачи данных OK AT+CIICR OK AT+CIFSR 100.71.67.196 AT+CIPSTART=»TCP»,»81.95.20.18»,8888 OK CONNECT // Соединение установлено; HelloHelloHelloHelloHelloHelloHelloHelloHelloHello // /Передача данных на сервер как есть; HelloHelloHelloHelloHelloHelloHelloHelloHelloHello // Прием данных от сервера как есть; AT // АТ команды будут неотвеченными и будут восприняты как данные для отсылки; AT +++ // Эта escape-последовательность переведет модуль в режим АТ команд, но при этом контекст и соединение сохраняются активными; OK // В этом месте можно обработать входящие СМС, отменить входящий голосовой вызов и проч.; AT OK AT OK AT OK ATO // Команда ATO возвращает модуль в режим пере- дачи данных; CONNECT HelloHelloHelloHelloHelloHelloHelloHelloHelloHello HelloHelloHelloHelloHelloHelloHelloHelloHelloHello CLOSED // Это сообщение говорит о том, что удален- ная сторона закрыла сокет. Теперь встроенный стек TCP/IP нужно перевести в исходное состояние; AT+CIPSTATUS OK STATE: TCP CLOSED AT+CIPSHUT SHUT OK AT+CIPSTATUS OK STATE: IP INITIAL // Стек в исходном состоянии.
  4. Доброго времени суток! вот ковыряю я ардуиновский модуль CSM/GPRS SIM800L. Пытаюсь собрать устройство которое имеет модуль CSM/GPRS SIM800L, порт RS485 (для опроса датчиков) и USB (для настройка девайса) + Мега 328 Хочу организовать опрос датчиков удаленно: на ПК стоит CSM/GPRS модем устанавливаю соединение с GPRS на ПК ( оператор МТС, APN - internet, звоню на номер *99#) Запускаю программулину TIBBO , создаю виртуальный ком порт, указываю IPадрес:порт моего девайса и работаю со своим удаленным устройством по GPRS как с простым ком портом. вот теперь задача: надо ввести мой девайс в прозрачный режим передачи данных по GPRS, тоесть пересылать данные с SIM800L(0й -USART Меги 328) в 1й USART Меги 328 ( в данном случае порт RS48) и потом с порта опять в SIM800L, если подключен 2й USARт (USB ) пересылать данные с SIM800L в 2й USARт и обратно. девайс, я так понял что, должен работать в режиме сервера (SIM карта с выделенным IP есть) с меги посылаю модулю >AT <OK AT+CPIN=0000 <OK AT+COPS? <+COPS:1 AT+CREG? < +CREG: 0, 1 AT+CGATT? <+CGATT: 1 — состояние регистрации в GPRS сети А вот дальше я завис... --------------1 вариант-------------- даю AT+CGDCONT=1,"IP","inetnet" <OK AT+CGACT=1,1 <OK AT+CGDATA=1 <CONNECT и мне с SIM800L в USART меги начанает сыпать мусор пакет длинной ~ 20 символов 1 раз в секунду, помогает только RESET ------------2й вариант------------ даю AT+CGDCONT=1,"IP","inetnet" <OK AT+CGACT=1,1 <OK ATD*99***1#; и мне с SIM800L в USART меги начанает сыпать мусор пакет длинной ~ 20 символов 1 раз в секунду, помогает только RESET ----------3й вариант---------------- даю >AT+CIPSHUT -сброс всех tcp/ip соединений < SHUT OK AT+CIPSTATUS < STATE: IP INITIAL AT+CIPMUX=0 настраиваем соединение только с одним каналом <OK AT+CSTT= "internet", "", "" <OK AT+CIICR - пытаемся установить GPRS соединение жду <OK AT+CIFSR < 100.85.76.xxx AT+CIPSERVER=1, 2001 - запускаем сервер с TCP портом 2001 тут я с ПК даже пингую свой ip, соединяюсь, даже принимаю данные. но в таком режиме не все байты пропускает, есть коммандные байты, которые "сьедаются", например байт 0х1А модуль принимает как конец посылки как только ПК соединяется то я получаю <+REMOTE IP: 100.78.14.ххх затем получаю пакет, а вот как отправить я не знаю ----------4й вариант ---------------------- AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","internet" OK AT+SAPBR=1,1 OK модуль SIM800 уходит в GPRS подключение, "лампочка" быстро мигает, но я его не могу пропинговать, я не вижу его в сети и как передать данные? и 5й вариант нашел 1: Прикрепите к сервису GPRS «AT + CGATT = 1» 2: Подождите, присоедините OK и установите контекст 0 как FGCNT "AT + QIFGCNT = 0" 3: Ожидание контекста ОК и Установка типа носителя как GPRS, APN, имя пользователя и пароль «AT + QICSGP = 1 ...» 4: Подождите OK и активируйте функцию MUXIP «AT + QIMUX = 1» 5: Подождите, пока отключите MUXIP OK и установите режим сеанса как непрозрачный «AT + QIMODE = 0» 6: Дождитесь режима сеанса OK и Включить уведомление, когда полученные данные «AT + QINDI = 1» 8: Подождите доменное имя ОК и зарегистрируйте стек TCP / IP «AT + QIREGAPP» 9: Подождите, чтобы зарегистрировать OK и активировать FGCNT "AT + QIACT" 10: Подождите, чтобы активировать OK кто работал с GPRS ? колитесь! какие тут мантры надо читать? чем этот модуль надо обкуривать? и какой тряпочкой протирать? как правильно создать GPRS соединение чтобы "удлинить" ком порт по GPRS и передавать по нему данные/ как это делают модемы типа iRZ ATM2 или MС52iT
  5. Все настройки хранятся EEPROM. При пропадании питания часы продолжают считать, т.к. реализованы на микросхеме часов реального времени DS1307, которая ,при отсутствии питания, работает от батарейки 3 вольта В1 на схеме Секунды берутся с DS1307, контроллер по таймеру Timer1 раз в секунду опрашивает микросхему DS1307
  6. Вот схема в протеусе8,5 SP1 (сильно не пинать, накидал на скорую руку) Правда у меня протеус глючит не подтески Proteus.rar
  7. прошивка на английском. Гдето могут быть незначительные ошибки в позиционоровании курсора если надо изменить какие либо надписи то пишите, на какие, главное соблюдать кол-во символов. час6.pdf - 3D модель платы, можно покрутить, повертеть, посмотреть что получится, открывать с помощью Adobe Reader( перед открытием сохранить на диск), браузер откроет чистый лист METEO1.zip
  8. @Владимир Овчинников могу сделать прошивку и для LCD на латинице. а для DHT22, надо подумать...
  9. @BEST-83154 в исходник надо привести к читабельному виду. Исходник на BascomAVR @SP634 попробую экспортировать пп в SPL
  10. прошивка+ схема+ программа, почему то на сайте не отображается прошивка, сейчас подредактирую статью Cloc.~(26).PcbDoc.Zip прошивка.zip схема+плата.zip тест.zip
  11. Atmega2560 и снова DS1307

    думал микросхема "китайская", поменял... глюк остался
  12. Помогите разобраться с измерением переменного тока. HELP

    как-то так подбор &nbsp;резистора
  13. Atmega2560 и снова DS1307

    приветствую, у меня тоже проблемка с часами ds1307 на одной шине i2c висят часы и 24LC64 , подтяжка 4,7к на +5 есть на SCL и SDA но SQW/OUT некуда не подключена, батарейка есть в протеусе все работает замечательно при сборке на плате часы работают через раз включаю: часы идут, 24LC64 - читается выключаю питание и через 2-3 сек включаю 24LC64 - читается всегда , а вот часы либо читаются нормально и работают пока я не отключу питание , либо начинают выдавать 165 165 165... и все, помогает только перезапуск по питанию вот кусок кода $map $regfile = "m2560def.dat" $crystal = 8000000 $hwstack = 128 $swstack = 128 $framesize = 128 $lib "I2C_TWI.LBX" $lib "modbus.lbx" '=============================================================================== ' Н А С Т Р О Й К А I2C '=============================================================================== Config Scl = Portd.0 ' I2c Scl Config Sda = Portd.1 ' I2c Sda Config Twi = 100000 I2cinit '=============================================================================== ' Н А С Т Р О Й К А USART_0 '=============================================================================== Const Usart_0_const_baud = 9600 ' Скорость трансляции USART_0 Const Usart_0_const_size_buffer = 32 ' Размер буферов приёма и передачи, USART_0 Config Com1 = Usart_0_const_baud, Synchrone = 0, Parity = None, Stopbits = 1, Databits = 8, Clockpol = 0 Config Serialin = Buffered, Size = 32, Bytematch = All On Utxc Usart_0_finish_output ' Переход на подпрограмму обработки прерывания после окончания передачи данных по USART Dim Usart_0_flag_data_input As Byte ' Флаг сигнализирующий о том, что приняты ноые данные по USART_0 Config Portd.4 = Output Enable_rx Alias Portd.4 'разрешение на прием в двух проводке Enable_rx = 0 '=============================================================================== ' Н А С Т Р О Й К А USART_3 '=============================================================================== Const Usart_3_const_baud = 9600 ' Скорость трансляции USART_3 Const Usart_3_const_size_buffer = 32 ' Размер буферов приёма и передачи, USART_3 Config Com4 = Usart_3_const_baud, Synchrone = 0, Parity = None, Stopbits = 1, Databits = 8, Clockpol = 0 Config Serialin3 = Buffered, Size = 32, Bytematch = All Open "Com4:" For Binary As #3 Dim Load_timer As Byte Load_timer = &H6C Config Timer0 = Timer, Prescale = 256 'организация задержки отключения разрешения передачи, при передаче на порт 485 '4000000 0,065536 сек (15,25878906 в 1 секунду) 8000000 0,032768 30,51757813 Load Timer0, Load_timer On Timer0 Modbus_timers Config Timer2 = Timer, Prescale = 256 'организация задержки отключения разрешения передачи, при передаче на порт COM '4000000 0,065536 сек (15,25878906 в 1 секунду) 8000000 0,032768 30,51757813 Load Timer2, Load_timer On Timer2 Com_timers '======----------------------------------- Watchdog Dim Wdbit As Byte Dim Bwd As Byte Bwd = Peek(0) ' read the wd flag If Bwd.wdrf = 1 Then ' there was a WD overflow Wdbit = 1 'store the flag End If Config Watchdog = 2048 Stop Watchdog Config Portj.0 = Input Config Portj.1 = Output Output_rx1 Alias Portj.0 Output_tx1 Alias Portj.1 Dim N_byte As Byte Set Output_rx1 Dim Год As Byte Dim Часы As Byte Dim Месяц As Byte Dim Минуты As Byte Dim Секунды As Byte Dim День_недели As Byte Dim Число_месяца As Byte 'Dim Флаг_опросить_ds1307 As Byte Const Запись_ds1307 = &HD0 ' Адрес записи в ОЗУ Ds1307 Const Чтение_ds1307 = &HD1 ' Адрес чтения из ОЗУ Ds1307 Const Const_год = 6 ' Регистр год Ds1307 Const Const_часы = 2 ' Регистр часы Ds1307 Const Const_месяц = 5 ' Регистр месяц Ds1307 Const Const_минуты = 1 ' Регистр минуты Ds1307 Const Const_секунды = 0 ' Регистр секунды Ds1307 Const Const_день_недели = 3 ' Регистр день_недели Ds1307 Const Const_число_месяца = 4 ' Регистр число_месяца Ds1307 Const Const_настройка_ds1307 = 7 ' Регистр для настройки Ds1307 Const Const_stop_часы = &B10000000 ' Значение константы для остановки часов Const Const_start_часы = &B00000000 ' Значение константы для запуска часов Const Const_разрешение_sout_ds1307 = &H0 '$H90 Значение константы для старта секундных импульсов Dim Табло_адрес As Byte '=============================================================================== ' И С П О Л Ь З У Е М Ы Е П О Д П Р О Г Р А М М Ы '=============================================================================== Declare Sub Запись_i2c(byval Адрес_чипа_запись As Byte , Byval Регистр_чипа As Byte , Byval Записываемая_переменная As Byte) Declare Sub Чтение_i2c(byval Адрес_чипа_чтение As Byte , Byval Адрес_чипа_запись As Byte , Byval Регистр_чипа As Byte , Считанная_переменная As Byte) Запись_i2c Запись_ds1307, Const_настройка_ds1307, Const_разрешение_sout_ds1307 Sendtime = 0 'Секунды = Read_ds1307(const_секунды) I2cstart I2cwbyte &HD0 I2cwbyte &H0 I2cstart I2cwbyte &HD1 I2crbyte Секунды, Ack I2crbyte Минуты, Ack I2crbyte Часы, Ack I2crbyte День_недели, Ack I2crbyte Число_месяца, Ack I2crbyte Месяц, Ack I2crbyte Год, Nack I2cstop 'Читаем данные нулевого регистра Ds1307, если 7 бит равен 1, значит часы стоят 'Если часы стояли, запускаем If Секунды.7 = 1 Then 'Запускаем часы Запись_i2c Запись_ds1307, Const_настройка_ds1307, Const_разрешение_sout_ds1307 Секунды = 10 Минуты = 10 Часы = 10 День_недели = 1 Число_месяца = 1 Месяц = 1 Год = 17 Год = Makebcd(Год) ' Год Часы = Makebcd(часы) ' Часы Месяц = Makebcd(Месяц) ' Месяц Минуты = Makebcd(Минуты) ' Минуты Секунды = Makebcd(Секунды) ' Секунды День_недели = Makebcd(День_недели) ' День недели Число_месяца = Makebcd(число_месяца) ' Число Call Запись_i2c(Запись_ds1307, Const_год, Год) Call Запись_i2c(Запись_ds1307, Const_часы, Часы) Call Запись_i2c(Запись_ds1307, Const_месяц, Месяц) Call Запись_i2c(Запись_ds1307, Const_минуты, Минуты) Call Запись_i2c(Запись_ds1307, Const_секунды, Секунды) Call Запись_i2c(Запись_ds1307, Const_день_недели, День_недели) Call Запись_i2c(Запись_ds1307, Const_число_месяца, Число_месяца) End If Flagerror = 0 Waitms 100 Set Led_1 For I = 1 To 48 Call Read_lc24xxxпок(I) Next .. '=============================================================================== Sub Запись_i2c(ByVal Адрес_чипа_запись As Byte, ByVal Регистр_чипа As Byte, ByVal Записываемая_переменная As Byte) '------------------------------------------------------------------------------- I2cstart ' Подготовка к работа шины I2c I2cwbyte Адрес_чипа_запись ' Адресное обращение к используемому чипу i2c, для записи I2cwbyte Регистр_чипа ' Адрес регистра, в который будет производиться запись I2cwbyte Записываемая_переменная ' Записываемая переменная I2cstop ' Освобождаем шину I2c '------------------------------------------------------------------------------- Waitms 10 End Sub '===============================================================================
  14. Proteus - Вопросы И Ответы

    Все, вопрос решен