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

    

tridentxp

Участник
  • Публикаций

    17
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о tridentxp

  • Звание
    Участник
  1. Цитата(mantech @ Aug 30 2016, 21:45) Че-то не понял, если устройство - слейв, как оно вообще что-то на клок выставляет?? В топку такие "умные" девайсы здрасте, как это не может? это не крутая SMBus. в стандарте филипка чотко заявлено, что ведомый может удерживать SCL в нуле до готовности получать данные. а посему и таймауты на шине - Ваша головная боль. прошу прощения, что на августовское сообщение отвечаю.
  2. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    нашёл проблему. действительно, борода по питанию. дома на цифровом осциолографе не увидел, а вот на работе на лучевом рассмотрел - при посылке комманды 0x08 был провал чуть ли не 0,5V. оказалось в цепи 3V был резючок 10 Ом. убрал его и всё попёрло. Всем спасибо, тему можно закрыть. правда я рассмотрел после того как скинул 200мкФ и повесил тантал гдет под микрофараду.
  3. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    unsigned char SendRecSPI(unsigned char dat){ unsigned char temp; temp =PDI();temp<<=1; PDO(dat>>7);SCK(1);delay(1);SCK(0);delay(1); temp|=PDI();temp<<=1; PDO(dat>>6);SCK(1);delay(1);SCK(0);delay(1); temp|=PDI();temp<<=1; PDO(dat>>5);SCK(1);delay(1);SCK(0);delay(1);temp|=PDI();temp<<=1; PDO(dat>>4);SCK(1);delay(1);SCK(0);delay(1);temp|=PDI();temp<<=1; PDO(dat>>3);SCK(1);delay(1);SCK(0);delay(1);temp|=PDI();temp<<=1; PDO(dat>>2);SCK(1);delay(1);SCK(0);delay(1); temp|=PDI();temp<<=1; PDO(dat>>1);SCK(1);delay(1);SCK(0);delay(1);temp|=PDI(); PDO(dat); SCK(1);delay(1);SCK(0);delay(1); return temp; } unsigned char SD_CMD(unsigned char *cmd,unsigned char *respond,unsigned int read_cnt, unsigned int timeout){ unsigned char t; t=*cmd; CS(0); SendRecSPI(255); SendRecSPI(0x7F&(*(cmd++))); SendRecSPI(*(cmd++)); SendRecSPI(*(cmd++)); SendRecSPI(*(cmd++)); SendRecSPI(*(cmd++)); SendRecSPI(1|(*(cmd++))); while((timeout--)>0){ *respond=SendRecSPI(255); if (*respond!=255) break; if (timeout==1) return 1; }//timeout respond++; while((read_cnt--)>0) *(respond++)=SendRecSPI(255); //if (t!=0x40|55) CS(1); SendRecSPI(255); return 0; } стабилизатор - TPS76333. вот только заметил что в функции SendRecSPI не принимаю последний бит.
  4. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    питал от USB. Точнее от USB - HID (3V LPC2148) переходника, с помощью которого и передаю комманды. из чего я делаю вывод, что если бы и были провалы, то они этот же переходник с собой утягивали, что с компа понять очень легко - INVALID DEVICE HANDLE получил бы. осциолографом бороды не увидел. карточка USB-SD/MicroSD переходником читается на ура.
  5. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    не помогло. я и FF80 от комманды 58 подсовывал, и пробежался ротируя 1-цу от 0x69 40 00 01 00 до 0x69 40 80 00 00. на комманду 55, 41 оба раза ответила 01, а на следующий цикл не отвечала уже на CMD55.
  6. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    DO=1; CS=1; 1000 CLK; CS=0;1000CLK;CS=1;1000 CLK; CS=0;CMD 0;CLK=8; CS=0; cmd8: 0x48 0x00,0x00,0x01,0xAA 0x87;читаю R1 +0 0 1 AA ;CS=1;CLK=8; cycle: CS=0; cmd 55: 0x77 ,0,0,0,0, 0xFF; читаю R1; CS=1;CLK=8; (здесь пробовал црц=0x65 и (65<<1)|1 ) CS=0; cmd41: 0x69, 0x40,0,0,0 0xFF; читаю R1; CS=1;CLK=8;(здесь пробовал црц=0x77и (77<<1)|1 )
  7. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    R1+respond= 01 00 FF 80 00. да, и не раз - подаю в ручную. даже пытался ЦРЦ правильную в эти комманды запихнуть. всё равно 0x01 6 раз и вечный сон ФФ. а, да, даже электролит 200 мкФ к карте прицепил.
  8. SDHC SPI Kingston 8Гб, ACMD41 Halt.

    Фсем ПРИВЕТ ! парни, помoгите бедолаге. имею 4Гб микро СДху неизвестного производителя. на ACMD41 пару раз отвечает 01, после чего как и положенно 0. после нуля запрашиваю CMD58-> C0 00 FF 80 00. значит вышла из idle state. ставлю kingston 8GB - 6 раз 0x01, после чего вечный FF. всю гуглю изрыл, у буржуев такую же проблему видел. решения не нашёл. я уж и меж CMD55 и 41 CS-сом дрыгаю, и ваще всё, всё ,всё. ну не отвечает и всё тут - валится в игнор. но на комманду 0 и последующую 8 отвечает как надо.
  9. Ищу CAPS для прошивки STR911.

    ОГРОМНОЕ СПАСИБО !!!
  10. Ищу CAPS для прошивки STR911.

    Люди добрые, киньте прогу CAPS от ST, если есть у кого pls. Google ничего толкового не находит. Здесь тоже пока не нашёл. tridentxp@mail.ru.
  11. LPC2148, проблема с GPIO P0.20.

    проблема решилась. оказалось в разрыв лапы стоял резистор 100 Ом. оставлю за собой право умолчать как он туда попал и почему я его не заметил. вобщем всё заработало.
  12. LPC2148, проблема с GPIO P0.20.

    8.4.3 GPIO port Pin value register (IOPIN, Port 0: IO0PIN - 0xE002 8000 and Port 1: IO1PIN - 0xE002 8010; FIOPIN, Port 0: FIO0PIN - 0x3FFF C014 and Port 1: FIO1PIN - 0x3FFF C034) This register provides the value of port pins that are configured to perform only digital functions. The register will give the logic value of the pin regardless of whether the pin is configured for input or output, or as GPIO or an alternate digital function.
  13. LPC2148, проблема с GPIO P0.20.

    надо думать больше, чем заявленно по мануалу. просто уже были прециденты, когда в следствии мобильности моего устройства происходили перетирания/оголение и банальные сопли при монтаже, что приводило к непонятному повидению девайса.
  14. LPC2148, проблема с GPIO P0.20.

    подтяжку на лапы P0.2 и P0.3 поставил. и нареканий к ним нет - коротыш проверяется и к плюсу и к минусу. вот только чудеса с P0.20.
  15. LPC2148, проблема с GPIO P0.20.

    Добрый день, форумчане. Захотелось мне реализовать проверку 3-х пинов (P0.2, P0.3 и P0.20) на КЗ на землю или питание. Решил реализовать это следующим образом: сконфигурировать как выход, для проверки КЗ на землю выставлять "1" (FIO0SET=1<<2 например) и FIO0PIN-ом считывать состояние (если верить мануалу состояние пина захватится не взависимости от конфига PINSEL0) - если "0" - значит коротец. проверка на КЗ к плюсу - с точностью до наоборот. это прокатывает для пинов 0.2 и 0.3. А вот с 20-ым нарисовался непонятный баг: если выставить 0 - FIOCLR=1<<20, то FIO0PIN будет считывать сосотояние пина адекватно, будь он посажен на GND или Vpp. А вот если его выставить в 1 - FIO0SET=1<<20, то FIOPIN будет всегда выдавать "1", даже если пин закорочен на землю.