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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Hardware TWI модуль Mega и RTC pcf8583
WHALE
сообщение Nov 19 2006, 10:17
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Толи лыжи не едут,толи одно из двух sad.gif Пытаюсь запустить сей девайс.Чтение проходит без прблем,
а при попытке записи модуль TWI зависает -то SCL в 0,а то и еще и SDA.
Судя по даташиту,работа с ним не отличается от алгоритма обращения с обычной EEPROM,что и делаю.
Кто работал с девайсом,плиз,подскажите,может я чего-то в DS проглядел или не понял? help.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
zorromen
сообщение Nov 19 2006, 12:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



что за мегу используешь?
Go to the top of the page
 
+Quote Post
WHALE
сообщение Nov 19 2006, 12:32
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



M128.А какая разница,модуль TWI у всех же одинаковый?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
zorromen
сообщение Nov 19 2006, 14:30
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Мож написать последовательность действий которые ты делаешь.
при чтении и при записи.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 19 2006, 14:58
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Подвиснуть при записи может если на линии SDA будет 0, в то время как Master выставляет 1.
Попробуйте понизить скорость обмена.

Цитата
Кто работал с девайсом,плиз,подскажите,может я чего-то в DS проглядел или не понял?

Далеко ходить не надо, проэмулировать ситуацию можно запустив другую мегу в режиме slave. Подвисать будет тока так. ;>
Go to the top of the page
 
+Quote Post
WHALE
сообщение Nov 19 2006, 15:33
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Скорость минимально возможная(TWBR =0XFF)и что модуль виснет в случае конфликта на шине я знаю,вопрос,в какую сторону копать.
Кто реально работал с данным RTC,где грабли лежат?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
vesago
сообщение Nov 19 2006, 17:49
Сообщение #7


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



А вы уверены в своем драйвере i2c? У меня помнится намертво подвисало из-за кривой реализации машины состояний. В частности из-за нетерпимости TWI к любому изменению TWCR без выставления битов TWEN, TWIE, TWINT. Но это если используется прерывание.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Nov 19 2006, 19:22
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



драйвер иаровский(avr апноут 315),применял уже несколько раз,вопросов небыло.Работает по прерываниям,это правда,но разве это недостаток?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
bodja74
сообщение Nov 19 2006, 23:06
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



1 Насколько помню у pcf8583 разрешение записи на 7 ноге это "1" ,а не "0" как у 24ХХ.
2 У меня как то подвисало из за слишком короткого промежутка между командами "стоп" и "старт".
Go to the top of the page
 
+Quote Post
WHALE
сообщение Nov 20 2006, 07:59
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(bodja74 @ Nov 20 2006, 02:06) *
1 Насколько помню у pcf8583 разрешение записи на 7 ноге это "1" ,а не "0" как у 24ХХ.
2 У меня как то подвисало из за слишком короткого промежутка между командами "стоп" и "старт".

1.pcf8583 это не eeprom,а rtc,и разрешения записи там нет.
2.В том-то и загвоздка,что виснет не при чтении,где я вначале адресую её на запись и устанавливаю начальный адрес чтения,потом stop,повторная адресация и чтение,а при записи,где алгоритм более
простой-адресация на запись,адресация начальной ячейки и запись с автоинкрементом адреса.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 20 2006, 12:41
Сообщение #11


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(WHALE @ Nov 20 2006, 07:59) *
2.В том-то и загвоздка,что виснет не при чтении,где я вначале адресую её на запись и устанавливаю начальный адрес чтения,потом stop,повторная адресация и чтение,а при записи,где алгоритм более
простой-адресация на запись,адресация начальной ячейки и запись с автоинкрементом адреса.

Может быть можно вставить цикл задержки или repeated start, между выдачей адреса и данными.
При работе через прерывания задержку довольно сложно вставить, но Вы можете поэксперементировать без прерываний вначале..
Go to the top of the page
 
+Quote Post
Alex11
сообщение Nov 20 2006, 19:19
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



У меня 8583 стоит в серийной продукции, работает без сбоев. Сейчас уже помню с трудом, но была там какая-то засада, связанная с тем, что контроллер был не штатный и не имел открытого коллектора на шине данных. В результате был очень короткий конфликт на шине при попытке подать повторный старт без стопа, после чего деталь впадала в ступор.
Go to the top of the page
 
+Quote Post
day177
сообщение May 3 2007, 15:04
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



Ковыряю PCF8583 в железе. В мэйне вызываем инициализацию i2c, потом инициализацию PCF8583, устанавливаем значение времени (пока для теста), в while показываем секунды и минуты, по прерыванию считываем время с PCF8583. Так вот затык в том что время как установилось так и не движется, т.е. часы не ходят - стоят на устанавленном значении. В чем может быть проблема? HELP PLEASE!!!!
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение May 3 2007, 15:59
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



