Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/108: Рейтинг темы: голосов - 108, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107

Не проходит инициализация TWI

12.02.2010, 14:00. Показов 20773. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Мучаюсь с TWI
Хочу в учебных целях подключить внешнюю память типа 24C64a

Взял текст программы из уроков DI-Halta.

Процессор МЕГА32
частота - вн. кварц - 8Мгц
Code
1
2
         ldi  temp,0x1c
out  TWBR,temp
Потом переходим на START
Code
1
2
3
4
5
6
IIC_START:   OUTI   TWCR,1<<TWINT|1<<TWSTA|1<<TWEN|0<<TWIE
 
IIC_S:      IN   temp,TWCR
ANDI   temp,1<<TWINT
BREQ   IIC_S      ; Ждем пока передатчик IIC выполнит старт
RET
В результате все вертится между BREQ и IIC_S

Что делать дальше? Ничего не пойму!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2010, 14:00
Ответы с готовыми решениями:

Не проходит инициализация CAN Stm32
Здравствуйте! Использую Cube и STM32F4Discovery пытаюсь наладить CAN шину, но даже не проходит инициализация, пробовал настраивать...

Не проходит инициализация
Приветствую! Изучаю урок https://youtu.be/CpIoHPUyu8s по написанию игры, и тут столкнулся с такой пока не очень понятной проблемкой....

Не проходит инициализация переменной
Всем привет! Есть небольшая проблемка с инициализацией переменной Counts, не могу понять как ее решить... Компилятор выдает ошибку: ...

30
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
12.02.2010, 22:25
Студворк — интернет-сервис помощи студентам
Сейчас выдрал микросхему памяти,
запись все равно проскакивает, а вот на чтении зацикливается...
Попробую параллельным программатором ее зашить и поглядеть что читается...
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
12.02.2010, 22:34
И читаться тоже не должно. Чтение как-то так выполняется
старт-sla/w-адрес-старт-sla/R-читаем-читаем-читаем... нак-читаем-стоп
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
13.02.2010, 00:26
Поборол, но не до конца!
Вот така конструкция РАБОТАЕТ!!!
Но только под Джитагом в пошаговом режиме.
В реале... то совсем не пишет и не читает, то пишет, но не читает!!!
Где-то надо задержки ставить!!!!

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
RTC_WRITE:   RCALL   IIC_START   ; Старт
LDI   temp,0b10100010      ; Загрузили Адрес приемника 0x01 и 0 на запись
RCALL   IIC_BYTE      ; Отослали адрес приемника на запись
LDI   temp, 0x00         ; Загрузили старший адрес ячейки памяти
RCALL   IIC_BYTE      ; Отослали
LDI   temp, 0x00         ; Загрузили младший адрес ячейки памяти
RCALL   IIC_BYTE      ; Отослали
LDi   temp,0x55         ; Загрузили байт 1
RCALL   IIC_Byte      ; Отослали байт 1
LDi   temp,0x77         ; Загрузили байт 2
RCALL   IIC_Byte      ; Отослали байт 2
IIC_WErr:   RCALL   IIC_STOP           ; Стоп
nop
RTC_READ:   RCALL   IIC_START           ; Отослали старт
LDI   temp,0b10100010      ; Адрес приемника 0x01 и 0 на запись
RCALL   IIC_BYTE      ; Отослали
LDI   temp, 0x00         ; Загрузили старший адрес ячейки памяти
RCALL   IIC_BYTE      ; Отослали
LDI   temp, 0x00         ; Загрузили младший адрес ячейки памяти
RCALL   IIC_BYTE      ; Отослали
RCALL   IIC_START      ; Повторный старт
LDI   temp,0b10100011      ; Адрес  приемника, но уже на чтение
RCALL   IIC_BYTE      ; Отослали
RCALL   IIC_RCV      ; Считали  байт 1
IN   tmp1,TWDR         ; Забрали из регистра TWIDR
RCALL   IIC_RCV2      ; Считали  ПОСЛЕДНИЙ байт 2
IN   tmp2,TWDR         ; Забрали из регистра TWIDR
IIC_RErr:   RCALL   IIC_STOP           ; Дали STOP и освободили линию.
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
13.02.2010, 00:50
Все, окончательно определился!
Читает слету, прямо в железе, а вот пишет - только если блока записи поставить Брейк, а потом нажать F5.
Причем процедура Delay, сделанная на 3-х регистрах и вычитании, если я ее вставляю между блоком записи и чтения, даже на 1с. - не помогает.
Вот здесь уже без Гуру не обойтись!
Заранее спасибо!!!
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
13.02.2010, 00:56
Цитата Сообщение от Vtod777
Все, окончательно определился!
Читает слету, прямо в железе, а вот пишет - только если блока записи поставить Брейк, а потом нажать F5.
Причем процедура Delay, сделанная на 3-х регистрах и вычитании, если я ее вставляю между блоком записи и чтения, даже на 1с. - не помогает.
Цитата Сообщение от ArkusB
Ой, а даташит на память кто читать будет????
{}данные-данные-данные...стоп. Потом поллинг, пока там внутри синхронизация происходит, делать ничего нельзя.
Вот здесь уже без Гуру не обойтись!
Заранее спасибо!!!

