Перейти к содержанию
    

Привет.

Работал ли кто-нибудь с SD NAND, а конкретно китайскими - Zetta ZDSD01G ? Может есть какие-то тонкости/нюансы в использовании?

По описаниям и инфе из сети, просто подключается к SDIO вместо SD-карточки и все.

Но у меня возникла проблема - работает только в 1-битном режиме, в  4-х битном зависает при инициализации.

Проц F407, подтяжки 10К, кварц 24МГц, тактовая 144МГц. Ничего кроме флешки и ст-линка к нему не подключено (ну еще USB, но он не проинициализирован, сейчас от него только питание берется). От проца до чипа - сантиметра 3.

Внутри сейчас FatFs (потом будет еще MSD через USB), в 1-битном режиме инициализируется, форматируется, файлы пишутся/читаются (правда пробовал только коротенькие, на сотню байт).

Прогу для проверки калокубом сгенерировал. Пробовал снижать тактовую процу (до 32МГц), а также SDIO (понижал до  300кГц), пофиг - все равно в 4-х битном виснет на ините.

 

P.S. Я делал как-то в 4-битном на L476 с обычной карточкой, проблем небыло.

Делал много лет назад на F407 в 1-битном, т.к. одна из ног, нужных для 4-х бит была намертво занята другим, а скорость мне там не требовалась. Тоже проблем небыло.

А вот на F407 я в 4-х битном никода не делал, оно вообще работет?

 

Спасибо.

 

P.P.S. Если где-то уже обсуждалось - ткните пальцем, плиз.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/17/2024 at 10:51 AM, Allregia said:

SD NAND

А что это за устройство такое ?
Чем оно отличается от общеупотребимых SD карт ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 minutes ago, Allregia said:

Привет.

Работал ли кто-нибудь с SD NAND, а конкретно китайскими - Zetta ZDSD01G ? Может есть какие-то тонкости/нюансы в использовании?

По описаниям и инфе из сети, просто подключается к SDIO вместо SD-карточки и все.

Но у меня возникла проблема - работает только в 1-битном режиме, в  4-х битном зависает при инициализации.

Проц F407, подтяжки 10К, кварц 24МГц, тактовая 144МГц. Ничего кроме флешки и ст-линка к нему не подключено (ну еще USB, но он не проинициализирован, сейчас от него только питание берется). От проца до чипа - сантиметра 3.

Внутри сейчас FatFs (потом будет еще MSD через USB), в 1-битном режиме инициализируется, форматируется, файлы пишутся/читаются (правда пробовал только коротенькие, на сотню байт).

Прогу для проверки калокубом сгенерировал. Пробовал снижать тактовую процу (до 32МГц), а также SDIO (понижал до  300кГц), пофиг - все равно в 4-х битном виснет на ините.

 

P.S. Я делал как-то в 4-битном на L476 с обычной карточкой, проблем небыло.

Делал много лет назад на F407 в 1-битном, т.к. одна из ног, нужных для 4-х бит была намертво занята другим, а скорость мне там не требовалась. Тоже проблем небыло.

А вот на F407 я в 4-х битном никода не делал, оно вообще работет?

 

Спасибо.

 

P.P.S. Если где-то уже обсуждалось - ткните пальцем, плиз.

 

 

 

Wide Bus (4 bit bus width) operation mode may be selected/deselected using ACMD6. The default bus
width after power up or GO_IDLE (CMD0) is 1 bit bus width.
In order to change the bus width two conditions shall be met:
a) The card is in ‘tran state‘ (no data is transferred).
b) The card is not locked
A locked card will responds to ACMD6 as illegal command.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ZDSD01GLGEAG.pdf

1 hour ago, dimka76 said:

Чем оно отличается от общеупотребимых SD карт ?

По идее, ничем не долно отличаться.

Ну кроме того, что это просто микросхема а не карточка в разъеме.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Allregia сказал:

По идее, ничем не долно отличаться.

Ну в положительную сторону отличается, по описанию там SLC NAND и инд. темп. диапазон.

4 часа назад, Allregia сказал:

Делал много лет назад на F407 в 1-битном, т.к. одна из ног, нужных для 4-х бит была намертво занята другим, а скорость мне там не требовалась. Тоже проблем небыло.

А вот на F407 я в 4-х битном никода не делал, оно вообще работет?