А генератор включил 32768? Выведи его наружу и убедись, что управление проходит


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
m16
сообщение May 3 2007, 16:16
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



рабочий код на асме mega128+pcf8583
Прикрепленные файлы
Прикрепленный файл  CLOCK.zip ( 1.15 килобайт ) Кол-во скачиваний: 146
 
Go to the top of the page
 
+Quote Post
day177
сообщение May 3 2007, 16:40
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



to m16 за код конечно спасибо, но я пишу на Си

"А генератор включил 32768?" - схема мастеркитовская ns182 h__p://www.masterkit.ru/images/magazines/1_ST_08_02.gif

"Выведи его наружу и убедись, что управление проходит" - так там кварц часовой (цилиндрик 32768) стоит и от одной ноги через кондюк 20пф на +Пит.
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 3 2007, 16:47
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(sensor_ua @ May 3 2007, 16:59) *
А генератор включил 32768? Выведи его наружу и убедись, что управление проходит

А его можно там включить на выход?Вроде нет там такой возможности.

У меня PCF пашет без вопросов,толька я его использую в таком режиме-на пине INT секундные импульсы,заведенные на прерывания проца.
читаю время из него один раз по включению,а далее по прерываниям программный счет-гораздо быстрее получается,чем постоянное считывание счетных регистров PCF.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
m16
сообщение May 3 2007, 16:52
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



Цитата(day177 @ May 3 2007, 16:04) *
Так вот затык в том что время как установилось так и не движется, т.е. часы не ходят - стоят на устанавленном значении. В чем может быть проблема? HELP PLEASE!!!!

Control/status register bit7: 1- stop counting, reset divider , 0- count pulses
так вот ноликом часики запускаются
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение May 3 2007, 16:59
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
А его можно там включить на выход?

Вывод 7 у него для этого и целый регистр 0x0D. А прерывания выдаёт он на 3-й пин
ПРАВКА. Попутал с 8563;) У 8583 действительно нет
Цитата
схема мастеркитовская

Да чихать от кого схема - в регистре 0x00 биты TEST и STOP правильные?
ПРАВКА. Попутал с 8563;) У 8583 в регистре 0х00 должны быть правильно прописаны биты [5:4] и бит STOP -7


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
algidim
сообщение May 4 2007, 02:04
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 160
Регистрация: 5-04-06
Из: Москва
Пользователь №: 15 847



Цитата(Alex11 @ Nov 20 2006, 20:19) *
У меня 8583 стоит в серийной продукции, работает без сбоев. Сейчас уже помню с трудом, но была там какая-то засада, связанная с тем, что контроллер был не штатный и не имел открытого коллектора на шине данных. В результате был очень короткий конфликт на шине при попытке подать повторный старт без стопа, после чего деталь впадала в ступор.

У меня вот тоже. biggrin.gif Подскажите пожалуйста какой конденсатор между первой ногой и vcc у Вас стоит. А то у меня 10pf и они отстают. А вообще непонятно какие там могут быть проблемы, самая обычная i2c RTC, по моему там вообще нет никаких подврдных камней. Я тоже писал на Си, но она у меня не к AVR подключена. Она у меня вообще с первого раза пошла и даже без отладки. А вот генератор в ней вообще отключить по моему невозможно. Я её и выбрал из её цены и потому что на выходе int можно получить секундные импульсы - очнгь удобно.

Цитата(day177 @ May 3 2007, 16:04) *
Ковыряю PCF8583 в железе. В мэйне вызываем инициализацию i2c, потом инициализацию PCF8583, устанавливаем значение времени (пока для теста), в while показываем секунды и минуты, по прерыванию считываем время с PCF8583. Так вот затык в том что время как установилось так и не движется, т.е. часы не ходят - стоят на устанавленном значении. В чем может быть проблема? HELP PLEASE!!!!

А Вы осциллографам на кварце смотрели ? Резисторы на SDA и SCL стоят ? И уверены что вообще время устанавливаете, просто если после подачи питания стчитывать время оно должно идти.
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 4 2007, 08:04
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



А вы последовательно с кварцем постоянный конденсатор ставите? cranky.gif ну не знаю,может у вас
кварцы особо точные.Я ставлю триммер 5/25 pf,на ногу INT с секундными импульсами частотомер в ре-
жиме измерения периода и кручу,кручу...Кварцы гуляют очень прилично.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
day177
сообщение May 4 2007, 11:22
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



to WHALE вот про это можно немного по-подробнее "на пине INT секундные импульсы,заведенные на прерывания проца.
читаю время из него один раз по включению,а далее по прерываниям программный счет-гораздо быстрее получается,чем постоянное считывание счетных регистров PCF."

А гадина эта таки завелась - перешил той же прошивкой и часики затикали. В чем была проблема хз.
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 4 2007, 12:45
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