Дзэнский гуру вам всем на нужен. Чтобы демонстрировал хлопок одной ладонью, и почаще, на.
А если серьёзно, то надо научиться читать.
Читать всё, что написано, а не избирательно, то что понятно.

Даташит тебе нужен а не Гуру.
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
13.02.2010, 01:00
Мне конечно стыдно.... Но поллинг это что??? Типа задержки???
А как ее реализовать????
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
13.02.2010, 01:06
Ди, расскажи товарищу. Я уже спёкся на. Я больше не могу этого вынести, у меня руки на клавиши не попадают.
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
13.02.2010, 01:13
Извините за дурацкие вопросы, больше не буду Вам морочить голову.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
13.02.2010, 03:32
Запись длится доолго. Надо либо задержку, либо опрашивать готовность (поллинг) Если есть, что опрашивать. Например на термометр с памятью опрашивать нечего - нужна задержка 10 мс.
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
13.02.2010, 11:27
Цитата Сообщение от THI BIOST
Запись длится доолго. Надо либо задержку, либо опрашивать готовность (поллинг) Если есть, что опрашивать. Например на термометр с памятью опрашивать нечего - нужна задержка 10 мс.
Разобрался! Ночь длинная!!! -)))
Все работает!
Последний вопрос:
Если я вывожу несколько байтов данных подряд на запись,
мне паузу делать после вывода каждого байта или по окончании всей записи 1 раз???
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
13.02.2010, 13:27
Это в даташите. У всех EEPROM по разному. Кто-то умеет по одному байту, кто-то страницу. Размер и адреса страниц - там же. Я из-за этого геморроя от EEPROM отказался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.02.2010, 13:27

HP CP1025 color инициализация проходит не полностью
Здравствуйте Всем!Всех с наступающим новым годом!Здоровья,Счастья,Удачи!!! Предыстория аппарата,решили ребята почистить место под...

Не проходит инициализация датчика VL53L0X при подключении к Arduino
Здравствуйте, я начинающий в робототехнике. Никак не получается подключить и/к датчик расстояния к ардуинке мега, инициализация не...

Oracle 11g XE & SuSE 10 SP2 - не проходит инициализация базы
Добрый день, коллеги! :) Не так давно пытаюсь разобраться с установкой Oracle 11g Express Edition на Linux (в частности, на SuSE 10 SP2...

Что такое инициализация сегментов или инициализация регистров?
Подскажите, что такое инициализация сегментов или инициализация регистров? Вот строчка программы из ассемблера: mov Ax, DATA mov DS, AX

TWI
Всем привет) Подскажите, пожалуйста, ошибку. Сразу скажу, сам искал, читал, ни чего не нашел, только на Вас надежда))) Пишу в Atmel Studio6...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru