Jump to content

Recommended Posts

пытаюсь подключить pic18f452(20мгц) к microsd toshiba 256mb. флешка рабочая, отформатирована под fat16.

компилятор MIKROc

схема из хелпа микроси

post-101747-0-92914800-1334431169_thumb.jpg

все подключено как нарисовано, прозвонено несколько раз. Непроверено только само контактирование карты в разъеме(не знаю как проверить).

единственное расхождение - рез не 2,2, а 2,35. Шлейф до карты около 12 см - не критично это?

post-101747-0-38807500-1334431170_thumb.jpg

код в майне:

PORTB=0x00;
TRISB=0x00;
PORTD=0x00;
TRISD=0x00;
PORTE=0x00;
TRISE=0x0F;
ADCON1 = 0xFF; //аналоговые входы
portd.f4=1; //подсветка жк
LCDinit();
TextOut("ИнитЛЦД ОК",6,6);
Delay_100ms();
Spi_Init_Advanced(MASTER_OSC_DIV64,DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH);
o: TextOut("инициализирую СД",6,6);
initsd = Mmc_Fat_Init(&PORTC, 2);
if (initsd == 0) TextOut("Ништяк",6,6);
if (initsd == 255) TextOut("нот детектид",6,6);
if (initsd == 1) TextOut("фат16 не найден",6,6);
delay_ms(100);
if(initsd !=0) goto o;

Собсно не определяет карту и выдает нот детектид, раз в 50 попыток может затупить на 5 секунд и выдать фат16 не найден. Где я мог накосячить?

Share this post


Link to post
Share on other sites

С кварцем в схеме не ошиблись?

А выдает "ИнитЛЦД ОК"?

Можно в протеусе проверить схему и программу.

Edited by russo turisto

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

ого жесть какая, суровая распаечка)).

12 см ИМХО длинновато. Лучшеб вы на экран такие провода кинули). Советуют здесь не злоупотреблять. Яделал в районе 2-х см.

У меня кстати только СД ММС и СДШЦ завелись , а вот микроСД не захотела. Не знаю в чем была трабла.

То russo turisto вроде он написал, что ФАТ16 формат.)

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

2) Некоторые карты капризничают пока частоту обмена при инициализации не снизишь.

Share this post


Link to post
Share on other sites

ADCON1 = 0xFF; //аналоговые входы

это неправильно, посморите даташиит, хотя исправление не поможет, это для портА и портЕ. Можно еще компараторы отключить.

Для определения возможной проблемы в критических местах можно вывод на юарт добавить для определения что делает контроллер.

Давайте полный код программы, а лучше папку с проэктом.

Какие там настройки конфигурационного слова?

Share this post


Link to post
Share on other sites
                     

DC/DC-преобразователи: принципы работы и уникальные решения Maxim Integrated

Что нового можно сказать про DC/DC? Написаны десятки статей, а самостоятельное изготовление преобразователя мощностью от единиц Вт до нескольких кВт даже в домашних условиях не составляет большого труда. Тем не менее, когда речь идет о микро-, или даже нано-ваттах, проектировщик может столкнуться с рядом трудностей. Разработка устройства с батарейным питанием весьма малой мощности – одна из наиболее актуальных и интересных задач во время всепроникающего интернета вещей. А грамотная схемотехника системы питания не возможна без знания основ работы DC/DC преобразователей. Освежить базовые знания и узнать об особенностях проектирования узлов питания мобильного устройства с оптимальным энергопотреблением можно из следующей статьи

Подробнее

Да ДА ДА ДА !!!! Заработало) Дело именно в micro. Впаял обычную SD-шку сразу все заработало, даже пишет что файлы какие-то получается создать) увы сунуть в комп не получится - припаял разъем прям к флешке) пойду в магаз сбегаю куплю картридер раскурочу его проверю)

post-101747-0-77672600-1334472385_thumb.jpg

Все-таки в чем же дело с micro..мы же вставляем его просто в переходник. В переходнике только еще появляется кнопка LOCK. Может распиновка как меняется?

С кварцем в схеме не ошиблись?

А выдает "ИнитЛЦД ОК"?

Можно в протеусе проверить схему и программу.

С кварцем все хорошо, экран работает отлично без глюков

12 см ИМХО длинновато. Лучшеб вы на экран такие провода кинули). Советуют здесь не злоупотреблять. Яделал в районе 2-х см.

У меня кстати только СД ММС и СДШЦ завелись , а вот микроСД не захотела. Не знаю в чем была трабла.

То russo turisto вроде он написал, что ФАТ16 формат.)

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

2) Некоторые карты капризничают пока частоту обмена при инициализации не снизишь.

Сейчас, кстати получается уже сантиметров 15. ну посмотрим, может при передаче будут глюки - укорочу

А там смотреть-то нечего, это практически вся прога, за исключением библиотеки экранчика. А Mmc_Fat_Init и Spi_Init_Advanced это функции библиотек mikroC.

Пробовал менять частоту и на фосц\16 и на фосц\64

ADCON1 = 0xFF; //аналоговые входы

это неправильно, посморите даташиит, хотя исправление не поможет, это для портА и портЕ. Можно еще компараторы отключить.

Для определения возможной проблемы в критических местах можно вывод на юарт добавить для определения что делает контроллер.

Давайте полный код программы, а лучше папку с проэктом.

Какие там настройки конфигурационного слова?

Коммент наверно просто неправильный) Я имел ввиду использование этих портов как цифровые) По крайней мере на portE.f2 у меня сейчас ds18b20 сидит и работает.

А зачем юарт, у меня ж экранчик есть на который я в каждом этапе могу что хочешь вывести

Слово: ЛВП офф, ВДТ офф, осц HSPLL.

Полный код наверно уже не нужен?

Edited by Redya

Share this post


Link to post
Share on other sites

" .... Mmc_Fat_Init и Spi_Init_Advanced это функции библиотек mikroC...."

А, понял, отстал).

Я просто не в курсе, что внутри данной библиотеки находится; сам писал инит. Просто если там не прописаны команды для карт версии 2.0 и выше или SDHC то инит не пройдет и нужно будет дописывать. Тут уж нужно смотреть.

Раз карта заработала, теперь смело можно закатать например пару песенок в wav и выводить на наушнички по-средством шимирования. На дисплей можно выводить инфу о карте (объем и т д.) полученую после инита.

Edited by fuckir

Share this post


Link to post
Share on other sites

собсно вот ответ)) Невнимательность. посмотрел распиновку сд, подумал что у мсд тоже самое:

post-101747-0-52533200-1334477627_thumb.jpg

post-101747-0-74301600-1334477627_thumb.jpg

Share this post


Link to post
Share on other sites

А не мог бы ты, пожалуйста, выложить рабочий код? Или хотя бы ту часть, что отвечает за SPI. А то я вот пытаюсь подключить к PIC18F46k22, да не выходит ничего((((((((

Share this post


Link to post
Share on other sites

компиляторто тоже microc?

контроллер у меня pic18f452

флешка должна быть обязательно отформатирована под fat16(то есть до 4гб)

#include "LcdDriver.c"  //библа для жк
#include "text.c"   //текст для жк
void main(void) {
    ADCON1 = 0xFF;
    LCDinit();     //иниц дисплея
    TextOut("инит СД",6,6);   //вывод на мой дислпей
    Spi_Init_Advanced(MASTER_OSC_DIV64,DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH);  //иниц SD
    while(1){
       if(Mmc_Fat_Init(&PORTC, 2) == 0) break;  //функция выдает 0 при успехе, 1 при отстутсвии FAT16 и 255 при недоступности карты
       TextOut("Ошибка",6,6);  //вывод на мой дисплей
       delay_ms(500);
       TextOut("инит СД",6,6);   //вывод на мой дислпей
    }
    TextOut("инит СД ОК",6,6);   //вывод на мой дислпей
    Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH);
    Mmc_Fat_Assign("temperTXT", 0x80);//проверяем есть ли файл temper.TXT Если нет - создаем
    Mmc_Fat_Append();//открываем его
    Mmc_Fat_Write("радость\r\n", 7);//записываем строчку
}

Edited by Redya

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Jesterary
      Здравствуйте. Подскажите, был ли у кого-то опыт отправки изображений с камеры (подключенной через UART или bluetooth-камеры) через GPRS (у меня модуль SIM800L, но в целом это не принципиально) на удаленный сервер? Средствами управляющего микроконтроллера, пусть даже ардуины какой-нибудь, но не малины. Возможно ли это вообще? Хотелось бы, конечно, использовать в проекте беспроводную камеру и общаться с ней, ибо камеры, подключаемые напрямую так себе качество дают. 
      Сразу скажу, что важна именно такая связь. Микроконтроллер + модуль связи + камера находятся в коробке и путешествуют по городу, в это время человек сидя дома на диване может смотреть фото с этой камеры. Смартфон для моих целей не подойдет, суть именно в микроконтроллере с модулями.
      Если у кого-то такое получалось - поделитесь, пожалуйста :)
      А то нахожусь в некоторой прострации и даже не знаю, в какую сторону думать.
    • By Николай кол
      Привет, у меня есть вопрос, как передать данных с микроконтроллера pic через блютуз модуль HC-05 на телефон в виде графика.Не могли бы вы показать скрипт или статю.Про Arduino много а про pic не (нужно передать данные с микроконтроллера на телефон а не на оборот).У же есть приложение на app inventor 2.Нужно примерно как тут https://www.youtube.com/watch?v=WzoCQ2fRsRQ
    • By duty
      Привет, участникам форума! Подскажите, пожалуйста, как можно реализовать связь микроконтроллера pic с адресным ключом (ds2405 или ds2408) по 1-wire (на шине будут висеть несколько ключей)  для считывания pio ключа, во входном режиме, т.е на pio поступает сигнал  с магнитоконтактного датчика о срабатывание его или нет.    Datasheet читал, но мало чего понял.  Тестирование произвожу в proteus 8.6
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
  • Сообщения

    • Дело было вечером, делать было нечего. Задача - определить штук 5 банок либо в утиль, либо в работу. Собрал зарядку с контролем. Составляющие: 1. Модуль заряда Li-Ion аккумуляторов с защитой на базе TP4056 (+8205A и DW01-P), стандартная китайская сборка, запитан от 5V зарядки для телефона. 2. Датчик тока на базе ACS712 (5A). Судя по шумовой дорожке там погрешность измерения 30-60 mA (что составляет 1-2 тика по аналоговому входу). 3. Arduino Uno, питается от USB. Используются 3 аналоговых входа: на 0 напряжение с вывода датчика тока, на 1 напряжение с "+" банки, на 5й завел пин +3.3V (убедившись что оно там всегда 3.3, в отличие от 5V Ардуины) и напряжение считаю по формуле грубо говоря voltage = 3.3 * analogRead(0) / analogRead(5). Результаты мне больше нравятся, чем любой reference, хотя и занят лишний аналоговый вход. (на самом деле чуть сложнее, там цикл который 10 раз последовательно замеряет уровень на всех аналоговых входах, потому это можно считать квази-одновременным). 4. Поскольку делать было нечего, сюда же простенькая программа, которая читает данные с COM порта и пишет в Excel файл. 5. К выводу схемы заряда подключен через ключ белый светодиод с ограничителем 100 Ом. По расчету должно было быть 50, но взял от фонаря то что попалось под руку, светит ярко. Взял первую попавшуюся банку, получился вот такой график: Время в миллисекундах, напряжение в вольтах. Синий - заряд, за ним разряд. Желтый заряд при включенной нагрузке (LED) - почему шумит я не понял и отключил LED (он мерцал). Последняя часть кривой заряд без нагрузки, подключенной к плате TP4056. Ток заряда и ток разряда был ниже чем точность датчика тока, амперметр тоже не брал такую величину и показывал 0 на всех делениях мультиметра. Прошу проверить, правильные ли у меня расчеты, а то давно ничем подобным не занимался: 1. Поскольку ток разряда измерить было невозможно, измерил падение напряжения на резисторе, ограничивающем ток на LED'е. 0.356 В / 100 Ом = 3.56mA. Вторым измерением оказалось 0.367В потому принимаю ток разряда за 3.7 mA. 2. После заряда до 4В (дальше не шло либо шло очень медленно) подключил нагрузку и выключил источник питания. Напряжение сразу же село до 3.6 и спускалось до 2.77 в течение  1629 секунд (0.4525 часа). Означает ли это что емкость банки составляет 0.4525 Hr *  3.7 mA = 1.67 mAh или у меня где-то косяк? (вообще на ней 1000 написано, но это было давно и неправда) Что-то полезное можно получить из времени заряда до определенного напряжения? Это нормально что при том что зарядка может отдавать до 1А тока, литий берет такой мизер? Завтра буду гонять более живые (на вид) банки.
    • так я же ему выше запретил появляться без измерений ...
    • Представления не имею, ты же знаешь, что я  твои ссылки никогда не открываю.   То-есть, хочешь сказать, что у вас другого варианта нет, кроме как включить "ждуна" и ждать, когда вам освободят руководящие посты? Ну, а если не захотят освобождать, что будете делать? Поясни, если сможешь вразумительно это сделать, по каким критериям ты пришел к такому выводу? И чей именно я враг?
    • Мир не исчез а просто замер На краткий миг закрытых глаз Кто не родился тот не умер И всё придумано до нас  
    • Грамотная поправка. Это  главное условие я упустил. Но клиент наш пропал. 
    • включить в первичку транса лампу, дабы не похоронить транзисторы ... это ГЛАВНОЕ перед всеми манипуляциями с включением. Ну а в контексте ТЕМЫ - так я давно дал ответ:    
×
×
  • Create New...