реклама на сайте
подробности

 
 
> Бардак с at91sam7s64, Не работает норм ЮСБ
SolarA
сообщение Sep 9 2008, 12:50
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-08-08
Пользователь №: 39 873



Народ не работает ЮСБ. help.gif
Скачал с сайта Атмела примеры версии 1.4 и попробовал вшить usb mass storage device. После этого плата определяет как просто device которому нужны драйвера и все(пробовал на 2000 и на ХР). Пробовал также версии которые идут с ИАР 5.2(по идеи тот же 1.4) а также версия 1.3. Все точно так же. Уже не знаю че делать. Устройство нормально не определяется и все. (тока один раз я нашел бинарник с GCCшного проекта поидеи который вшился и заработал, тоесть определил платку как масс сторедж с 0 байтов вообще и 0 байтов свободного места. это устройство нельзя отформатировать)

Задача
Мне надо организовать обмен данными между ПК и МК. Примерно 600 байт туда и обратно раз в милисекунду гдето(лучше чаще). Думал сделать через масс сторедж, дабы с ПК писало в какойто файл, а читало с другого. Выделить под эти файлы допустим по 2 кБ в РАМ(для с64 всего 16кб РАМ) и спокойно себе писать в файл с ПК и читать область памяти в проге на МК.
Или как вариант написать драйвера под винду для своего девайса и через них уже както общатся.

Хотелось бы услышать какието идеи или замечания как это сделать и если кому не сложно, попробуйте вшить иаровский пример - будет ли он у вас работать. Если будет, то пришлите ссылочку откуда скачали или же сам проект.
Буду премного благодарен за инфу
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SolarA
сообщение Sep 10 2008, 09:59
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-08-08
Пользователь №: 39 873



Не получается выделить память.
Пишу такое :

MEDSdram_Initialize(&(medias[numMedias]),0x00203000,0x0FFF);
LUN_Init(&(luns[numMedias]), &(medias[numMedias]), buffer, 0, 0x0FFF, BLOCK_SIZE);
numMedias++;

где void MEDSdram_Initialize(Media *media,
unsigned int baseAddress,
unsigned int size)
{
trace_LOG(trace_INFO, "I: Sdram init\n\r");

// Initialize media fields
media->write = MEDSdram_Write;
media->read = MEDSdram_Read;
media->handler = 0;
media->flush = 0;
media->baseAddress = baseAddress;
media->size = size;
media->state = MED_STATE_READY;

media->transfer.data = 0;
media->transfer.address = 0;
media->transfer.length = 0;
media->transfer.callback = 0;
media->transfer.argument = 0;
}

void LUN_Init(MSDLun *lun,
Media *media,
unsigned char *buffer,
unsigned int baseAddress,
unsigned int size,
unsigned int blockSize)
{
unsigned int logicalBlockAddress = (size / blockSize) - 1;
trace_LOG(trace_INFO, "I: LUN init\n\r");

// Initialize LUN
lun->media = media;
lun->baseAddress = baseAddress;
lun->size = size;
lun->blockSize = blockSize;
lun->readWriteBuffer = buffer;

// Initialize request sense data
lun->requestSenseData.bResponseCode = SBC_SENSE_DATA_FIXED_CURRENT;
lun->requestSenseData.isValid = 1;
lun->requestSenseData.bObsolete1 = 0;
lun->requestSenseData.bSenseKey = SBC_SENSE_KEY_NO_SENSE;
lun->requestSenseData.bReserved1 = 0;
lun->requestSenseData.isILI = 0;
lun->requestSenseData.isEOM = 0;
lun->requestSenseData.isFilemark = 0;
lun->requestSenseData.pInformation[0] = 0;
lun->requestSenseData.pInformation[1] = 0;
lun->requestSenseData.pInformation[2] = 0;
lun->requestSenseData.pInformation[3] = 0;
lun->requestSenseData.bAdditionalSenseLength
= sizeof(SBCRequestSenseData) - 8;
lun->requestSenseData.bAdditionalSenseCode = 0;
lun->requestSenseData.bAdditionalSenseCodeQualifier = 0;
lun->requestSenseData.bFieldReplaceableUnitCode = 0;
lun->requestSenseData.bSenseKeySpecific = 0;
lun->requestSenseData.pSenseKeySpecific[0] = 0;
lun->requestSenseData.pSenseKeySpecific[0] = 0;
lun->requestSenseData.isSKSV = 0;

// Initialize inquiry data
lun->inquiryData = &inquiryData;

// Initialize read capacity data
STORE_DWORDB(logicalBlockAddress,
lun->readCapacityData.pLogicalBlockAddress);
STORE_DWORDB(blockSize, lun->readCapacityData.pLogicalBlockLength);
}


По идеи после этого у меня в устройстве должно появится 4095 байт места, которое я выдрал с РАМ
Но этого нету.
Подскажите пожалуйста где не правильно