а что тут непонятного?раз в секунду считывать с RTC его счетные регистры-это несколько пересылок
туда-сюда по достаточно тормознутой квадратной шине.Плюс лежат они там в BCD-формате-для инди-
кации ничего,но для работы мне неудобно-надо еще и распаковывать.Все это жрет процессорное время.Это только имхо-мне проще проще 1 раз считать с RTC время при старте системы,а дальше счи-
тать его прграммно в контроллере по секундным импульсам.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
day177
сообщение May 4 2007, 12:43
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



Кстати в книге "шина i2c в радиолюбительских конструкциях" - почти полный перевод даташита на PCF-ку. Щас сижу разбираюсь доконца, а то в англицком не силен. Всем спасибо за помощь smile.gif
Go to the top of the page
 
+Quote Post
day177
сообщение May 7 2007, 08:27
Сообщение #25


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



to WHALE я так и не понял после сброса чипа - PCF по умолчанию генерит прерывания каждую секунду или где-то надо что-то изменить?

если да, то в каком регистре и какой бит?
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 7 2007, 10:16
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



если вы под сбросом понимаете полное снятие питания-то да,по дефолту после сброса она работает в режиме персчета частоты кварца,а на выходе INT импульсы с частотй Fкварца/32768.Программно можно выход INT переключить на срабатывание аларма.Т.е при включении питания,если вы используете PCF только в режиме RTC,то регистры управления можно не трогать,они стоят как надо.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
day177
сообщение May 10 2007, 06:26
Сообщение #27


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



Вот кусок даташита: «В режиме подсчета реального времени, если режим alarm не задействован, вывод INT может генерировать постоянные прерывания с частотой 1Гц и скважностью 50%.»
Вопрос: какие регистры и какие биты отвечают за это? Никак не пойму. Симулирую в Proteus, но прерывания не происходят – толи модель PCF-ки кривая, то ли я что-то неправильно делаю sad.gif HELP!!!
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 10 2007, 08:10
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Согласно даташиту после подачи питания все должно стоять в режиме RTC c коэффициэнтом счета 32768.Ну можете для очистки совести в регистр статуса 0 записать.
З.Ы.-плюньте на протеус,что а реале творится?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
day177
сообщение May 10 2007, 10:48
Сообщение #29


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



как же плюнуть на протеус - как же устройство отлаживать sad.gif

в реале ваще черти что - динамическая индикация, считывание часов в пррывании по НЛУ - так вот вместо нормальной индикации поочередно показываются все цифры. плюс еще очень быстро проблескиваю все цифры. Может просто один раз вызывается прерывание, необходимый флаг не возвращается в исходное состояние и так остается в НЛУ и прерывания идут лавинно
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 10 2007, 11:03
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



дык импульсы 1-герцовые у вас есть или их нет?их можно даже вольтметром увидеть,если нет осцилографа.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Jury093
сообщение May 10 2007, 14:25
Сообщение #31


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



"бери интеграл по частям"
заведи четыре переменные, положи туда при старте 1, 2, 3 и 4 и отлаживай сначала динамическую индикацию. отладил.. копайся в обработке прерывания от часов, например при попадание туда увеличивай на единицу одну из переменных для вывода на индикатор и тыды..
ЗЫ Кстати, надеюсь выход от чипа часов, тот который должен вызывать прерывание меги у тебя подтянут резистором на +U..

Цитата(day177 @ May 10 2007, 14:48) *
как же плюнуть на протеус - как же устройство отлаживать sad.gif

в реале ваще черти что - динамическая индикация, считывание часов в пррывании по НЛУ - так вот вместо нормальной индикации поочередно показываются все цифры. плюс еще очень быстро проблескиваю все цифры. Может просто один раз вызывается прерывание, необходимый флаг не возвращается в исходное состояние и так остается в НЛУ и прерывания идут лавинно
Go to the top of the page
 
+Quote Post
day177
сообщение May 11 2007, 07:41
Сообщение #32


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 25-01-07
Пользователь №: 24 755



Цитата(Jury093 @ May 10 2007, 18:25) *
ЗЫ Кстати, надеюсь выход от чипа часов, тот который должен вызывать прерывание меги у тебя подтянут резистором на +U..


на схеме резюка не было, за сим не ставил. Потом полистал даташит - оказывается нада ставить (мастеркит мать его перемать twak.gif )

в реале импульсы есть 1Гц. Модель протеуса кривая. Все переписал/переделал smile.gif

В связи с изменением алгоритма программы обратный вопрос - как включить прерывания только по alarm?
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 11 2007, 08:24
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



1.Разрешаете alarm-2 бит в регистре статуса в 1.
2.в регистре alarm control устанавливаете нужный вам режим аларма+в нем-же разрешаете прерывание
от аlarm-7 бит в 1.
3.Устанавливаете регистры сравнения alarm.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post

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

 


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


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