Технический форум по робототехнике.
Иван_С » 09 мар 2006, 17:28
Подскажите пожалуста кто работал с шиной I2C_HW для ATmega32. Использую стандартную библиотеку, но где-то кто- то вкрался. Не вызывается обработчик прерываний. TWSR, SREG и GIRC включены. И осталась непонятным как должны быть сконфигурированны порты I/O при передачи управления модулю TWI.
avr123.nm.ru » 09 мар 2006, 19:08
хоть намекни в чем пишешь.
примеры кода из ДШ пробовал? смотрел?
wolf » 09 мар 2006, 20:54
Иван_С писал(а):Подскажите пожалуста кто работал с шиной I2C_HW для ATmega32. Использую стандартную библиотеку, но где-то кто- то вкрался. Не вызывается обработчик прерываний. TWSR, SREG и GIRC включены. И осталась непонятным как должны быть сконфигурированны порты I/O при передачи управления модулю TWI.
Порты SDA/SCL можно не конфигурировать, при включении TWI они сами встанут в положение "открытый коллектор". Внешние подтягивающие резисторы обязательны. Программная обработка делается прямо по даташиту; если нигде не ошибиться - всё заработает, с прерываниями или без.
Иван_С » 10 мар 2006, 13:15
Пишу на Си, пытаюсь всё сделать на библиотеке
File Name : 'i2c.c'
// Title : I2C interface using AVR Two-Wire Interface (TWI) hardware
// Author : Pascal Stang - Copyright (C) 2002-2003
// Created : 2002.06.25
// Revised : 2003.03.02
// Version : 0.9
// Target MCU : Atmel AVR series
Собственно с ней и заморочка.
В даташитах я не нашёл семплов по hw а вот sw есть.
Мне кажется что я просто недостаточно представляю себе архитектуру МК. Вполне возможно что кде-то, что-то в регистрах прописано и прерывания просто не вызываются. Уже была лажа после поднятия I флага SREG включались внешние приревания для которых нет обработчиков и всё висло, может и щас что то подобное.
Если кто-то радотал с этой библиотекой то подскажите плиз.
Иван_С » 12 мар 2006, 01:38
avr123.nm.ru в этом кратком курсе TWI модуль не разберается(я ненашёл, может слепой))))) а библиотека моя вроди из набора avrlib.
wolf » 12 мар 2006, 16:38
Иван_С писал(а):avr123.nm.ru в этом кратком курсе TWI модуль не разберается(я ненашёл, может слепой))))) а библиотека моя вроди из набора avrlib.
Попробуйте аналогичную библиотеку из дистрибутива CodeVision.
avr123.nm.ru » 13 мар 2006, 01:17
Иван_С писал(а):
avr123.nm.ru - в этом кратком курсе TWI модуль не разберается (я ненашёл, может слепой)))))
Курс avr123.nm.ru - по тому и КРАТКИЙ что я не помещаю в него то что ПОДРОБНЕЙШИМ образом описанов Help CodeVisionAVR.
В курсе просто на каждой странице написано - читайте help,
смотрите другие источники.
т.е. в курс это удочка а не рыба.
Открываешь help и ищешь слова twi и i2c - там все разжевано !
Иван_С » 14 мар 2006, 11:21
А кто такой CodeVision ??? Я WINAVR использую.
И вобщем то у меня лажа в обработчике приреваний, толи он не вызывается толи приревания. Я с приреваниями раньше не работал вот пытаюсь щас разобраться.
avr123.nm.ru » 14 мар 2006, 16:22
Иван_С писал(а):А кто такой CodeVision ???
Эта такая штука чтоб эмбедеру счастье дать чуток.
там на 4-й странице:
Иван_С » 31 мар 2006, 17:44
После команды СТАРТ в регистре TWSR формируется значение (248 "F8")Что это такое, в мануале вроде такова нет.
wolf » 31 мар 2006, 18:37
Есть. Даташит, страница 193.
avr123.nm.ru » 31 мар 2006, 20:41
на 1 странице курса я прочитал, что в ДШ в конце есть таблица всех регистров МК с указанием страниц где о нем рассказывается.
так что не зря я курс прочитал ...
bodja » 01 апр 2006, 23:37
Иван_С писал(а):После команды СТАРТ в регистре TWSR формируется значение (248 "F8")Что это такое, в мануале вроде такова нет.
F8 это промежуточное значение регистра состояния TWSR пока
флаг TWINT=0 то есть пока не будет завершена команда.
D'Ark Trouyan » 03 фев 2008, 18:47
Чтобы получить сообщение от ПК использую интерфейс RS232 и идет он к МК к UART. Теперь надо реализовать ПК-МК с использованием i2c. Програмный код наверняка будет другой, но меня сейчас интерресует вот что: по мимо замены контактов идущих к МК на соответствующие кондакты SDA и SCL (вместо RxD и TxD) требуется ли еще какие-то замены, например в интерфейсе RS232 ??
=DeaD= » 10 фев 2008, 00:05
D'Ark Trouyan писал(а):Чтобы получить сообщение от ПК использую интерфейс RS232 и идет он к МК к UART. Теперь надо реализовать ПК-МК с использованием i2c. Програмный код наверняка будет другой, но меня сейчас интерресует вот что: по мимо замены контактов идущих к МК на соответствующие кондакты SDA и SCL (вместо RxD и TxD) требуется ли еще какие-то замены, например в интерфейсе RS232 ??
Насколько я знаю i2c на RS-232 напрямую не сделать.
Вообще вроде i2c умудрялись сделать на LPT-порте, но в любом случае это не самый удачный вариант.
А зачем вам именно i2c нужен от ПК до МК?