Цитата(uriy @ Sep 9 2008, 19:21) *
Тогда зачем было писать в названии ветки что в SAM7S64 не работает USB раз вы не определили точно в чем проблема в железе или в софте? Кстати через какой интерфейс вы прошивали контроллер? На 99,9% уверен что через USB с помощью SAM-BA. Это еще раз подтверждает что USB работает. Где-то у меня была реализация Mass Storage. Там в примере уже был текстовый файл на диске. Размер диска 16 Кбайт кажется был. Если найду выложу.


Выложи пожалуйста.
С названием ветки протупил 05.gif , но ее уже вроде нельзя изменить.
Прошиваю через usb с помощью ИАР, или через SEGGER J-FLASH.
Отлаживаю Jet link 5
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 10 2008, 10:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SolarA @ Sep 10 2008, 13:59) *
По идеи после этого у меня в устройстве должно появится 4095 байт места, которое я выдрал с РАМ
Но этого нету.

Что же Вы один байт-то зажали? Дайте хотя бы 4096.
Но боюсь, что даже для самого маленького диска это слишком мало.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SolarA   Бардак с at91sam7s64   Sep 9 2008, 12:50
- - aaarrr   Во-первых, действительно ли оно у Вас просит драйв...   Sep 9 2008, 13:10
|- - SolarA   Цитата(aaarrr @ Sep 9 2008, 16:10) Во-пер...   Sep 9 2008, 13:21
|- - aaarrr   Цитата(SolarA @ Sep 9 2008, 17:21) Пишет ...   Sep 9 2008, 13:34
|- - SolarA   С UDP понял. Как собсно и с примерами. Может у ко...   Sep 9 2008, 14:02
|- - aaarrr   Цитата(SolarA @ Sep 9 2008, 17:56) Может ...   Sep 9 2008, 14:10
|- - SolarA   звучит тупо-но я чтото сделал и у меня нормально о...   Sep 9 2008, 14:17
|- - SolarA   Цитата(SolarA @ Sep 9 2008, 17:17) звучит...   Sep 9 2008, 15:33
- - uriy   ЦитатаУже продолжая тему, может комуто сгодится, я...   Sep 9 2008, 16:21
- - SolarA   Почему мало? Вы имеете ввиду что его винда определ...   Sep 10 2008, 10:54
- - aaarrr   4096 байт - это 8 секторов. Для FAT на них нужно р...   Sep 10 2008, 11:16
- - SolarA   МДА... я уже сам прогуглил. Получается что действи...   Sep 10 2008, 11:38
- - aaarrr   По-хорошему Вам нужно сделать программный эмулятор...   Sep 10 2008, 11:44
|- - SolarA   Цитата(aaarrr @ Sep 10 2008, 14:44) По-хо...   Sep 10 2008, 12:52
|- - aaarrr   Цитата(SolarA @ Sep 10 2008, 16:52) Тоест...   Sep 10 2008, 13:20
- - misyachniy   ИМХО - Явно какие-то проблемы с дескрипторами. Или...   Sep 10 2008, 12:58
|- - SolarA   Цитата(misyachniy @ Sep 10 2008, 15:58) И...   Sep 10 2008, 13:36
- - aaarrr   Драйвер можно взять и готовый. pragma pack управл...   Sep 10 2008, 13:52
- - galjoen   Цитата(SolarA @ Sep 9 2008, 16:50) Задача...   Sep 10 2008, 14:31
|- - SolarA   Цитата(galjoen @ Sep 10 2008, 17:31) Это ...   Sep 10 2008, 14:36
||- - aaarrr   Цитата(SolarA @ Sep 10 2008, 18:36) Мне п...   Sep 10 2008, 14:42
||- - SolarA   Цитата(aaarrr @ Sep 10 2008, 17:42) Опиши...   Sep 10 2008, 15:03
||- - galjoen   Цитата(SolarA @ Sep 10 2008, 19:03) Описы...   Sep 10 2008, 15:54
||- - SolarA   Цитата(galjoen @ Sep 10 2008, 18:54) Для ...   Sep 10 2008, 15:57
|- - _4afc_   Цитата(galjoen @ Sep 10 2008, 18:31) У ме...   Sep 11 2008, 09:40
|- - galjoen   Цитата(_4afc_ @ Sep 11 2008, 13:40) Не по...   Sep 12 2008, 09:33
- - aaarrr   Дело в том, что bulk-передачи не предназначены для...   Sep 10 2008, 15:15
|- - SolarA   Цитата(aaarrr @ Sep 10 2008, 18:15) Дело ...   Sep 10 2008, 15:31
- - aaarrr   Контроллер будет работать на частоте 48MHz, если и...   Sep 10 2008, 15:37
- - SolarA   Цитата(aaarrr @ Sep 10 2008, 18:37) Контр...   Sep 10 2008, 15:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01437 секунд с 7
ELECTRONIX ©2004-2016