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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Непонятная работа AT45DB161D
IF_P
сообщение Mar 26 2011, 18:01
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



Так я ведь написал, что все нормально работает, если использовать прерывание UART. Я так и планирую работать.
Но вот в тестовой программе для простоты написал обмен с UART по опросу флага и возникли проблемы.
Просто хочется разобраться и найти причину, то ли с UARTом что-то, то ли с AT45. Ведь всякое в дальнейшем может быть.

P.S.

Вот только-что еще попробовал.
Если после инициализации SPI ("*" "3") ввести команду чтения р-ра состояния ("*" "9") , получаю как и положено 0xAC, а после следующей команды записи-чтения буфера ("Shift" "1") тоже получаю 31 байт.

Сообщение отредактировал IF_P - Mar 26 2011, 22:37
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Mar 26 2011, 19:05
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Опять вы все смотрите через терминал, одних граблей вам мало, загадочные "*" и "Shift" говорят о том что у вас как минимум 2 промежуточных звена возможных ошибок. У вас есть (судя по схеме) кнопки, дисплей, для проверки больше и мечтать не о чем - заведите команды на кнопки и смотрите ответы на дисплее (если конечно они работают :-) ).
Go to the top of the page
 
+Quote Post
SysRq
сообщение Mar 26 2011, 21:47
Сообщение #18


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(IF_P @ Mar 19 2011, 17:28) *
Вот выкладываю тестовый пример. Проект в IAR 4.30A...
Возможно, ошибка из-за того, что вы путаете & и &&.

Такая вот конструкция делает совсем не то что задумано:
Код
while (!(UCSR1A && (1 << UDRE1)));
Go to the top of the page
 
+Quote Post
IF_P
сообщение Mar 26 2011, 22:47
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



Цитата(SysRq @ Mar 26 2011, 23:47) *
Возможно, ошибка из-за того, что вы путаете & и &&.

Такая вот конструкция делает совсем не то что задумано:
Код
while (!(UCSR1A && (1 << UDRE1)));

Да, действительно. Ошибка именно в этом. Только-что проверил.
Но как эта конструкция появилась у меня ума не приложу. Я прекрасно понимаю как работают обе конструкции.
И применял я их не раз. Да и тут я ставил из datasheet:


/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;

Откуда взялось "&&" - sad.gif
Этот оператор был настолько очевиден, что я даже не присматривался к нему, а искал ошибку в другом месте.

Как сказал К.Прутков:
"Если увидишь на клетке слона надпись буйвол - не верь глазам свои!"

Видимо, по ночам надо меньше работать. wub.gif

Еще раз Большое спасибо SysRq a14.gif
Ткнули носом в элементарную ошибку.

Буду работать дальше, но, видимою уже не сегодня. smile3046.gif




Цитата(M_Andrey @ Mar 26 2011, 21:05) *
Опять вы все смотрите через терминал, одних граблей вам мало, загадочные "*" и "Shift" говорят о том что у вас как минимум 2 промежуточных звена возможных ошибок. У вас есть (судя по схеме) кнопки, дисплей, для проверки больше и мечтать не о чем - заведите команды на кнопки и смотрите ответы на дисплее (если конечно они работают :-) ).


Опять повторюсь. (cм. пост выше) Все прекрасно работает и выводится на терминал, но при использовании прерывания UART. И так я буду работать с AT45. На этом я бы мог закончить и идти дальше. Но не хочется оставлять темных пятен (привычка). Конечно, это отнимает время. Но не наступая на "грабли" не приобретаешь опыт. wink.gif

P.S.

Да, у меня есть и клавиатура и дисплей. И я их использую для наладки на определенных этапах. Но куда удобнее использовать UART. Ведь выводить 528 байт из буфера или страницы на LCD не очень удобно. Тем более, что работу AVR с UARTом я проверил на макетке.

Сообщение отредактировал IF_P - Mar 26 2011, 22:59
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Mar 6 2012, 06:19
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Здраствуйте, у меня проблема с AT45DB161D, никак не реагирует на воздействия, не могу добиться от неё ответа. Смотрю осцилом посылка как по даташиту идёт, например запрос ID: посылка 9F и несколько байт в догонку, по идее на этой догонке она и отвечать должна, а результата нету. Посылаю предварительно AB, для перевода в активный режим. Может память таво? Использую плату TE-TMS320F28335, или на ней чевото криво впаяли.
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 6 2012, 07:07
Сообщение #21


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



А режим SPI правильный? Она только 2 из 4х возможных поддерживает.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Mar 6 2012, 08:51
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Говорюже смотрю осциллом, как не крути, а диаграмму не подресуешь. Нашёл проблему. Плата неправильно спаяна, уже выяснил что на первой ревизии этот косяк был.
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Mar 7 2012, 09:24
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



А такой вопрос, в память миную буфер записывать через опкод 82H можно и также читать через D2H?
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 7 2012, 09:26
Сообщение #24


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Я уже давно с ними не работал, если есть нужный опкод и есть в этом необходимость, то почему нет?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 02:54
Рейтинг@Mail.ru


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