| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
I2C, WinAVR и at90s2313
27.08.2007, 17:23
|
|
|
Частый гость
Регистрация: 16.05.2005
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
I2C, WinAVR и at90s2313
подкинули проектик, надо указанному контроллеру общаться с 24cXX по i2c. Стянул Procyon AVRlib для WinAVR, но где то собака порылась.  помогите найти, в чем дело.
|
Код:
|
#include ‹avr/io.h›
#include ‹avr/io2313.h›
#include ‹i2csw.h›
#include "i2c.c"
#define F_CPU 4000000
#define CYCLES_PER_US ((F_CPU+500000)/1000000
#define SCLPORT PORTD
#define SCLDDR DDRD
#define SDAPORT PORTD
#define SDADDR DDRD
#define SDAPIN PIND
#define SCL PD2
#define SDA PD3 |
Но как только пишу
начинаются ошибки (могу всё сюда кинуть, но есть ли смысл?).
Все, приплыли. Признаюсь - в Си слаб, но пытаюсь...
Нехочется всё на асме писать и/или изобретать велосипед.
|
|
|
|
27.08.2007, 18:12
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
|
По этому куску ничего не скажешь. Существует ли i2c.h ?
Скопировали ли Вы i2c.c в папку проекта ? Весь проект, тогда будет виднее.
|
|
|
|
27.08.2007, 18:57
|
|
|
Частый гость
Регистрация: 16.05.2005
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Да. всё это. лежит i2c.c , а надо i2csw.c. по недосмотру - понять то понял, что софтверный. В любом случае спасибо! 
PS: 0x580 памяти сьело только подключение! Ужас.
(может в аську? 123745551 в обратном порядке)
|
|
|
|
28.08.2007, 04:42
|
|
|
Частый гость
Регистрация: 16.05.2005
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Упс.. Еще разъясните, пожалуйста - схема подключения какая должна быть? напрямую SCL, SDA напрямую к контроллеру? меня смущает то, что должен быть открытый коллектор, вроде как. На шинах ничего не планируется больше.
|
|
|
|
28.08.2007, 10:35
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,479
Сказал спасибо: 3,193
Сказали Спасибо 2,982 раз(а) в 682 сообщении(ях)
|
|
Сообщение от Hoksmur
|
|
Еще разъясните, пожалуйста - схема подключения какая должна быть? напрямую SCL, SDA напрямую к контроллеру? меня смущает то, что должен быть открытый коллектор, вроде как. На шинах ничего не планируется больше.
|
Напрямую SCL, SDA и резисторы 4,7КОм (можно 1,5КОм-10КОм) на питание от обеих линий.
Имитация открытого коллектора в коде уже настроена этими строчками
|
Код:
|
#define SCLPORT PORTD
#define SCLDDR DDRD
#define SDAPORT PORTD
#define SDADDR DDRD
#define SDAPIN PIND
#define SCL PD2
#define SDA PD3 |
|
|
|
|
28.08.2007, 11:48
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
|
Нет, полтора килоома - это круто. Побольше нужно. И, если еще есть устройства на шине, то обычно ставят ом 100 кажется, последовательно к каждому устройству.
|
|
|
|
28.08.2007, 22:58
|
|
|
Прохожий
Регистрация: 09.08.2006
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
I2C, WinAVR и at90s2313
Чтобы использовать библиотеки Procyon AVRlib, Вы должны скопировать global.h в директорию вашего проекта и модифицировать global.h, в соответствовии с используемыми аппаратными средствами. Каждый проект должен иметь собственный global.h. Почитайте внимательно файл avrlibconf
eadme-conf.txt
|
|
|
|
29.08.2007, 05:59
|
|
|
Частый гость
Регистрация: 16.05.2005
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо всем! Просто, насколько понимаю - напрямую не совсем корректно подключаться - при конфигурировании пина на выход там далеко не ОК. Ну да ладно, раз люди пользуются - значит работает  А если подключать внешние транзисторы - биты инвертируются, входа брать с коллекторов, ...
Вроде в описаловах рускоязычных - 4к7. В спецификацию незаглядывал. Про 100 ом - имеет смысл, чтобы не сжечь ничего.
global.h включил и перетащил в проект - потом переопределил переменные (или как это называется?)
|
|
|
|
29.08.2007, 11:59
|
|
|
Частый гость
Регистрация: 13.08.2006
Сообщений: 22
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
В продолжение темы I2C.
Пробую использовать енту шину для подключения термометров типа DS и часов реального времени.
Использую в контроллере управления парником.
Функции простые: полить в нужное время, открыть фрамугу или включить тепловентилятор.
Скажу честно - разочаровался. Часы периодически останавливают время. Особенно это неприятно когда включена вода на полив. Раза 4 заливал весь участок.Второй недостаток заключается в том, что при срабатывании сторожевого таймера происходит перезагрузка и если нет ответа от одного из термометров по шине контроллер будет бесконечно ждать. Писал программу на СИ в коде визион, функции управления шиной там формируются мастером программ. Может конечно не в шине дело а кривые руки. Интересно ваше мнение.
|
|
|
|
29.08.2007, 12:08
|
|
|
Частый гость
Регистрация: 13.08.2006
Сообщений: 22
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Кстати о резисторах. Диапазон указан верно, но номинал необходимо подобрать исходя из длинны проводов шины. Допускается до 10 метров. Кстати при подборе есть всего два состояния шины: работает или не работает. Так что ели у вас при выбранном значении номинала работает - больше нечего мудрить.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:13.
|
|