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

 
 
> at45db, не отзывается
alexei_u
сообщение Dec 1 2013, 14:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 10-07-13
Пользователь №: 77 466



Добрый вечер!
at45db не хочет отзываться.
Посылаю через usci-spi запрос на стату занятости и проверки ай-ди,в ответ нули.
Подключил анализатор логики,вот скриншот:
каналы: 0-clk,1-miso,2-mosi,3-CS
Вот скриншот из даташита:

выглядит один-в-один.
По подключению: 5 и 6 нога припаяны,на них 3.5В.через 1к 3.5В на ресет.На 7й ГНД,на 1й-МоСи,2аф-КЛК,8ая-МИСО.
В чем может быть дело?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexei_u
сообщение Dec 5 2013, 18:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 10-07-13
Пользователь №: 77 466



Поразительная вещь:флешка отвечает,но в РХ буффер SPI но не попадает или попадает неверно.
Вот срин с анализатора:

Рамер по-меньше поставил-учусьsm.gif
На самом деле на ноуте нету фотшопа,чтобы ресайз по-человечески сделать.
http://i.imgur.com/h9vIxmK.jpg ссылка на полноразмерный скриншот

Сообщение отредактировал alexei_u - Dec 5 2013, 18:48
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 5 2013, 20:12
Сообщение #3


Гуру
******

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



Цитата(alexei_u @ Dec 5 2013, 21:04) *
Ставлю брейкпоинт и смотрю,что у меня получается от флешки. Данные не свпадаютsad.gif

Коды команд и режим работы SPI сопоставьте так, как оно должно быть.
Цитата(alexei_u @ Dec 5 2013, 21:04) *
ПДФ с даташитом: http://www.atmel.com/images/doc3443.pdf там для чтения тличаются ОП-кды для SPI mode 3 и 0.

Вообще-то Atmel продала производство Dataflash фирме Adesto Technology. Так что datasheet теперь нужно смотреть там => http://www.adestotech.com/products/dataflash
Цитата(alexei_u @ Dec 5 2013, 23:46) *
Поразительная вещь:флешка отвечает,но в РХ буффер SPI но не попадает или попадает неверно.

Нет масштаба на скриншоте. Уменьшите частоту тактирования SPI. Либо немного растяните CS во времени. Возможно у вас длительность CS High Time слишком маленькая.
Цитата(alexei_u @ Dec 5 2013, 23:46) *
Вот срин с анализатора:

Так и не понятно. Вы MODE 0 используете или все-таки MODE 3 решили применить? Если второе, то зачем в начале CS в нуле (активное состояние, кстати) так долго держите? И при переходе CS 0->1 на CLK тоже ноль. Т.е. dataflash в MODE 0 должна перейти при этом.
Цитата(alexei_u @ Dec 5 2013, 23:46) *
Рамер по-меньше поставил-учусьsm.gif

Малоразборчиво. В JPG можно только фотки блондинок размещать sm.gif Времянки лучше в GIF или в PNG сохранять.
Цитата(alexei_u @ Dec 5 2013, 23:46) *
На самом деле на ноуте нету фотшопа,чтобы ресайз по-человечески сделать.

Бесплатную XnView установите. Эта программа не только просмотрщик всяких картинок. Она в т.ч. позволяет и корректировать изображения. А также экспортировать их в разные другие форматы.
Go to the top of the page
 
+Quote Post
alexei_u
сообщение Dec 5 2013, 22:48
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 10-07-13
Пользователь №: 77 466



Большое спасибо за развернутый ответ. Скачал даташит. Переделал скрины.
CS в низком состоянии на самом деле не находится,просто так работает авто-старт в программе анализатора.Переделал автостарт по другому каналу и разбил скрины на два:

Команда на запись в буфер1 в ячейку с адресом 0x00 и запись в него 0xAC


Команда на чтение и плучение из буфера1 из ячейки 0x00 одного байта:


То есть в анализаторе видно,что флешка твечает и возвращает нужный байт,как и предплагается,тлько я его не обнаруживаю в буфере SPI. Сейчас посижу,посмтрю,может,где-то не то время жду.

