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

вопрос по 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

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


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

Если исходить из необходимости работы "исключительно на асме"

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

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


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

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

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


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

Если нужно только принять данные по USB, то наверное достаточно использовать USB-COM переходник, типа: PL2303, CP210x (x=1,2,3), FT232, Ch430. Они продаются буквально везде.

В своём девайсе добавить отправку по UART накопленных данных, по какому-нить условию: при нажатии кнопки, или после обнаружения подключения USB-COM переходника, и т.п.

А принимать данные в компьютере, с помощью терминальной программы, которая умеет сохранять в виде ТХТ файла всё что было принято.

Например прога sscom32E имеет кнопочку "сохранить" принятые данные, и они как раз сохраняются в ТХТ формате, без всяких дополнений или искажений. Лишь бы ваш девайс прислал данные в виде читаемых ASCII символов. И всё :laughing:

 

Если требуется чтоб устройство было подобно "серьёзной" USB-флешке, и данные нужно получить обязательно через проводник Windows, то и здесь есть вариант.

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

 

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

Есть в продаже и такие девайсы, которые имеют микросхему кардридера пригодную для пайки. И стОят они не сильно дороже простого кардридера.

Нужно только предусмотреть изоляцию этого USB-ридера от SD-карты в то время, когда с ней работает контроллер - чтобы не было "фантомного" питания схемы кардридера по сигнальным линиям, ну и чтоб не было помех при работе с картой.

 

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

Изменено пользователем controller_m30

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...