Пост N: 313
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 01.08.07 16:18. Заголовок: Re:
Возник небольшой вопросик по I2C, для приемника важны лишь только активные перепады импульсов стробирования? Опустим тему старт стоповых бит, с ними все предельно ясно. Мне важнее знать что приемнику все равно что на линии SCL, кроме как при нуле только могут меняться данные? И еще по спецификации этой шины я могу передавать сколь угодно много байтов, после того как выполнится условие старта и первый байт с адресом микросхемы будет уже передан? Работаю не с памятью, есть отличия незначительные, но интерфейс тот же.
Пост N: 314
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 04.08.07 20:49. Заголовок: Re:
А есть у кого нибудь подпрограмма реализации I2C программно? Чтобы передал ей байт нужных данных а она сама отправила их и ждала подтверждения. Просто надо реализовать ее, но основная прога еще совсем не готова, надо дописывать и отлаживать. Нужно просто не грузясь воткнуть ее в основную программу. И кстати никто не имел дела с TDA7313? как с ней общаться? Мне в основном по даташиту все понятно, но мало ли что, пока еще дело до нее не дошло, дописывается и отлаживается основная прога.
Пост N: 160
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 05.08.07 09:47. Заголовок: Re:
Алексей, подпрограмму передачи данных по I2C можете посмотреть в моем синтезаторе на SAA1057. Можно реализовать передачу и по другому:
;*********************************************************************************************** ; п/п I2C ;*********************************************************************************************** I2C rlf Temp, f ; Сдвиг влево регистра Temp btfsc STATUS, C ; Выводимый бит равен 1? goto PIN_HI ; Да, выводим 1 bcf PORTA, SDA ; Нет, SDA => 0 goto PIN_LO ; Вывод 0 PIN_HI bsf PORTA, SDA ; SDA => 1 PIN_LO call SCL_ ; Тактирующий импульс под бит данных decfsz Byte, f ; Вывели все биты? goto I2C ; Нет, продолжим... return ; Возврат из п/п ;*********************************************************************************************** ; п/п формирования импульса CLK ;*********************************************************************************************** SCL_ bsf PORTA, SCL ; SCL => 1 nop ; bcf PORTA, SCL ; SCL => 0 return ; Возврат из п/п ;***********************************************************************************************
Данные для передачи в м/сх загружаете в регистр Temp, количество бит в регистр Byte. Загрузка данных в TDA7313 производится по 3 байта, причём после каждого байта нужно сделать опрос подтверждения ACK. Я так мыслю, что проверку подтверждения ACK можно пропустить. Просто на этот момент сформировать паузу (кстати в это время Вы можете загрузить следующий байт в Temp). Перед п/п I2C не забудьте на линии SDA установить лог.0, в то время когда на линии SCL лог.1 (условие старта).
Пост N: 316
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 05.08.07 20:04. Заголовок: Re:
На 16F628A, других под рукой нет, в смысле с SSP, а 876А запихивать ну очень неохота. Кстати, еще не в курсе, TDA7313 нужно еще что - нибудь кроме: по даташиту вычитал что сначала отправляется байт, с его помощью микросхема понимает что домогаются ее, а потом уже один байт данных сразу, в котором зашифровано что регулировать и как. И можно ли считать с нее настройки? или здесь только можно записывать в микросхему. Пожалуй это все что мне пока не понятно, допишу и отлажу основную программу, буду ковырять интерфейс.
Пост N: 162
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 05.08.07 22:16. Заголовок: Re:
Я этой м/сх не занимался. Судя по даташиту могу сказать следующее: 1. Первым передаётся адрес (1 байт), который запихиваем в TDA7313 после выполнения условия старта (см. выше). Насколько я понял, все биты байта равны нулю... 2. Внутри корпуса TDA7313 находится 8 "девайсов" (Volume control, Speaker ATT LR, -//- RR, -//- LF, -//- RF и т.д). Передачей второго байта выбираем девайс, которым хотим управлять... 3. Собственно выбор уровня + выполнение условия STOP... Судя по BLOCK DIAGRAM, в неё можно только запихнуть данные...
Пост N: 317
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 05.08.07 23:08. Заголовок: Re:
Почти так. Насколько я понимаю то первый байт 10001000 этот, а со вторым кстати говоря я как то не так понимал, ведь действительно одним байтом сразу выбрать и устройство и регулировку не получится скорее всего, нужно еще два байта. Если это так то придется программу переписывать здорово, я неверно понимал смысл. Хотя возможно что и одним байтом передается? или все таки это невозможно.
Пост N: 318
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 05.08.07 23:13. Заголовок: Re:
Кстати, только что пересмотрел еще раз даташит и все таки устройство выбирается и его регулировка передается одним байтом, там даже пример есть, да и старшие два бита могут однозначно идентифицировать устройства, а следующие 1 или 2 бита уже распознают устройства внутри группы. Даташит на нее какой то не очень подробный. Да и про предварительную настройку ничего не сказано. Хотя бы написали что она не требуется.
Пост N: 319
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 06.08.07 20:43. Заголовок: Re:
Я тоже отпадаю, особенно с регулировкой BASS и TRABLE. Ну совсем не то нужно выводить на индикатор, что в регистрах, вроде бы сейчас попридумал кое что, седня попытаюсь реализовать.
Пост N: 219
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 06.08.07 21:19. Заголовок: Re:
Работал с TDA8425, небольшие отличия, но почти полный аналог. Сейчас так просто не вспомню, но можно посмотреть что осталось. А под Вашу м/с есть готовые программы (84 и 628 ПИКи). Если интересно могу поискать и скинуть.
Пост N: 320
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 06.08.07 22:20. Заголовок: Re:
Можно конечно, да и у меня они где то завалялись. Только не очень охота по дисассемблеру в чужой проге копаться, да и по исходнику трудно будет разобраться. Проще свою нарисовать, хотя если есть исходники их можно глянуть.
Пост N: 324
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 08.08.07 20:34. Заголовок: Re:
Извиняюсь, пошла загрузка как только включил картинки. Без них вообще данные страницы не загружаются. А что там по TDA7313? Даташит на английском у меня есть, страниц на 15, по нему собственно и разбираюсь.
Пост N: 303
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 20.09.07 19:37. Заголовок: Re:
Сейчас пытаюсь собрать устройство, управляемое по I2C (Slave), на МК. "Непонятки" возникли с формированием бита ACK. Девайс будет работать только в режиме записи, поэтому и все в/у ACK должен формировать именно он. Пока сделал так. Начало формирования ACK - по переднему фронту 9-го импульса SCL, окончание - по заднему. Понятно, что для формирования стоп-условия такое не годится. Поэтому введён таймер. Если за положенное время не появляется задний фронт SCL, формируется окончание ACK. Такое решение меня совершенно не устраивает, поскольку интерфейс получается ограничен по скорости, как сверху, так и снизу. Чувствую, что чего-то недопонял в формировании ACK. Проясните, плиз! И ещё. При прочтении даташитов, совершенно не понял, в отличие от остальных модулей, как работать с MSSP?
Пост N: 276
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 21.09.07 12:45. Заголовок: Re:
Не забыл. Вот здесь то, по чему разобрался я (а значит может разобраться каждый): http://www.rapidshare.ru/409173 вот здесь описание от А.Торреса: http://www.rapidshare.ru/409174 а вот здесь подробное описание (Б.Ю.Семенов "Шина I2C в радиотехнических конструкциях"): http://www.rapidshare.ru/409175 ну а в рассылке от КЕА все вышеприведенное разобрано на атомарном уровне.
Пост N: 315
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 21.09.07 14:10. Заголовок: Re:
Alberto, Рапидшара у меня не работает совершенно, а рассылку я уже перечитал не один раз. Более того. "Выдрал" основные тезисы и диаграммы, и сходил, распечатал на цветном лазерном принтере. Но данный вопрос так и остался.
Сперва небольшое уточнение. Формирование ACK, у меня, МК начинает не по фронту 9-го тактирующего импульса (как говорил ранее), а по спаду 8-го. Далее рассуждаю так. Если принимаемый байт не последний, и стоп-условие формироваться не должно, то ACK должен закончиться после спада 9-го импульса. Соответственно, МК ждёт этот спад, и, по его наступлении, "отпускает" ACK. Далее. Если байт последний, и должно формироваться стоп-условие, никакого спада 9-го импульса не будет, и, при в/у алгоритме, ACK "зависнет". Для того, что бы этого избежать, ввожу дополнительный таймер, который, через определённое время, принудительно сбрасывает ACK. Где я, что напутал? Если же всё правильно, то, в этом алгоритме мне не нравится, что это самое "определённое время" должно быть довольно большим, что бы обеспечить минимальную частоту шины. В результате чего, формирование стоп-условия получается довольно продолжительным.
Что же касается аппаратного MSSP, то, это - единственный (пока, во всяком случае) модуль ПИКов, про котрый, я из даташита, ну, ва-а-аще ничего не понял. Что - куда загружать, какие флаги - где опускать/поднимать?
Пост N: 252
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 21.09.07 14:29. Заголовок: Re:
Dmitry Dubrovenko пишет:
цитата:
Что же касается аппаратного MSSP, то, это - единственный (пока, во всяком случае) модуль ПИКов, про котрый, я из даташита, ну, ва-а-аще ничего не понял. Что - куда загружать, какие флаги - где опускать/поднимать?
А рассылку от КЕА "Обмен информацией и идеями" Вы получаете? Там была моя наработка по модулю MSSP (режим I2C) PIC18F252 (452) со всеми необходимыми комментариями. Правда описан режим Master. Но понять, как перейти в Slave, можно посмотрев дш.
Пост N: 279
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 21.09.07 14:41. Заголовок: Re:
Dmitry Dubrovenko пишет:
цитата:
Рапидшара у меня не работает совершенно
сейчас перезалью на http://up-file.com. Что же касается аппаратного MSSP, то см. выше, сам с ним пока что не работал, хватает тех наработок что были сделаны когда-то. В каком именно месте у Вас проблемы с АСК при передаче или при приеме? Если при передаче (АСК не поступает от ведомого), то я сделал так: просто подаю команду СТОП и повторяю передачу, а при приеме сам МК формирует данный сигнал, так что проблем быть не должно.
Пост N: 321
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 21.09.07 18:57. Заголовок: Re:
RW1ZK пишет:
цитата:
MSSP(режим I2C) PIC18F252 (452)
А это, к PIC16-м подойдёт? От MSSP мне как-раз Мастер и нужен пока.
Alberto пишет:
цитата:
В каком именно месте у Вас проблемы
Да у меня не проблемы, а просто алгоритм не нравится. А МК, у меня, должен работать Слэйвом, и только в режиме записи. Почему у меня по в/у ссылкам переправляют на какой-то другой сайт, и предлагают скачать какую-то инсталяшку?
Пост N: 282
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 21.09.07 19:30. Заголовок: Re:
Dmitry Dubrovenko пишет:
цитата:
МК, у меня, должен работать Слэйвом, и только в режиме записи.
у меня такого небыло, т.е. МК всегда был мастером. Dmitry Dubrovenko пишет:
цитата:
меня по в/у ссылкам переправляют на какой-то другой сайт
весь трафик занят (начало появляться в последние месяца два), надо зайти по-позже, или могу пезезалить куда Вам лучше (только не на слил.ру, скорость у них...)
Пост N: 254
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 21.09.07 20:29. Заголовок: Re:
Dmitry Dubrovenko пишет:
цитата:
А это, к PIC16-м подойдёт?
Регистры и протокол в PIC16F873(874, 876, 877) и PIC18F252(452) похожи. Такое впечатление, что производитель просто скопировал модуль MSSP из PIC16F877 и воткнул его в PIC18F252(452). Да и разница между PIC16F877 и PIC18F252 только в отсутствии переключаемых банков памяти и наличии сплошного адресного пространства в последнем. Удобно с точки зрения, что нет необходимости задумываться, в каком банке находишся. Так что дерзайте!
Пост N: 283
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 21.09.07 20:53. Заголовок: Re:
RW1ZK пишет:
цитата:
Да и разница между PIC16F877 и PIC18F252 только
плюс 37 дополнительных команд, несчитая других наворотов. RW1ZK пишет:
цитата:
нет необходимости задумываться, в каком банке находишся
я для облегчения жизни основную программу оставил в нулевом банке, все п/программы разместил в первом банке, все п/программы обработки меню - во втором банке. Надо обратиться к п/программе - значит первый банк, если идет работа с меню, то второй банк. Хотя согласен, жизнь это портит здорово, особенно с непривычки.
Пост N: 124
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг:
0
Отправлено: 18.02.08 10:33. Заголовок: Добрался до разборок..
Добрался до разборок с I2C - появилась необходимость работать с МС памяти. Вопрос "молекулярный":
Электрический конфликт при переводе линии SDA контроллера после контроля ACK с приёма на передачу. Возникло у меня предположение, что 24Cxx прекращает шунтировать линию SDA по спаду 9-го импульса на SCL(должны же были разработчики протокола обратить внимание на этот конфликт). Может кто уже знает так это или нет?
Пост N: 53
Зарегистрирован: 18.11.08
Откуда: Россия, г.Уфа
Рейтинг:
0
Отправлено: 22.03.09 12:30. Заголовок: Проблемка с чтением ..
Проблемка с чтением 24C64.
При записи задаем адрес первого байта и пишем массив в, пределах страницы, до 32 байт (адрес ячейки увеличивается автоматом). Далее все сначала.
При чтении задаем адрес первого байта и читаем массив. Вопрос: Сколько байт можно считать? (Имею ввиду массив, а не чтение от текущего адреса, т.е. без стоп - старта)
Все даты в формате GMT
3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет