Jump to content

    

tridentxp

Участник
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

0 Обычный

About tridentxp

  • Rank
    Участник

Recent Profile Visitors

1059 profile views
  1. как я понял происходит обращение (то ли исполнение, то ли просто захват данных) из нереализованного участка памяти.
  2. если верить SysTick-у, то происходит это гдет на 29E6 - ом такте плюс минус тыщ сто - умумукаешься в консоли.
  3. Парни, кто нить юзал jlink.dll для отладки кортехов ? у мну LPC1778 валится в исключение MemoryFault. отловить чот никак не могу. вот думаю заюзать это библиотечку да вызывать Step, да GetRegs. но описания функций чот не найду. какие типы параметров и возвращаемых данных ? есть открытый код, который мне для анализа проще портировать с одного устройства на другое. есно сорцов никто не даёт. целевое устройство есть, но трогать его не хочу из опасений угробить. есть схемотехнический братик. его железа не жалка. Но на нём валюсь в исключение. пытался выставить бряк на исключение чтобы посмотреть на LR, но в нём оказывается ужас 0xFFFFFFF1.
  4. здрасте, как это не может? это не крутая SMBus. в стандарте филипка чотко заявлено, что ведомый может удерживать SCL в нуле до готовности получать данные. а посему и таймауты на шине - Ваша головная боль. прошу прощения, что на августовское сообщение отвечаю.
  5. нашёл проблему. действительно, борода по питанию. дома на цифровом осциолографе не увидел, а вот на работе на лучевом рассмотрел - при посылке комманды 0x08 был провал чуть ли не 0,5V. оказалось в цепи 3V был резючок 10 Ом. убрал его и всё попёрло. Всем спасибо, тему можно закрыть. правда я рассмотрел после того как скинул 200мкФ и повесил тантал гдет под микрофараду.
  6. 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 не принимаю последний бит.
  7. питал от USB. Точнее от USB - HID (3V LPC2148) переходника, с помощью которого и передаю комманды. из чего я делаю вывод, что если бы и были провалы, то они этот же переходник с собой утягивали, что с компа понять очень легко - INVALID DEVICE HANDLE получил бы. осциолографом бороды не увидел. карточка USB-SD/MicroSD переходником читается на ура.
  8. не помогло. я и FF80 от комманды 58 подсовывал, и пробежался ротируя 1-цу от 0x69 40 00 01 00 до 0x69 40 80 00 00. на комманду 55, 41 оба раза ответила 01, а на следующий цикл не отвечала уже на CMD55.
  9. 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 )
  10. R1+respond= 01 00 FF 80 00. да, и не раз - подаю в ручную. даже пытался ЦРЦ правильную в эти комманды запихнуть. всё равно 0x01 6 раз и вечный сон ФФ. а, да, даже электролит 200 мкФ к карте прицепил.
  11. Фсем ПРИВЕТ ! парни, помoгите бедолаге. имею 4Гб микро СДху неизвестного производителя. на ACMD41 пару раз отвечает 01, после чего как и положенно 0. после нуля запрашиваю CMD58-> C0 00 FF 80 00. значит вышла из idle state. ставлю kingston 8GB - 6 раз 0x01, после чего вечный FF. всю гуглю изрыл, у буржуев такую же проблему видел. решения не нашёл. я уж и меж CMD55 и 41 CS-сом дрыгаю, и ваще всё, всё ,всё. ну не отвечает и всё тут - валится в игнор. но на комманду 0 и последующую 8 отвечает как надо.
  12. Люди добрые, киньте прогу CAPS от ST, если есть у кого pls. Google ничего толкового не находит. Здесь тоже пока не нашёл. tridentxp@mail.ru.
  13. проблема решилась. оказалось в разрыв лапы стоял резистор 100 Ом. оставлю за собой право умолчать как он туда попал и почему я его не заметил. вобщем всё заработало.
  14. 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.