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

 
 
 
Reply to this topicStart new topic
> Подскажите по TWI (I2C), C эмулятором все ок, без него не работает.
StasAga
сообщение Apr 19 2007, 12:03
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 19-04-07
Пользователь №: 27 165



Я только начинающий программист, еще многого не знаю...

Прошу у вас помощи.
Имею проц. ATmega 2560 и часы на RAMTRON FM31256... Связь между микрухами по TWI (I2C)...

Так вот когда я запускаю программу под эмулятором, то время считывается правильно. Но если без эмулятора, то похоже связи по TWI не получается... и проц не может считать время. Эмулятор AVR AT JTAGICE Mk II.

На сколько я понимаю, эмулятор записывает в проц. программу... А в чем разница работы проца под эмулятором и самостоятельно. Может это меня на толкнет на выяснение причины.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Apr 19 2007, 12:14
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Возможно эмулятор слегка подтормаживает весь процесс если количество точек останова больше 4.
Без него или с нормальным количеством брейкпоинтов процесс идёт быстрее.
Попробуйте уменьшить сопротивление подтягивающих резисторов до 2.4 кОм.
Go to the top of the page
 
+Quote Post
rumit2000
сообщение Apr 19 2007, 12:48
Сообщение #3


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

Группа: Свой
Сообщений: 175
Регистрация: 16-03-07
Из: Москва
Пользователь №: 26 228



могу поделится опытом, было давно и не правдо biggrin.gif , однако когда только начинал осваивать МК - пытался связываться к компом по RS232, c JTAG эмулятором всё отлично работало, а как только его отключал - переставала работать связь с PC... оказалось - не было земли smile.gif , а при подключённом JTAG, земля проходила через него.... Глупейшая конечно ошибка, но "опыт - сын ошибок трудных...."
Может у Вас проблема из этого разряда? Электроника - наука о контактах.


--------------------
Быстро, Дёшево, Качественно-выбери любые 2 пункта
Go to the top of the page
 
+Quote Post
StasAga
сообщение Apr 19 2007, 12:51
Сообщение #4





Группа: Новичок
Сообщений: 6
Регистрация: 19-04-07
Пользователь №: 27 165



Цитата(IgorKossak @ Apr 19 2007, 12:14) *
Возможно эмулятор слегка подтормаживает весь процесс если количество точек останова больше 4.
Без него или с нормальным количеством брейкпоинтов процесс идёт быстрее.
Попробуйте уменьшить сопротивление подтягивающих резисторов до 2.4 кОм.


У меня вообще нет точек останова.
Подтягивающие резисторы использую внутрении в ATmega...
Однако с эмулятором все ок!, а без него никак. Пробовал снижать скорость... Понизил до 10kHz, все равно без эмулятора не работает.
Причем проверяли это на нескольких платах. На одной все работает как надо, а надругих 4-ех нет...
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 19 2007, 13:02
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
Подтягивающие резисторы использую внутрении в ATmega...


У внутренних резисторов большое сопротивление.
Обязательно поставьте внешние, как советовал IgorKossak, после этого попробуем разобраться дальше.
Go to the top of the page
 
+Quote Post
rumit2000
сообщение Apr 19 2007, 13:03
Сообщение #6


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

Группа: Свой
Сообщений: 175
Регистрация: 16-03-07
Из: Москва
Пользователь №: 26 228



Цитата(StasAga @ Apr 19 2007, 13:51) *
У меня вообще нет точек останова.
Подтягивающие резисторы использую внутрении в ATmega...
Однако с эмулятором все ок!, а без него никак. Пробовал снижать скорость... Понизил до 10kHz, все равно без эмулятора не работает.
Причем проверяли это на нескольких платах. На одной все работает как надо, а надругих 4-ех нет...


Возможна ошибка в каком угодно месте, например в неправильной разводке ПП, например при очень зашумлённых сигналлах JTAG их будет "фильтровать", а без него работать не будет...
А при подключённом JTAG, но без отладки по нему - работает (незнаю имеется ли такая возможность для AVR, для MSP430 - заливаешь по JTAG прогу, при включенном JTAG передёргиваешь питание и работает на ура)? если да - скорее всего проблема с самой платой
Да и внутренние резисторы большие - попробуйте поставить как советует тов.IgorKossak

P.S. пока писал про внутренние резисторы Igor26 опередил smile.gif

Сообщение отредактировал rumit2000 - Apr 19 2007, 13:04


--------------------
Быстро, Дёшево, Качественно-выбери любые 2 пункта
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 19 2007, 13:15
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 StasAga - у меня когда то были похожие грабли - в программе наворотил кучу всего, токо у меня был АЙС - то с айсом всё вроде работало а без него в упор отказывалось - оказалось там проц чуть не разрывался пытаясь выполнить сразу все задания, да и ещё не совсем корректно завершал процедуры - в общем по отдельности всё работало а вкуче нет.

А на счёт внешних резисторов на TWI - то обязательно - ставлю 5к1 ~ 10к , когда то разгорелся спор как раз по этому вопросу с мусЧиной , который уже довольно долго плотно общался с аврами - то вот он сообщил мне что без этих резюков оно конечно может работать - но бывали случаи что TWI серъёзно глючил без них с внутренними своими , а при допайке этих резисторов картина кардинально менялась в лучшую сторону. Да ещё скорость не сильно запредельную ставте - с маленьких скоростей начните..
Или напишите просто программу получения байта или чтото типа того для меги - попробуйте использовать внешние признаки - светодиоды или чтото другое для отладки.Ну и осцилографом тож не мешало бы тыкнуться - посмотреть что у вас там творится с эмулятором и без него..
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 19 2007, 14:03
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
незнаю имеется ли такая возможность для AVR, для MSP430 - заливаешь по JTAG прогу, при включенном JTAG передёргиваешь питание и работает на ура

Да, имеется.
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 19 2007, 14:21
Сообщение #9


кекс
******

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



Rpull-up = Tr/Cb,
где Tr для 100Khz = 1us, для 400Khz - 200ns.
Емкость шины пусть будет 100 pf (для простоты счета).
Получаем
Rpull-up = 10(-6)/10(-10) = 10k (для 100 khz),
Rpull-up = 2*10(-7)/10(-10) = 2k для 400Khz соответственно
Go to the top of the page
 
+Quote Post
StasAga
сообщение Apr 20 2007, 11:14
Сообщение #10





Группа: Новичок
Сообщений: 6
Регистрация: 19-04-07
Пользователь №: 27 165



Спасибо за помощь. Внешние подтягивающие резисторы действительно нужны. Но проблема оказалась в другом. Как говорится, внимательно надо мануал читать...

Так называемый Processor Companion в Ramtron FM31256 начинает работать лишь спустя 100 милисекунд после подачи питания. А у меня в самом начале программы шла инициализация этого самого Processor Companion по TWI... Вот и получалось, что при работе с эмулятором питание на плате не сбрасывалось и все работало. А при запуске без эмулятора - сбрасываешь питание, начинается инициализация Processor Companion, а Ramtron в это время молчал как партизан, ожидая те самые 100 милисекунд.

В итоге пришлось поставить задержку, и теперь все работает ОК!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 18:01
Рейтинг@Mail.ru


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