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

вопрос по PIC + USB флэшка

Извиняюсь если не в тот раздел пишу.
Сам пишу исключительно на асме и с высокоуровнемы вещами типа USB незнаком абсолютно.
Сейчас прорабатывается небольшой контроллер, который будет месяц-два копить статистику с некоторого количества датчиков и складывать её в еепром типа 2464 в виде простово текстового файла.
Необходим дополнительный контроллер, по сути безразлично на чём сделаный, лишь бы это было недорого и легко покупаемо, который будет тоже подключен к этому еепрому и к USB-разъёму типа "мама". Также к нему должна быть подключена либо кнопка его активации, либо он должен сам при вставлении флэшки просыпаться. Проснувшись выставить сигнал доступа к 2464 и через секунду (контроллер сбора данных за это время точно его заметит и отключит свой порт от еепрома ) скопировать из неё всё, записав данные без какой-либо обработки в виде файла "file.txt" длинной 8192 байт.
Вопрос в принципе с кем то пообщаться на тему реализации этой задачи, ибо сам я ниасилю.
Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Если исходить из необходимости работы "исключительно на асме", могу порекомендовать использовать не универсальный контроллер с USB интерфейсом, а специализированные USB-Host контроллеры. Сам я работал только с контроллером Vinculum VNC1L-1A от FTDI (правда, это было давно). Прелесть в том, что можно и USB операциями управлять с микроконтроллера сбора данных - используется сравнительно небольшой набор команд, похожих на AT-команды модемов, а всю низкоуровневую работу Host-контроллер делает сам. Интерфейс - SPI или UART по выбору. Недостаток - спец. контроллер будет скорее всего дороже среднего МК. Позже FTDI добавила Vinculum-II - это уже полноценный МК, куда можно добавить пользовательскую программу (правда, с проприетарной архитектурой и системой команд). Немножко погуглив и подняв свои записи, нашёл ещё микросхемы USB-host:
MAX3421
CH375B
μPD720150
FT311
FT313
Также для быстрого старта можно воспользоваться готовыми платами с USB-host. У FTDI такие платы позиционируются, как отладочные средства (модули VDIP, VMUSIC и т.п.), поэтому цена будет кусаться. А вот разнообразные USB Host Shields из экосистемы Arduino вполне можно купить на Ali за 500 руб (контроллер - MAX3421). Плюс - готовые библиотеки, котрые можно "изучить", минус - они написаны на С++.

P.S. В качестве примера - плата сбора данных DLP-VLOG
Изменено пользователем varostov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(varostov @ Jan 13 2017, 14:34) <{POST_SNAPBACK}>
Если исходить из необходимости работы "исключительно на асме"

Тут речь о том, что сам контроллер сбора и подготовки данных в память я напишу на асме, но вот взаимодействие с флэшкой уже не сумею. Поэтому мне нужен какой то дополнительный контроллер сразу запрограммированный на единственное действие - при втыкании флэшки переписать туда всю 2464 и обозвать "файл.тхт". Чтоб мне не надо было отрабатывать какое то с ним взаимодействие, АТ-команды и тд и тп

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вобщем пока решил попробовать usbula.com, под мою задачу кажется самое простое из готового решения. Заказал пики, придут - буду тестить. Всем спасибо, тема пока закрыта. Вроде бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Если нужно только принять данные по USB, то наверное достаточно использовать USB-COM переходник, типа: PL2303, CP210x (x=1,2,3), FT232, Ch430. Они продаются буквально везде.
В своём девайсе добавить отправку по UART накопленных данных, по какому-нить условию: при нажатии кнопки, или после обнаружения подключения USB-COM переходника, и т.п.
А принимать данные в компьютере, с помощью терминальной программы, которая умеет сохранять в виде ТХТ файла всё что было принято.
Например прога sscom32E имеет кнопочку "сохранить" принятые данные, и они как раз сохраняются в ТХТ формате, без всяких дополнений или искажений. Лишь бы ваш девайс прислал данные в виде читаемых ASCII символов. И всё laughing.gif

Если требуется чтоб устройство было подобно "серьёзной" USB-флешке, и данные нужно получить обязательно через проводник Windows, то и здесь есть вариант.
Писать данные нужно не на флешку типа 24С64, а на MicroSD карту в режиме SPI, как на обычную SPI-флешку. Заготовку ТХТ-файла длиной 8192 байт - записать на карту заранее, и по номеру сектора, где расположен файл, записывать свои данные. Это ненамного сложнее, чем писать на 24С64.

Тогда считывать данные по USB, можно с помощью схемы от кардридера-брелка, которые продаются на каждом шагу за копейки. Есть настолько маленькие по размеру кардридеры (не больше самой карты памяти), что платку от него можно целиком распаять в своей схеме, между USB-разъёмом и SD-картой.
Есть в продаже и такие девайсы, которые имеют микросхему кардридера пригодную для пайки. И стОят они не сильно дороже простого кардридера.
Нужно только предусмотреть изоляцию этого USB-ридера от SD-карты в то время, когда с ней работает контроллер - чтобы не было "фантомного" питания схемы кардридера по сигнальным линиям, ну и чтоб не было помех при работе с картой.

Можно совсем просто. Писать на карту памяти, ничего не встраивая в свою схему, а когда нужно - извлечь карту из своего девайса, вставить в кардридер и прочитать её на компе (или на телефоне, если у него есть слот для MicroSD) rolleyes.gif
Изменено пользователем controller_m30

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация