Например TDA7294

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





Текущее время: Вт апр 16, 2024 19:58:08

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


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



Начать новую тему Ответить на тему  [ Сообщений: 86 ]    , , , , 5
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Ср дек 05, 2012 20:19:32 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
FreshMan писал(а):
Apparatchik писал(а):
но таймер не перестает быть аппаратным!
но ведь таймер не юзает всякие сишные файлы, он не использует функции типа старт, стоп....., мы его рас сконфигурировали и он ПАШЕТ :))

Не юзает, потому что ты неписал, а мож у меня юзает.

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Ср дек 05, 2012 20:21:20 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
вопрос снят.
спасибо Apparatchikу! :beer:
побольше бы на форуме таких !

_________________
Tell Me The Truth


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Сб дек 08, 2012 23:41:12 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
вот очень ТОЛКОВО изложена статья по I2C http://www.radiohlam.ru/teory/I2C.htm
доступно, понятно и что самое главное, на первом этапе понимания, без лишней конкретики
советую новичкам :tea:

_________________
Tell Me The Truth


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт мар 13, 2018 13:15:46 
Прорезались зубы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 16
Зарегистрирован: Пт июл 15, 2011 03:08:49
Сообщений: 228
Откуда: Украина
Рейтинг сообщения: 0
Здравствуйте! Нашел эту тему, чтоб не создавать новую. Нужно подружить аппаратный I2С микроконтроллера PIC18F2320 и DS1307 на асме. Код для инициализации и работы с I2С был взят из апноута Микрочипа (сейчас не помню из какого). Код и подпрограммы работы с I2С рабочие, уже собрано несколько устройств с датчиками BMP180 (тоже "вредина" та еще. Очень критична к частоте шины). А вот заставить работать DS1307 пока не могу. Где-то на этапе инициализации возникает какой-то цикл (постоянно идет обмен между контроллером и микросхемой) и дальнейший код не исполняется. Что характерно, на выводе SQW DS1307 появляется нужная мне частота 32768 Гц.... и дальше все зависает. Собрал проект в Протеусе (версия 8.6) - все работает... Что не так? Часть кода - под спойлером.

Спойлер
Код:
;=========================
; Частота генератора - 4 МГц, внутренний RC
;==============
; DEFINITIONS
;==============

#include p18f2320.inc                ; Include register definition file

;----------
; Конфигурирование.
;----------
CONFIG     MCLRE = ON   ; MCLR pin enabled, RE3 input pin disabled
;CONFIG   DEBUG = OFF   ; Disabled
CONFIG    WDT = OFF         ; WDT disabled (control is placed on the SWDTEN bit)
CONFIG     PBAD = DIG       ; PORTB<4:0> pins are configured as digital I/O on Reset
CONFIG      LVP=OFF       ; Single-Supply ICSP disabled
CONFIG      BOR = ON          ; Brown-out Reset enabled
CONFIG   BORV = 27        ; VBOR set to 2.7V
CONFIG   PWRT = ON         ; PWRT enabled
CONFIG    OSC = INTIO1    ; Internal oscillator block, CLKO function on RA6, port function on RA7
CONFIG   FSCM = OFF       ; Fail-Safe Clock Monitor disabled
.......
;=========================
; CODE SEGMENT
;=========================
;----------
;   инициализация процессора
;----------
Start
        clrf      PORTA
   MOVLW    b'00001111' ;
   MOVWF    ADCON1       ; Порт А - цифровой
   movlw   b'00100000'   ; RA5 - на ввод, остальные на вывод   
   movwf   TRISA      ;
   movlw   b'00000001'   ; RB7-RB1 - на вывод, RB0 - на ввод
        movwf   TRISB
   clrf      PORTC
   movlw   b'11011101'   ; RC5 RC1 - на вывод, остальные - ввод
        movwf   TRISC
        bcf         INTCON2,7      ; Включение подтягивающих резисторов порта В.
   bsf         INTCON, INT0IE   ; Прерывание от INT0 (RB0)
   bsf      INTCON2, INTEDG0 ; по нарастанию
   bsf      INTCON, GIEL   ; Прерывание от периферии
   bsf      OSCCON, 6   ; Переключение на работу
   bsf      OSCCON, 5   ; на частоте 4 МГц
   ;bsf      OSCCON, 4
   ;bsf      OSCTUNE, 1   ; С помощью осццилографа или частотометра подстроить
   bsf      OSCTUNE, 0   ; частоту на RA6 до значения 1 МГц.
   bsf      OSCTUNE, 2   

