Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

xmega a4 twi - будет работать так?

Непрочитано 19.12.2012, 16:18  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию xmega a4 twi - будет работать так?

"первый раз, первый класс". i2c читал теорию, примерно представляю алгоритм. По реализации на xmega смотрел исходник в апноуте Атмел, драйвер_мастер_тви, мозг подзакипел. Накропал так, для задачи: хмега как мастер опрашивает пару датчиков, фсе. Прерывание.. ну может для красоты, чтобы отправить команду на чтение и забыть, а прерывание подхватит.

Код:
#define CPU_SPEED 32000000
#define BAUDRATE    400000
#define TWI_BAUD(F_SYS, F_TWI) ((F_SYS / (2 * F_TWI)) - 5)
#define TWI_BAUDSETTING TWI_BAUD(CPU_SPEED, BAUDRATE)

void twi_init(void)
{
	TWIE.MASTER.CTRLB = TWI_MASTER_INTLVL_LO_gc | TWI_MASTER_WIF_bm | TWI_MASTER_RIF_bm | TWI_MASTER_SMEN_bm;
	TWIE.MASTER.BAUD =  TWI_BAUDSETTING;
	TWIE.MASTER.CTRLA = TWI_MASTER_ENABLE_bm;
	TWIE.MASTER.STATUS = TWI_MASTER_BUSSTATE_IDLE_gc;
}

void twi_send_byte(uint8_t _addr, uint8_t _byte)
{
	TWIE.MASTER.ADDR = _addr & ~0x01;
	TWIE.MASTER.DATA = _byte;
	while (!(TWIE.MASTER.STATUS&TWI_MASTER_WIF_bm));
}

uint8_t twi_read_byte(uint8_t _addr)
{
	TWIE.MASTER.ADDR = _addr | 0x01;
	while(!(TWIE.MASTER.STATUS&TWI_MASTER_RIF_bm));
	return TWIE.MASTER.DATA;	
}

void twi_send_str(uint8_t _addr, const char *str)
{
	while(*str)
	twi_send_byte(_addr, *(str++));
}
//twi interrupt
ISR(TWIE_TWIM_vect)
{
	RS485_send_byte(twi_read_byte(0x0d));
}
Вопрос. Старт/стоп не моя проблема, хмега сама при передаче? Тогда что, для каждого байта в данном случае будет стартстоп? Или как то надо ручками делать?

Нужно ли ставить в статусном регистре признаки "занято" и снимать их?

Ну и в целом.. датчики приедут на днях, проверить не могу пока что..
Реклама:
whoim вне форума  
Непрочитано 19.12.2012, 16:21  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

Я так понял, & ~0x01 к адресу - это команда на запись, а наоборот - команда на чтение? Или все страшнее? )
whoim вне форума  
Непрочитано 19.12.2012, 19:03  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,009
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

whoim,
посмотрите на досуге диаграммы от филлипса на i2c - вопросы отпадут, останется только еще раз прочесть ДШ и понять его работу
jump вне форума  
Непрочитано 20.12.2012, 07:35  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

jump, охота разобраться именно с реализацией в хмеге один хрен я не запоминаю что в ноль, что в единичку.. не влазит уже в голову, да и нет смысла в конкретном случае ) мне ж аппаратную поддержку завести
whoim вне форума  
Непрочитано 20.12.2012, 21:22  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

Сообщение от whoim Посмотреть сообщение
jump, охота разобраться именно с реализацией в хмеге один хрен я не запоминаю что в ноль, что в единичку..
Посмотрите соотв. апноту (avr1308_using_the_XMEGA_twi). Там всё написано.

Сообщение от whoim Посмотреть сообщение
не влазит уже в голову, да и нет смысла в конкретном случае ) мне ж аппаратную поддержку завести
Кстати, если под рукой нет нужной i2c-микросхемы, то слейва можно эмулировать на том же twi-порту xmeg-и, разрешив работу twi slave.
_Артём_ вне форума  
Непрочитано 20.12.2012, 21:54  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,009
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

whoim,
а с обычной мегой работали? там все похоже. принцип работы i2c-микросхемы рассмотрите на примере АТ24С512
jump вне форума  
Непрочитано 21.12.2012, 11:30  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

jump, только читал. Практически везде юзают софтовые варианты протоколов. Там, например, есть i2c_start(). Упоминаний об этом шаге в примерах на XMEGA я не нашел. Проверить / "потыкать" все еще нечем.. поставщик подводит заразо..
whoim вне форума  
Непрочитано 21.12.2012, 11:33  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

Сообщение от _Артём_ Посмотреть сообщение
Посмотрите соотв. апноту (avr1308_using_the_XMEGA_twi). Там всё написано.
посмотрел. Там "очень трудный" драйвер, рассчитанный на любую работу с twi. Буфера, статусы, все дела. У меня пока попроще - два датчика опрашивать, мне в принципе и прерывание не очень то нужно.. Думал начать с простейшего, отправил инициализацию, отправил команду чтения регистра, получил содержимое регистра..
whoim вне форума  
Непрочитано 21.12.2012, 11:34  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

Сообщение от _Артём_ Посмотреть сообщение
xmeg-и, разрешив работу twi slave
да сопли неохота кидать дождусь уже обвязки датчиков и прочего
whoim вне форума  
Непрочитано 21.12.2012, 11:36  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: xmega a4 twi - будет работать так?

Вот например - верно ли, что чтобы инициализировать чтение либо передачу нужно занести в ADDR модифицированный адрес, где один бит указывает - чтение или передача? Или тут сложнее, сначала этот бит, потом ждать статуса, потом адрес, а потом получать/забирать данные из DATA?
whoim вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделал схему приемника, будет работать? Baza666 Автоматика и аппаратура связи 0 09.03.2011 18:17
Схема - будет ли работать? po4emu4ka Микроконтроллеры, АЦП, память и т.д 1 02.06.2010 08:53
Работать будет? ilya_sh Источники питания и свет 15 01.04.2010 14:43
Будет ли работать в железе (PCF8574) R-a-v-e-n Микроконтроллеры, АЦП, память и т.д 18 22.06.2009 12:33


Часовой пояс GMT +4, время: 23:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.