В регистр контроля SPI записываю:
UCB0CTL0 = UCMST+UCMSB+UCSYNC+UCCKPL+UCCKPH; то есть,мод3,если правильно понимаю. OP-коды,по крайней мере,шлю для установки SPI в мод3.

UPD: Всё стало ок-убрал из строчки UCCKPH.
надо ещё раз разобраться с различными режимами работы SPI. У TI фаза пртивоположна общепринятой?!

Сообщение отредактировал alexei_u - Dec 5 2013, 23:01
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 6 2013, 04:13
Сообщение #5


Гуру
******

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



Цитата(alexei_u @ Dec 6 2013, 03:48) *
То есть в анализаторе видно,что флешка твечает и возвращает нужный байт,как и предплагается,тлько я его не обнаруживаю в буфере SPI. Сейчас посижу,посмтрю,может,где-то не то время жду.

Еще раз предлагаю на время отладки уменьшить частоту тактирования SPI. Также вызывает сомнение, что вы выдерживаете необходимые паузы CS Setup Time, CS Hold Time, CS High Time.
Второй момент. Похоже вы просто пропускаете при чтении требуемые байты. Поскольку передача и прием в SPI идет одновременно, то разумнее было бы читать буфер приемника после передачи каждого байта и складывать эти байты в буфер. Ненужные байты можно игнорировать уже потом, при разборе содержимого буфера. А так, как реализовано сейчас ваша функция чтения f_buf_read не является универсальной. Например, при чтении статуса (opcode=D7h) вслед за opcode вовсе не нужно передавать целых четыре dummy байта. Статус будет прочитан при передаче первого же dummy. Аналогично для команд чтения Manufacturer and Device ID и управления энергосбережением Deep Power-down. См. табличку в datasheet.
Цитата(alexei_u @ Dec 6 2013, 03:48) *
В регистр контроля SPI записываю:
UCB0CTL0 = UCMST+UCMSB+UCSYNC+UCCKPL+UCCKPH; то есть,мод3,если правильно понимаю. OP-коды,по крайней мере,шлю для установки SPI в мод3.

UPD: Всё стало ок-убрал из строчки UCCKPH.

Да, так стало правильно - SPI MODE 3.
Цитата(alexei_u @ Dec 6 2013, 03:48) *
надо ещё раз разобраться с различными режимами работы SPI. У TI фаза пртивоположна общепринятой?!

Стандарта для SPI как такового нет. Поэтому и названия управляющих битов у разных производителей отличаются. SPI это синхронный последовательный интерфейс впервые введенный фирмой Motorola. Однако есть и другие последовательные синхронные интерфейсы. Например, Microwire был разработан National Semiconductor.
Если вы не читали по ссылкам, приведенным мной ранее, то поясняю еще раз, что режимы SPI определяются двум параметрами именуемыми - CPOL(arity) и CPHA(se).
CPOL определяет состояние сигнала CLK в неактивном режиме (до и после передачи). При CPOL=0 до и после передачи (при неактивном уровне) CLK находится в состоянии лог.0 . Соответственно при CPOL=1 CLK имеет лог.1. как неактивный уровень. В модуле USCI логика управляющего бита UCCKPL совпадает с этим определением.
CPHA определяет по какому фронту сигнала CLK биты данных будут выдвигаться (устанавливаться) и защелкиваться (считываться). В зависимости от CPOL это может быть нарастающий или спадающий фронт. При CPHA=0 данные защелкиваются по первому фронту и выдвигаются по следующему фронту. При CPHA=1 данные выдвигаются по первому фронту и защелкиваются по следующему фронту. В модуле USCI логика управляющего бита UCCKPH инверсная по отношению к этому описанию CPHA.
В обоих режимах SPI MODE 0 и SPI MODE 3 данные защелкиваются по нарастающему фронту и устанавливаются синхронно со спадающим фронтом сигнала CLK. Отличаются эти режимы последовательностью выборки-установки и соответственно уровнем CLK в неактивном режиме.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 18:47
Рейтинг@Mail.ru


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