roboforum.ru

Технический форум по робототехнике.

Согласование уровней / Развязка / SDCard

Согласование уровней / Развязка / SDCard

HarryStar » 22 дек 2010, 11:45

Подключаю к своему детищу SD Карту.
Вопросов 3:
1) Схема отлично работает как от 3.3В, так и от 5В. Хотя везде написано, что SD карта от 5В неработает. Есть опасность что она сгорит? Мне нужно чтоб МК питался от 5В. Так ли обязательно делать 3.3 на карту?

2) Т.к. карта подключена к тем же проводкам, что и программатор "5 проводков", то для программирования карту приходится вынимать, иначе идут ошибки при прошивании. Как можно развязать это дело, чтоб не передергивать карту?

3) Без согласования уровней (см пункт 1) все прекрасно работает. Пробую питать мк 5в, карту 3.3в и согласовывать уровни резистором 10к и стабилитроном на 3.3 - получается "ошибка инициализации диска". В чем может быть проблема? и как лучше сделать? Читал форум, некоторые делают просто резистивным делителем 3к+2к.

Re: Согласование уровней / Развязка / SDCard

=DeaD= » 22 дек 2010, 12:00

Схема согласования 3.3В и 5.0В для SD-карт есть тут: http://www.sparkfun.com/products/9802

Re: Согласование уровней / Развязка / SDCard

Michael_K » 22 дек 2010, 12:32

HarryStar писал(а):Есть опасность что она сгорит? Мне нужно чтоб МК питался от 5В. Так ли обязательно делать 3.3 на карту?

да. да.
HarryStar писал(а): Как можно развязать это дело, чтоб не передергивать карту?

поставить в середину буфер с третьим состоянием (но по-моему дергать карту проще :) )
HarryStar писал(а):Пробую питать мк 5в, карту 3.3в и согласовывать уровни резистором 10к и стабилитроном на 3.3 - получается "ошибка инициализации диска". В чем может быть проблема?

уменьшите резистор ом до 470
HarryStar писал(а):Читал форум, некоторые делают просто резистивным делителем 3к+2к.

можно, но
1. слегка ограничивает скорость.
2. из 3.3 сделать 5 не получится (впрочем как и стабилитронами).

Правильно для этих целей использовать специальные микросхемы -
их сейчас многие делают, гуглить "level translator"

Re: Согласование уровней / Развязка / SDCard

Myp » 22 дек 2010, 14:57

прошивать надо через бутлоадер :)
USB шнурок ну или на крайняк по усарту лить.

Re: Согласование уровней / Развязка / SDCard

HarryStar » 22 дек 2010, 15:21

Michael_K писал(а):уменьшите резистор ом до 470

Номинал 10к я взял из mmc.h там схема подключения текстом была вот такая
Код: Выделить всёРазвернуть
     _________________
    /  1 2 3 4 5 6 78 |
   / 9                |   1 - CS   (chip select)          <- SS
   |    SD/MMC Card   |   2 - DIN  (data in, card<-host)  <- MOSI
   |                  |   3 - VSS  (ground)               -- ground
   |                  |   4 - VDD  (+3.3V)             -- power
   |                  |   5 - SCLK (data clock)           <- SCK
   |                  |   6 - VSS  (ground)               -- ground
   |                  |   7 - DOUT (data out, card->host) -> MISO
   |                  |    SD card only:
   |                  |    8 - not used in SPI, mode must be pulled up
   |                  |    9 - not used in SPI, mode must be pulled up
   |__________________|
   
   5V logic to 3.3V:
   
5V >-|R1|--+-->  3.3V
           |              R1    - 10k
           ^ VD1          VD1   - BZX55C3V3
           |
          ---
         GND

попробую уменьшить резистор
HarryStar писал(а):Читал форум, некоторые делают просто резистивным делителем 3к+2к.

Michael_K писал(а):можно, но
1. слегка ограничивает скорость.
2. из 3.3 сделать 5 не получится (впрочем как и стабилитронами).


1. Почему? Я думал всякие буферные элементы могут ограничивать скорость, но никак не резисторы.
2. Там и не надо, лог 1 от 3.3в мк с питанием 5в отлично понимает, а вот наоборот получается плохо.

Re: Согласование уровней / Развязка / SDCard

Michael_K » 22 дек 2010, 16:23

