реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> TWI и AT24, крыша едет
beer_warrior
сообщение Jul 31 2006, 17:59
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Записываю в АТ24 конфигурацию через УСАРТ:
Код
memcpy(&prg,&rx_buf[1],sizeof(set.prg));   // это текущие параметры
AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
tx_buf[0] = ANSWER_OK;
SendFrame(&tx_buf[0],1);

При записи 1,2,3...
Читаеться С1,С2,С3 или Е1,Е2,Е3... (Зависит от фазы Луны)
Проверяю:
Код
memcpy(&prg,&rx_buf[1],sizeof(set.prg));   // это текущие параметры
memset(&prg,0x55,512);
AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
tx_buf[0] = ANSWER_OK;
SendFrame(&tx_buf[0],1);


Возвращает 0х55, к процедуре записи претензий нет...
Наверное косяки в УСАРТе?
Код
memcpy(&prg,&rx_buf[1],sizeof(set.prg));   // это текущие параметры
//memset(&prg,0x55,512);
//AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
//tx_buf[0] = ANSWER_OK;
SendFrame((BYTE*)&prg,512);

Возвращает нормальное эхо.

Что бы это значило?
В других местах процедуры записи в АТ24 пашут нормально.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 31 2006, 21:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Я не понял что за процедуры AT24_Write и SendFrame? Это какие-то стандартные из библиотеки компилятора что вы не привели их код? Если так, то из какого именно компилятора? В них наверное реализовано выравнивание по адресам и фрагментирование на размер буфера записи AT24? Иначе как вы пишете за раз массив размером больше, чем буфер записи в м/с EEPROM?

Сообщение отредактировал rezident - Jul 31 2006, 21:46
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Aug 1 2006, 02:19
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
Я не понял что за процедуры AT24_Write и SendFrame?

Самописные, но к SendFrame вопросов нет, пашет как часики.
AT24_Write это немножко подрихтоанная из BasicTWI - добавлен аргумнет адрес устройства. Интересно другое - почему данные проинициализированные в устройсте пишуться нормально, а полученные извне - бьются? Абсолютно точно установлено - УСАРТ не причем, копия в памяти нормальная.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
sgrig
сообщение Aug 2 2006, 04:48
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-11-05
Из: Tomsk
Пользователь №: 10 464



Я чего-то не догоняю, про что речь: TWI или USART?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016