;---------- ШИМ-------------------------------------------------
   movlw   .82         ; Период ШИМ 328 мкс (3045 Гц)
   movwf   PR2
   movlw   .41         ; Рабочий цикл ШИМ 50% (164 мкс = 0010100100
   movwf   CCPR2L      ; 00101001 = 41 в CCPR2L
   bcf      CCP2CON, 4   ; 00 - в битах 4, 5 CCP2CON
   bcf      CCP2CON, 5
   movlw   b'00000101'   ; Запускаем TMR2
   movwf   T2CON
   bsf      CCP2CON, 2   ; Запускаем модуль CCP2 для формирования
      bsf         CCP2CON, 3   ; частоты 3045 Гц для питания нити накала индикатора
;----------
; ИНИЦИАЛИЗАЦИЯ интерфейса І2С
;----------
   clrf    SSPSTAT
   bsf    SSPSTAT,SMP ; Управление длительностью фронта выключено,
                                     ; т.к. выбрана стандартная скорость(100 Кгц.).\
   movlw   .9            ; Установка стандартной скорости обмена:
        movwf   SSPADD        ; Fosc/{4*(SSPAdd+1)}=4МГц/40=100Кгц.
        movlw   b'00101000' ; Включение модуля MSSP (SSPEN=1),
        movwf   SSPCON1       ; в режиме I2C-ведущего (SSPM3..SSPM0=1000).
   clrf    SSPCON2       ; Clear control bits
   bcf    PIR1,SSPIF    ; Clear SSP interrupt flag
   bcf     PIR2,BCLIF    ; Clear Bit Collision flag
;=========
; ИНИЦИАЛИЗАЦИЯ DS1307
;=========
   call        START       ; Начало формирования условия "START".
   movlw   b'11010000' ; Передача режимного байта:
        call        WR_I2C      ; 1101000 - адрес DS1307, 0 - режим записи.
   movlw   0x07       ; адрес управляющего регистра
        call        WR_I2C
   movlw   b'00010011'   ; включаем выход частоты 32768 Гц на SOUT
   call        WR_I2C
   call        STOP        ; Начало формирования условия "STOP".

   call        START       ; Начало формирования условия "START".
   movlw   b'11010000' ; Передача режимного байта:
        call        WR_I2C      ; 1101000 - адрес DS1307, 0 - режим записи.
   movlw    0x00       ; адрес регистра секунд
        call        WR_I2C
   movlw    0x00      ; пуск часов
   call        WR_I2C
   call        STOP        ; Начало формирования условия "STOP".
; Где-то здесь зацикливается, потому что весь дальнейшей код не исполняется....
......
;----------
; БЛОК ПОДПРОГРАММ
;----------
;=========================
; ПП передачи байта по I2C и анализа отклика ведомого.
;=========================
WR_I2C           
        bcf     PIR1,SSPIF    ; Сброс флага перерываний от модуля MSSP.
   movwf    SSPBUF    ; Загрузка буфера байтом любой функциональности
               ; (начало передачи текущего байта).
Zhd1     btfss     PIR1,SSPIF    ; Передача текущего байта завершена или нет?
            bra   Zhd1         ; Если нет, то ожидание.
               ; Если завершено, то программа исполняется далее.
; Анализ отклика ведомого.
   btfsc    SSPCON2,ACKSTAT; Подтверждение от ведомого (ACK)принято или нет?
   bra      WR_I2C      ; Если нет, то повтор передачи текущего байта.
            ; Если есть, то возврат по стеку. 
    return                 
;=========================
; ПП формирования условия "START" I2C.
;=========================
START     
    bcf   PIR1,SSPIF    ; Сброс флага перерываний от модуля MSSP.
    bsf    SSPCON2,SEN   ; Начало формирования условия "START".
Zhd2    btfss  PIR1,SSPIF    ; Формирование условия "START" завершено?
            bra   Zhd2          ; Если нет, то ожидание.
               ; Если завершено, то программа исполняется далее.
            return               ; Возврат по стеку.
;=========================
; ПП формирования условия "RESTART" I2C.
;=========================
RESTART     bcf   PIR1,SSPIF ; Сброс флага перерываний от модуля MSSP.
            bsf   SSPCON2,RSEN ; Начало формирования условия "RESTART".
Y2        btfss    PIR1,SSPIF ; Формирование условия "RESTART" завершено?
            bra      Y2          ; Если нет, то ожидание.
               ; Если завершено, то программа исполняется далее.
            return               ; Возврат по стеку.
;=========================
; ПП формирования условия "STOP" I2C.
;=========================
STOP     bcf   PIR1,SSPIF    ; Сброс флага перерываний от модуля MSSP.
            bsf   SSPCON2,PEN ; Начало формирования условия "STOP".
Zhd3     btfss   PIR1,SSPIF    ; Формирование условия "STOP" завершено?
            bra     Zhd3      ; Если нет, то ожидание.
                                   ; Если завершено, то программа исполняется далее.
            return              ; Возврат по стеку.
;=========================
; ПП приема байта по I2C.
;=========================
RD2_I2C
   bcf     PIR1,SSPIF     ; Сброс флага перерываний от модуля MSSP.
   bsf    SSPCON2,RCEN ; Разрешение приема текущего байта от BMP180.
bs1   btfss    PIR1,SSPIF     ; Прием текущего байта завершен или нет?
   bra    bs1            ; Если нет, то ожидание.
            ; Если завершен, то принятый байт аппаратно копируется в SSPBuf
            ; и программа исполняется далее.
   movf     SSPBUF, w ; Копирование принятого байта из SSPBuf в BytTemp.
   movwf   BytTemp
;----------
; Формирование отклика ведущего.
;----------
   bcf       PIR1,SSPIF     ; Сброс флага перерываний от модуля MSSP.
   bsf      SSPCON2,ACKEN    ; Формирование подтверждения (АСК) принятого байта.
bs2   btfss     PIR1,SSPIF     ; 9-й импульс закончился или нет?
   bra      bs2                            ; Если нет, то ожидание.
               ; Если закончился, то программа исполняется далее.
   return

_________________
Живу в стране 404


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вс мар 18, 2018 06:37:48 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7854
Рейтинг сообщения: 0
На какой частоте запустил вм180 ?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вс мар 18, 2018 12:51:04 
Прорезались зубы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 16
Зарегистрирован: Пт июл 15, 2011 03:08:49
Сообщений: 228
Откуда: Украина
Рейтинг сообщения: 0
На стандартной - 100 кГц. Если меньше - шлет "бред сумасшедшего", больше - не пробовал

_________________
Живу в стране 404


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

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


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

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


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

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


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