0.
HarryStar писал(а):Номинал 10к я взял из mmc.h там схема подключения текстом была вот такая

Да где вы эти схемы откапываете-то, блин? кто их рисует? голова должна быть или как?

Стабилитрон начинает работать при единицах миллиампер
(ну... типичный... а тем более такой... поганенький как bzx55 )
У вас он должен якобы работать при (5V-3.3V)/10k = 170 микроампер...
Это на порядок меньше штатного режима.
Что там на стабилитроне в результате, думаю даже производитель не скажет
(у стабилитронов разбросы параметров огромные).

HarryStar писал(а):
Michael_K писал(а):1. слегка ограничивает скорость.
Почему? Я думал всякие буферные элементы могут ограничивать скорость, но никак не резисторы.

Потому что емкости между всем и всем никто не отменял.
Пусть у вас на ноге карточки висят паразитные 10 пикофарад... Берете резистор 10 килоом - получаете постоянную времени R*C = 100 наносекунд - то есть про 10 мегагерц сразу забываем...
Буферные элементы вносят задержки, а не валят фронты. Загнал на вход 10 мегагерц - получил с выхода 10 мегагерц, пусть с задержкой, но красивые квадратные (это грубо, но суть такая примерно).

HarryStar писал(а):2. Там и не надо, лог 1 от 3.3в мк с питанием 5в отлично понимает, а вот наоборот получается плохо.

да ради бога :)

Re: Согласование уровней / Развязка / SDCard

HarryStar » 24 дек 2010, 11:15

Michael_K писал(а):Да где вы эти схемы откапываете-то, блин? кто их рисует? голова должна быть или как?

Ну была бы голова, не спрашивал бы.

Замена резисторов на 510 Ом помогла, все заработало, спасибо.

Re: Согласование уровней / Развязка / SDCard

Michael_K » 24 дек 2010, 15:34

Да не за что...

HarryStar писал(а):
Michael_K писал(а):Да где вы эти схемы откапываете-то, блин? Голова должна быть или как?

Ну была бы голова, не спрашивал бы.


Ну, извините, если грубо прозвучало. Это не лично к вам относилось.
Просто "наболело" - это же не в первый раз.
Кто-то рисует кривую схему, и она по инету расползается...
Такое ощущение, что все тупо копируют,
никто даже не пытается проверить или осмыслить.

Re: Согласование уровней / Развязка / SDCard

Myp » 24 дек 2010, 17:35

Michael_K писал(а):никто даже не пытается проверить или осмыслить.

99% интернета именно по аткому принципу и работает :D

Re: Согласование уровней / Развязка / SDCard

Michael_K » 24 дек 2010, 18:04

Ну что тут скажешь - молодцы, так держать. Меньше народу - больше кислороду.
Только не надо потом на форумах плакать, что ничего не работает.

Добавлено спустя 6 минут 2 секунды:
Самое прикольное, что они даже программы так пишут.
И даже "теорию" подвели и умных слов придумали - "реюзибл", типа.
Копируют баги, копируют морально устаревшие и просто ненужные куски.
И гордятся тем, что баги их становятся "кроссплатформенными".

Осознать каждую строчку? Зачем? Этим пусть индусы занимаются.

Re: Согласование уровней / Развязка / SDCard

Marvin » 01 окт 2012, 00:24

Michael_K писал(а):
HarryStar писал(а):
Michael_K писал(а):1. слегка ограничивает скорость.
Почему? Я думал всякие буферные элементы могут ограничивать скорость, но никак не резисторы.

Потому что емкости между всем и всем никто не отменял.
Пусть у вас на ноге карточки висят паразитные 10 пикофарад... Берете резистор 10 килоом - получаете постоянную времени R*C = 100 наносекунд - то есть про 10 мегагерц сразу забываем...
Буферные элементы вносят задержки, а не валят фронты. Загнал на вход 10 мегагерц - получил с выхода 10 мегагерц, пусть с задержкой, но красивые квадратные (это грубо, но суть такая примерно).

Проезжая мимо магазина вспомнил, что хотел подключить SD-карту. Номиналов резисторов я не помнил, но помнил, что нужны 3.3в. В результате расчета получились резисторы 47к и 91к. В тестовом скетче (arduino) наблюдаю сообщение что карта не найдена. В схеме которая бродит по сети "немного" другие номиналы :oops:
Изображение


cron
Rambler\'s Top100 Mail.ru counter