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

Kruftin

Участник
  • Постов

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

  • Посещение

Весь контент Kruftin


  1. Просто Си компилятор, который соответствовал ассемблеру у нас дописывается и выйдет в конце этого кода. Тогда и соберём coremark. Пока все работы направлены на выпуск нового процессора P2 ну и создаём для него отладочную плату, чтобы к выходу процессора она уже была. Вся фишка в том, что программа у нас автоматически на аппаратном уровне уйдёт по клеткам(пользователю не нужно что-то очень особенное делать для распараллеливания). Ну и результат операций хранится в коммутаторе, а не в регистрах, хотя регистры у нас тоже имеются(т.е. мы ссылаемся с помощью значка @ на результат операции). Клетки могут выполнять каждая свою задачу или объединяться по две клетки(например) на одну задачу, остальные две каждая на свои задачи и всё это без перезагрузки процессора(это и есть реконфигурация). Приведу простой пример кода на ассемблере (хотя Си89 у нас тоже есть, правда не оптимальный): paragraph: getl 1 ;положим в коммутатор число 1 getl 2 ;положим в коммутатор число 2 getl 3 ;положим в коммутатор число 3 getl 4 ;положим в коммутатор число 4 addl @4, @3;выполним операцию 1 + 2 (сложим команду идущую 4 позиции назад с командой из 3-й позиции относительно текущей операции) addl @3, @2 ;выполним операцию 3 + 4 (сложим команду идущую 3 позиции назад с командой из 2-й позиции относительно текущей операции) wrl @2, 0x40000; сохраним результат в памяти по адресу 0x40000 wrl @2, 0x40004; сохраним результат в памяти по адресу 0x40004 complete paragraph: getl 1 ;уйдёт в клетку 0 getl 2 ;уйдёт в клетку 1 getl 3 ;уйдёт в клетку 2 getl 4 ;уйдёт в клетку 3 addl @4, @3;уйдёт в клетку 0 addl @3, @2;уйдёт в клетку 1 wrl @2, 0x40000;уйдёт в клетку 2 wrl @2, 0x40004;уйдёт в клетку 3 complete Более подробно тут http://multiclet.com/community/projects/ex...%83%D1%80%D1%8B
  2. Т.е. получил я от хоста 00 00 80 06 00 01 00 00 40 этим хост запрашивает GET_DESCRIPTOR_DEVICE и указывает что хост хочет увидеть 0x40, т.е. 64 байта дескриптора. Дескриптор устройства + Дескриптор Конфигурации + Дескриптор строки не дадут 64 байта, хотя может это максимальный размер. Ну т.е по логике после запроса хоста я просто сразу же кидаю ему все дескрипторы и после этого анализирую завершение транзакции и всё жду когда он определит моё устройство как флешку. Аппаратный анализатор наверно дорого стоит.
  3. Я Агурова итак читаю. В процессоре имеется регистр передачи конечной точки, который вмещает один байт и глубиной 64 байта. Т.е. под пакетом как я понимаю и подразумевается посылка одного байта. Все данные передаются через нулевую конечную точку. И ещё вопрос должен ли USB сниффер ловить все передачи с устройства? Распишу подробнее алгоритм: 1)включил usb контроллер 2)выставил в каждой конечной точке включение и готовность конечной точки к ответу на запрос 3)глобально разрешил работы конечных точек, задал скорость 1,5 Мбит/с 4)дождался выставления бита завершения транзакции, считал последовательно байты от хоста после каждого чтения дожидаясь выставления бита завершения транзакции. 5)после получения запроса - конфигурационного пакета начинаю посылать данные к хосту, пробовал послать и по 1 байту и несколько - безрезультатно. Подскажите кто пользовался процессорами с USB какой там порядок посылки ответного дескриптора.
  4. Здравствуйте! Не подскажете как должно происходить подтверждение данных отправленных device устройством на хост. Т.е. хост прислал запрос на дескриптор устройства, далее необходимо послать этот дескриптор. Так вот вопрос: хост отвечает ACK на каждый байт принятый от устройства или только на весь дескриптор? Т.е. получил я от хоста 00 00 80 06 00 01 00 00 40, что по байтам мне ему послать, т.е. сразу начать посылку элементов дескриптора?
  5. НПОА? ЛС у вас переполнено похоже
  6. А посылать данные на девайс, подключенный к ПК посредством USB снифферов нельзя?
  7. Добрый день! Подскажите пожалуйста что нужно сделать, чтобы при вводе в браузере определённого ip адреса с процессора приходила страничка с текстом. Т.е. если посылать в цикле ethernet frame с ethernet-type IPv4 и в заголовке TCP (внутри данных IP пакета) указать порт 80. Кадр с мак адресом ПК и IP. Т.е. заголовки TCP посылаются в поле данных пакета IPv4? Если есть возможность опишите механизм действий подробнее, чтобы по запросу в браузере сделать страничку данных с процессора с Ethernet. Без использования реализации TCP\IP стека такой простой тест можно сделать?
  8. Ещё вопрос по многоблочному чтению: после посылки команды CMD12 на завершение чтения приходит ответ 0х00, а затем на линии держится высокий уровень, т.е. нет ожидания в один байт и сигнала busy, но всё считалось и верно. Может кто сталкивался с этим?
  9. Вопрос в следующем: при записи по SPI я пишу несколько мегабайт и на пути могут встретиться бэд кластеры, то они будут проигнорированы(заменены контроллером внутри микроСД на рабочие) или просто запись в них не пройдёт и надо для всех данных включить CRC?
  10. Карточка на 2Гб почему-то совсем не откликается на CMD0 ( Всё работает :yeah: была ошибка в коде...
  11. Я делаю следующее: 1)Послал команду CMD24( в качестве ответа получил нули см пункты 2-3) 2)Послал 0xFF 2 раза 3)Послал token 0xFE 5)Затем передаю данные пакета циклом по 32 бита за посылку for(i=0;i<128;i++) Первые 20 байт - это принятые данные после посылок(посылаю всегда 0xABCDEF12 ), остальное то, что принято после посылки token(т.е. во время посылки нули) и каждой посылки данных + CRC(и вопрос ещё как я понял по умолчанию СRC отключён?) Ещё раз всё поправил ка надо и в итоге после посылки token 0xFE на 5-ом принятом байте(в это время посылаются данные на запись) вижу значение 0x09, которое говорит об ошибки token - out of range. token.txt
  12. Инициализация прошла, а вот запись что-то не проходит. Послал Data Token как для команды 24, на следующей посылке получил ответ нули (вопрос на какой посылке надо считать ответ token? ) и затем получаю всякие разные данные при отправке моих посылок всего 512 байт это нормально? после отправки СRC в ответе все FF. Карточка на 1Гб, карточка на 2Гб вообще отказалась сброситься.
  13. А адрес блока для команд 17,18, 24 как формируется, если блок по 512 байт? Т.е. посылаю команду и указываю для первого блока адрес 1, а для второго 2 или 1, а затем 513?
  14. А точно, что-то я про это забыл. Всё теперь понятно, буду пробовать что-то записать и считать пока в одноблочном режиме.
  15. Дак тогда ошибки будут возможны, поскольку как microSD отличит CRC от данных(интересуют случаи когда контроль отключён и включён)?
  16. Ну SPI умеет делать посылки и по 4 бита, но тут то мне нужно получается послать два байта контроля и байт единиц и только после этого послать ещё запрос на считывание байта ответа так?
  17. Тогда ещё такой вопрос при посылке пакета после data token следуют данные пакета, так вот их размер от 1 до 2048 байт. Т.е. при отключенном контроле CRC как карточка поймёт, что вот я послал пакет из 5 байт например и мне нужно прислать ответ? Конечно в документации написано, что в конце стоит стоп бит единица, ну т.е. если отключён контроль CRC, то нужно послать два нулевых байта и один бит единицу после этого?
  18. Тогда ещё вопрос: после того как записали блок в 512 байт в команде на запись какой будет следующий адрес блока(не 0x201 будет его значение)? А по структуре регистров CSD, CID почитать в документации общей на SD карты? http://www.piclist.ru/S-MMC-SD-Cards-RUS/S...-Cards-RUS.html
  19. Не подскажите как, поподробнее?
  20. запись по SPI

    Подскажите возможно ли реализовать запись и чтение с помощью интерфейса SPI на microSD карту без реализации на ней файловой системы FAT32. Т.е. как с контроллера просто использовать microSD карту для хранения данных. Если обязательно нужно организовывать файловую систему, то подскажите поподробнее как это сделать, заранее благодарен за полезные ссылки. Сейчас разбираюсь с модулем FatFS
  21. Всё понятно, спасибо. Добавлю смещение на вход.
  22. Дак неадекватная работа микросхемы начинается когда питание на входе меньше 0,9 Вольт, а напряжение питания подавали и 10 и 15В. Конденсатор ставили и на входе и на выходе и нагрузку подключали, результат тот же ниже 0.9В - режим насыщения. Завтра приведу полную схему подключения.
  23. Питается от +5 и доводили до +15 Вольт, Vee на землю подцеплено, Vпит +5
  24. Добрый вечер! Пытаюсь собрать аудио усилитель неинвертирующий на ОУ LM833N (ST), и получается странная картина: на выходе произошла инверсия сигнала, а также при подаче напряжения на вход меньше 0.9 В операционник уходит в режим насыщения.
  25. Сейчас частота вертикальной развертки 60,9 Гц(должно быть 60), горизонтальной 46 Гц (должно быть 47,8) http://tinyvga.com/vga-timing/800x600@60Hz Разрешение пытаюсь сделать 800 на 600, в результате получаю мигания монитора белым цветом раз в три секунды где-то, причем еле-еле заметные. Подаю на цвета все три напряжение постоянное в 0,7 В.
×
×
  • Создать...