А точно SD режим, а не SPI?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, настроено все на SDIO.

Что-то там "не то" - попробовал вместо чипа обычную карточку поставить - тоже самое.

В 1-битном работает прекрасно, и FatFs и MSD, включаю4-х битный - виснет.

Дальше пока  не разбирался, другим занят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, Allregia сказал:

Но у меня возникла проблема - работает только в 1-битном режиме, в  4-х битном зависает при инициализации.

21 минуту назад, Allregia сказал:

В 1-битном работает прекрасно, и FatFs и MSD, включаю4-х битный - виснет.

Имхо - Вы почему-то считаете "1-битный режим" и "SPI режим" - синонимами. Это не так. SDIO тоже может быть однобитным.

В спецификации "SD Specifications" сказано:

Цитата

SD bus allows dynamic configuration of the number of data lines. After power up, by default, the SD
Memory Card will use only DAT0 for data transfer. After initialization the host can change the bus width
(number  of  active  data  lines).  This  feature  allows  easy  trade  off  between  HW  cost  and  system
performance. Note that while DAT1-DAT3 are not in use, the related Host's DAT lines should be in
tri-state (input mode). For SDIO cards DAT1 and DAT2 are used for signaling.

Это из раздела, описывающего режим работы "SD Bus".

Т.е. - по дефолту SD-режим будет также 1-битным.

 

Или это у вас в 1-битном SDIO - работает, а в 4-битном SDIO - нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, jcxz said:

Имхо - Вы почему-то считаете "1-битный режим" и "SPI режим" - синонимами.

Где  такое говорил?!

6 minutes ago, jcxz said:

SDIO тоже может быть однобитным.

Разумеется, именно он у меня и работает.

6 minutes ago, jcxz said:

Или это у вас в 1-битном SDIO - работает, а в 4-битном SDIO - нет?

Да.

Собственно он не виснет а улетает в ошибку:

  hsd.Instance = SDIO;
  hsd.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING;
  hsd.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE;
  hsd.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;
  hsd.Init.BusWide = SDIO_BUS_WIDE_4B;//SDIO_BUS_WIDE_1B;
  hsd.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
  hsd.Init.ClockDiv = 16;//0;
  if (HAL_SD_Init(&hsd) != HAL_OK)   //  <<<<<<<  это проходит
  {
    Error_Handler();
  }
	if (HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B) != HAL_OK)
  {
    Error_Handler();  // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<  вот сюда.
  }
	

Завтра уже буду разбираться, если на дргуое не отвлекусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А с разводкой то по плате все в порядке? Для 4-битного режима при трассировке надо выравнивать задержки по сигналам, а также волновое должно быть близким к 50 омам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно конечно, но обычно на таких частотах, да на расстоянии в пару сантиметров - дожно быть пофиг там задержки и волновое.

На L467 вообще было сантиметров 5, и все работало.

Я выше писал что понижал тактовую до нескольких сот килогерц, и при этом ничего не изменилось. Уж при такой-то частоте точноне до 1 должно "задержек и волнового".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Allregia said:

Уж при такой-то частоте точноне до 1 должно "задержек и волнового".

Если есть проблемы с целостностью сигнала, то и на 1кГц может сломаться. Не едва ли дело в этом, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А речь случаем не за eMMC? По интерфейсу я имею в виду. Флаер нагуглил, но ничего не понятно в нём.

Изменено пользователем HardWareMan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 часа назад, Allregia сказал:

Да.

Собственно он не виснет а улетает в ошибку:

Значит пора откладывать в сторону Кал и садиться читать мануал на SDIO в МК и мануал по процедуре инициализации SD.

И реализовывать инициализацию самостоятельно, не надеясь на индусов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 часа назад, Allregia сказал:

Уж при такой-то частоте точноне до 1 должно "задержек и волнового".

В плане волнового сопротивления при малых длинах -- да, а вот в плане выравнивания - не факт. Для низкоскоростного режима в SDIO, помнится, ограничение <100pS, или приблизительно 1,5см и от суммарной длинны оно ни как не зависит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, vladec said:

Для низкоскоростного режима в SDIO, помнится, ограничение <100pS, или приблизительно 1,5см и от суммарной длинны оно ни как не зависит.

Откуда такие цифры? 100pS при периоде клока 40nS?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...