реклама на сайте
подробности

 
 
> Странное поведение DS1302
Pepper
сообщение Dec 21 2007, 10:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 21-12-07
Из: г.Астрахань
Пользователь №: 33 511



Прикупил RTC DS1302. хочу подключить ее к МК AVR. использую Attiny2313. подключил 4 7-ми сигментных индикатора и хочу отображать время в режиме ЧЧ:ММ
пишу на ASM`е. написал программную реализацию протокола... и вот тут у меня начались приколы: к примеру, записал в регистр секунд значение 0! и в вечном цикле опрашиваю RTC и вывожу значение секунд на индикатор. на индикаторе идут секунды, все хорошо, но!!! если значение секунд четное то на индикаторе появлятются 00!!! если не четные, то все нормально...
проверял - это касается не только секунд, но и всего остального
пробовал даже записывать данные в RAM - та же история: в ячейку RAM пишу 0х55 - читается как 0х55, записываю в эту же ячейку 0хАА - читается как 0х00! sad.gif
может быть кто нить сталкивался с такой проблемой?
Прощу прощения у модераторов за размещение темы не в нужном месте smile.gif внимания сразу не обратил, а как перенести не нашел smile.gif

Сообщение отредактировал Pepper - Dec 21 2007, 10:37
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adc
сообщение Dec 27 2007, 08:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



В начале программы хорошо бы сделать инициализацию ds1303. А именно установку в "0" 7-го бита "CH" (CLOCK HALT FLAG) и "WP"(WRITE-PROTECT BIT)в "0".
Попробуйте изменить кусок кода чтения байта из мс. У Вас получается после прохождения цикла лишний такт (восьмой) а по даташиту их получается семь т.к. установка по по спадающему фронту. ну к примеру так:
Код

...
// Передача адреса закончена, переходим к приему данных
    rcall PortToIn    // Переводим порт на вход
    DelayUs 10        // Задержка

    ldi r18, 7        // Инициализация счетчика бит
    clr r17        // Очищаем регистр выходных данных
    DelayUs 10
    sbis PIND, IO    // Проверяем бит на входе
    rjmp dr_l4        // переход, если = 0
    ori r17, 0x80    // Если 1, то устанавливаем 1 в старший разряд выходного регистра
dr_l4:
    DelayUs 10  
    sbi PORTD, CLK    // сформировать нарастающий фронт CLK
    DelayUs 10        // подержать 10 мкс
    cbi PORTD, CLK    // сформировать стадающий фронт CLK
    DelayUs 10        // подержать 10 мкс    
     lsr r17        // Сдвигаем вправо на 1 бит
    sbis PIND, IO    // Проверяем бит на входе
    rjmp dr_l5        // переход, если = 0
    ori r17, 0x80    // Если 1, то устанавливаем 1 в старший разряд выходного регистра
dr_l5:
    dec r18        // уменьшить счетчик бит на 1
    brne dr_l4        // Если переданы не все 8, то переход
   // Адрес и данные переданы, завершаем сеанс
.....


Сообщение отредактировал adc - Dec 27 2007, 09:28


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
Pepper
сообщение Dec 27 2007, 11:30
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 21-12-07
Из: г.Астрахань
Пользователь №: 33 511



у меня стоит начальная инициализация:
Код
// Сбросить защиту от записи
    ldi r16, 0x8E
    ldi r17, 0x00
    rcall DataWrite

и CH сбрасывается при установке секунд
Код
// Установить секунды
    ldi r16, 0x80
    ldi r17, 0x00
    rcall DataWrite


код переписал с учетом ваших рекомендаций - стало еще хуже...
на экране откуда-то взялось число 57, причем оно меняется на 12, и 25. закономерность не пойму.
откоментировал код инициализации, там выставлено время 12:30. записываю его в МК - тот же результат, 57, 12, 25...
попробовал переделать на 3,3 В, не помогло... в общем ясно, что это глюк RTC нужно покупать новую

разобрался в чем дело!!!!!!!! yeah.gif
подключаю основное питание, запскаю контроллер, он инициализирует RTC. на экране чёрти чё...
отключаю основное питание. батарейка на месте, и на экране и четные значения, и идут и все как
положено... в общем это, я так понимаю, все таки RTC бракованная походу

блин, вот гемор... не думал, что могут возникнуть такие проблемы... smile.gif
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 27 2007, 11:32
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(Pepper @ Dec 27 2007, 13:59) *
разобрался в чем дело!!!!!!!! yeah.gif


Странно?! такое разве может быть?.. т.е. стабильное питание необходимо для мс RTS?
Если после изменения кода произошли изменения в отображении, значит всетаки глюки в программе есть..это факт. Надо копать глубже! 12 это "1100", а 25 -"11001".. очень похоже на интерфейсные дела.. с чтением. Увеличивайте везде задержки, для чистоты эксперимента!
зы: на счет другой мс я использовал DS1307.

Сообщение отредактировал adc - Dec 27 2007, 11:43


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
Pepper
сообщение Dec 27 2007, 11:59
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 21-12-07
Из: г.Астрахань
Пользователь №: 33 511



Цитата(adc @ Dec 27 2007, 14:32) *
Странно?! такое разве может быть?.. т.е. стабильное питание необходимо для мс RTS?
Если после изменения кода произошли изменения в отображении, значит всетаки глюки в программе есть..это факт. Надо копать глубже! 12 это "1100", а 25 -"11001".. очень похоже на интерфейсные дела.. с чтением. Увеличивайте везде задержки, для чистоты эксперимента!
зы: на счет другой мс я использовал DS1307.

забыл уточнить: эти цифры появлялись на 2 версиях кода процедуры чтения. вашем и поем... т.е. дело не в нем...
я решил взять DS3234 - у нее кварц интегрянный, и есть датчик температуры для компенсации ухода часов... стоит 140 рублей... а эту я брал за 90...
в общем спасибо за помощь, думаю тему можно закрывать smile.gif
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 27 2007, 13:14
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(Pepper @ Dec 27 2007, 14:59) *
в общем спасибо за помощь, думаю тему можно закрывать smile.gif

beer.gif закрывайте... biggrin.gif
зы:Жаль что не выяснилось в чем дело...

Сообщение отредактировал adc - Dec 27 2007, 13:15


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pepper   Странное поведение DS1302   Dec 21 2007, 10:19
- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 13:19) Прику...   Dec 21 2007, 10:26
|- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 13:26) н...   Dec 21 2007, 10:35
|- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 13:35) Код//...   Dec 21 2007, 11:48
||- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 14:48) с...   Dec 21 2007, 11:57
||- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 14:57) в том...   Dec 21 2007, 12:13
||- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 15:13) п...   Dec 21 2007, 12:18
|- - adc   Маленький совет по динамической индикации:Во время...   Dec 27 2007, 05:44
|- - Pepper   Цитата(adc @ Dec 27 2007, 08:44) Маленьки...   Dec 27 2007, 06:03
- - Pepper   Прикупил RTC DS1302. хочу подключить ее к МК AVR. ...   Dec 21 2007, 10:54
|- - Pepper   Принял на заметку... исправил... не помогло... во...   Dec 21 2007, 11:32
||- - adc   Цитата(Pepper @ Dec 21 2007, 14:32) //Уст...   Dec 21 2007, 12:06
|- - Pepper   и снова вы правы, но опять не помогло поставил зад...   Dec 21 2007, 12:14
||- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 15:14) и сно...   Dec 21 2007, 12:51
||- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 15:51) р...   Dec 21 2007, 12:57
||- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 15:57) согла...   Dec 21 2007, 13:12
||- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 16:12) д...   Dec 21 2007, 13:21
||- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 16:21) к сож...   Dec 21 2007, 13:27
||- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 16:27) п...   Dec 21 2007, 14:12
||- - sergik_vrn   Цитата(Pepper @ Dec 21 2007, 17:12) тогда...   Dec 21 2007, 14:24
||- - Pepper   Цитата(sergik_vrn @ Dec 21 2007, 17:24) с...   Dec 21 2007, 14:30
|- - adc   Цитата(Pepper @ Dec 21 2007, 13:54) // Пе...   Dec 21 2007, 12:15
|- - Pepper   Цитата(adc @ Dec 21 2007, 15:15) Все хоро...   Dec 21 2007, 12:24
- - adc   пожалуйста код в студию. Обращаю Ваше внимание на...   Dec 21 2007, 11:10
- - adc   эээ приведите код где у вас массив "Digits...   Dec 21 2007, 12:35
|- - Pepper   Цитата(adc @ Dec 21 2007, 15:35) эээ прив...   Dec 21 2007, 12:40
- - adc   Цитата(Pepper @ Dec 21 2007, 15:40) там в...   Dec 21 2007, 13:02
|- - Pepper   Цитата(adc @ Dec 21 2007, 16:02) да.. дол...   Dec 21 2007, 13:13
|- - sergik_vrn   Цитата(adc @ Dec 21 2007, 16:02) Что Вы п...   Dec 21 2007, 13:15
- - Pepper   только что обнаружил еще более странный глюк: при ...   Dec 26 2007, 11:53
|- - adc   Цитата(Pepper @ Dec 26 2007, 14:53) тольк...   Dec 26 2007, 12:20
|- - Pepper   Цитата(adc @ Dec 26 2007, 15:20) Выложите...   Dec 26 2007, 12:36
- - Pepper   Я кажется понял где грабли: у меня моя железка пит...   Dec 26 2007, 14:04
- - adc   Скажите, а в схеме у Вас батарейный элемент питани...   Dec 27 2007, 06:37
|- - Pepper   Цитата(adc @ Dec 27 2007, 09:37) Скажите,...   Dec 27 2007, 06:39


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 11:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016