|
USI типа I2C на Tiny45, просто не работает |
|
|
|
 |
Ответов
|
Feb 22 2010, 19:39
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата Не получается прочитать байт от Тини, хоть тресни  А передать байт в тиню? Там же только запись, в моём примере. И это точно работало у меня  А другие устройства на i2c - перестали зависать? Возможно я не всё исправил, тогда надо ждать MTh, он это (неответ) вроде поборол.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 22 2010, 19:52
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Ни привета, ни ответа. В слейве даже по условию Код if( USI_TWI_statusReg.dataInRxBuf ) { PORTB |= (1 << LED); ........ ничего не горит. Со стороны Меги вызываю Код void ReadSensor() { I2c_StartWait(SENSOR_ADDR | W); // slave address, write to sensor I2c_Write(TWI_CMD_MASTER_READ); I2c_RepStart(SENSOR_ADDR | R); // slave address + read bit, read sensor Value = (unsigned long)I2c_Read(I2C_ACK) << 24; Value |= (unsigned long)I2c_Read(I2C_ACK) << 16; Value |= (unsigned long)I2c_Read(I2C_ACK) << 8; Value |= (unsigned long)I2c_Read(I2C_NACK) << 0; I2c_Stop(); }
|
|
|
|
|
Feb 23 2010, 08:41
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Нашел одну ошибку: адрес слейв устройства в тини нужно инициализировать сдвинутым на 1 вправо. Т.е. из Меги передаю адрес 0х10, а в Тини TWI_SlaveAdress = 0x08. После этого начал зажигаться светодиод по условию, "буфер не пуст" и ЖКИ индикатор вроде как работает. "Вроде как" значит, что по включению питания на ЖКИ мусор и зависание, а после ресета по крайней мере проходит процедура инициализации ЖКИ. Но все-равно нет ответа от Тини  . Короче, в топку этот недоинтерфейс USI в режиме I2C. Буду пробовать трехпроводный SPI. Надеюсь, что с ним не будет таких проблем...
|
|
|
|
Сообщений в этой теме
alux USI типа I2C на Tiny45 Feb 22 2010, 13:22  AHTOXA Да, выходом. Но не нулём:
Кодvoid i2c_init(u08... Feb 22 2010, 16:49        SysRq Цитата(alux @ Feb 23 2010, 11:41) Нашел о... Feb 23 2010, 15:22         alux Цитата(SysRq @ Feb 23 2010, 19:22) Разбер... Feb 24 2010, 09:28 alux Попробовал использовать USI (Tiny45) в режиме SPI ... Feb 25 2010, 13:53 SysRq Цитата(alux @ Feb 24 2010, 12:28) И где я... Feb 26 2010, 22:57 alux SPIF = SPIF;
в данном случае ни при чем.
Проблема... Feb 27 2010, 14:39 Александр Куличок ЦитатаА вообще, логично было бы назвать вывод MISO... Feb 28 2010, 10:00 alux Вот именно, с точностью до наоборот. Мне, например... Feb 28 2010, 14:47 alux С USI(SPI) работает, но нужно организовывать прото... Mar 1 2010, 06:34 alux Чтобы отправить от Slave(Tiny45) длинный байт
Код ... Mar 2 2010, 09:23 Nuts_ Если надо то есть реальный проверенный код на ASM
... Mar 30 2010, 11:07 stells Цитата(Nuts_ @ Mar 30 2010, 15:07) Если н... Mar 30 2010, 13:48 Nuts_ код для принимающего утройтва
принимает 6 байт
ну ... Apr 1 2010, 11:15 stells Цитата(Nuts_ @ Apr 1 2010, 15:15) код для... Apr 1 2010, 11:20 Cursedsmite Скажите, а примера реализации похожей задачи на ас... Jan 24 2013, 11:31
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|