Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
15.04.2007, 21:32
|
|
Частый гость
Регистрация: 31.01.2007
Сообщений: 15
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Помогите с I2C
Начиная программировать на микроконтроллерах я столкнулся с проблемой по шине I2C. Теоретические основы я уже понял,
а вот конкретного примера применения не найду.
Скажем, считать с 24с02 байт или что нибудь подобное.
Может у кого-нибудь есть пример такой схемы с прошивкой?
|
|
|
|
15.04.2007, 22:12
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
А на чем пишешь? На каком контроллере? На асме или си компилляторе?
|
|
|
|
15.04.2007, 23:28
|
|
Частый гость
Регистрация: 31.01.2007
Сообщений: 15
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Микроконтроллер желательно pic и язык asm.
если такого примера нет,
то буду рад любому,
тем более, что мне достаточно самого алгоритма,
т. е. положение SDA и SCL во времени, но не диаграммы,
а желательно полнаой строки состоянй,
скажем , считывания (записи) адреса с памяти,
от старта и до конца.
|
|
|
|
15.04.2007, 23:36
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Я пишу на AVR, так что с PIC не помогу...
Прикрепил описание на русском, может поможет....
Прикрепленный файл: 9630143.rar
|
|
|
|
15.04.2007, 23:50
|
|
Частый гость
Регистрация: 31.01.2007
Сообщений: 15
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
а на AVR вроде есть аналог TWI,
может по ниму что-нибудь найдётся?
|
|
|
|
15.04.2007, 23:55
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
У ATMEG есть встроенный TWI... Я програмлю на CodeVisionAVR, там есть библиотека по i2c, только подставляю адрес и значение, а прога все делает сама... в принципе я раньше работал с i2c на простых кнопках мп5... а что именно не понятно в протоколе?
|
|
|
|
16.04.2007, 00:23
|
|
Частый гость
Регистрация: 31.01.2007
Сообщений: 15
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вся сложность в том,
что мне не понятен принцип,
по которому передаётся адрес для чтетия,
записи.
Было бы неплохо,
если бы вы мне написали нескольно команд для CodeVisionAVR по записичтениюадрессации.
|
|
|
|
16.04.2007, 00:31
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Код:
|
#define EEPROM_BUS_ADDRESS 0xa0
unsigned char eeprom_read(unsigned int address) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address››8);
i2c_write(address & 0x00FF);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}
void eeprom_write(unsigned int address, unsigned char data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address››8);
i2c_write(address & 0x00FF);
i2c_write(data);
i2c_stop();
/* 5 ms delay to complete the write operation */
delay_ms(5);
} |
Команда старт.
В первом байте передается адрес устройства (в данном случае адресс памяти AT24..) а последний бит определяет будет это запись или чтение... дальше адресс, а потом данные....
Команда стоп...
Попробуйте перечитать описание протокола, может будут более конкретные вопросы....
|
|
|
|
16.04.2007, 00:51
|
|
Частый гость
Регистрация: 31.01.2007
Сообщений: 15
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо,
думаю, что ассемблер надо забрасывать,
иначе не миновать рутины.
|
|
|
|
16.04.2007, 00:54
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Очень правильное решение, сам когда то души не чаял в асме... Проблемой перейти на си еще была такая, что в универе изучал паскаль а не си... Все же перешел и не жалею...
Удачи
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Mega 8 + TWI (I2C) Slave Помогите.
|
west1111 |
Микроконтроллеры, АЦП, память и т.д |
46 |
10.07.2013 01:40 |
?-быстродействие I2C
|
giran |
Микроконтроллеры, АЦП, память и т.д |
1 |
15.05.2007 15:14 |
Помогите разобраться с внешней памятью по I2C
|
graham |
Микроконтроллеры, АЦП, память и т.д |
3 |
16.12.2005 17:01 |
I2C
|
chipic128 |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.02.2005 02:19 |
I2C
|
zevs |
Микроконтроллеры, АЦП, память и т.д |
0 |
11.01.2005 16:11 |
Часовой пояс GMT +4, время: 01:44.
|
|