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

Балуюсь с LPC1343. Пофиг что не работает симуляция в Keil, зато хотябы прошивать легко через встроенный USB загрузчик. Нашел в интернете несколько примеров реализации USB MSC, простой disk image на 5-6кб в оперативке, вообщем обычный пример. Загружаю, запускаю, обнаруживается новое устройство, все нормально - это носитель. Но винда предлагает перед использованием форматировать его, чего ей не удается и она отключает диск. Стоит Windows 7, на XP не пробовал. Честно говоря примеры простейшие - не ясно что работает не так, примеры не трогал, компилятся без ошибок.

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


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

Нашел в интернете несколько примеров реализации USB MSC

топику явно не хватает ссылок на эти самые примеры

и кстати я тоже с lpc1343 балуюсь, пример из поставки Keil (C:\Keil\ARM\Boards\Keil\MCB1000\USBMem) проверял в XP работает

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


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

Проверял из LPC13xx_SampleSoftware, C:\Keil\ARM\Boards\Keil\MCB1000\USBMem. Вот сейчас еще раз открыл проект из поставки Keil MCB1000, еще раз перекомпилил - тоже самое. Предлагает отформатировать, но если попытаться сделать это выдается сообщение "Windows не удалось отформатировать диск", если закрыть окно форматирования, то диск пропадает и все. Я не понимаю почему он не хочет его форматировать, память это RAM, запись и чтение свободные..

 

2brungl:

Есть возможность проверить на Windows 7? Может это у меня что-то не так...

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


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

я НЕ уверен в этом. По логике это просто буффер в RAM на 6Кб. Если там кривое изображение, то почему винда просто не переформатирует его в нормальный вид? Ведь это простое чтение/запись в буффер..

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


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

Я конечно мог заблуждаться, но до сих пор я был уверен, что форматирование "заключается в создании (формировании) структур доступа к данным, например структур файловой системы." Цитата из википедии :) Только лишь одна работа USB и поддержка некоторых команд SCSI не позволяют устройству функционировать как логический диск с файловой системой. А процесс форматирования как раз пытается создать файловую систему.

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


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

> Есть возможность проверить на Windows 7?

забыл уточнить XP в виртулаке запущена была. основная ось ubuntu.

вот мой Memory.hex http://exfile.ru/134462

MD5 ee9630ff725205bf8f09e05174933204 Memory.hex

 

не уверен, что поможет, но может наведет на какие нить мысли (=

dmesg:

[20868.290143] usb 3-3: new full speed USB device using ohci_hcd and address 4

[20868.482022] usb 3-3: configuration #1 chosen from 1 choice

[20868.500258] scsi20 : SCSI emulation for USB Mass Storage devices

[20868.504719] usb-storage: device found at 4

[20868.504723] usb-storage: waiting for device to settle before scanning

[20873.503634] usb-storage: device scan complete

[20873.510162] scsi 20:0:0:0: Direct-Access Keil LPC13xx Disk 1.0 PQ: 0 ANSI: 0 CCS

[20873.513681] sd 20:0:0:0: Attached scsi generic sg3 type 0

[20873.524627] sd 20:0:0:0: [sdc] 12 512-byte logical blocks: (6.14 kB/6.00 KiB)

[20873.530624] sd 20:0:0:0: [sdc] Write Protect is off

[20873.530631] sd 20:0:0:0: [sdc] Mode Sense: 03 00 00 00

[20873.530636] sd 20:0:0:0: [sdc] Assuming drive cache: write through

[20873.566648] sd 20:0:0:0: [sdc] Assuming drive cache: write through

[20873.566666] sdc:

[20873.624699] sd 20:0:0:0: [sdc] Assuming drive cache: write through

[20873.624720] sd 20:0:0:0: [sdc] Attached SCSI removable disk

 

можно попробовать драйвер удалить и девайс переподключить, и да в XP не форматируется (не удалось завершить форматирование)

 

Из www.nxp.com/documents/application_note/AN10904.pdf (AN10904 USB HID with the LPC1300 on-chip driver):

Note: This simple connection does not implement NXP Soft-Connect to allow soft

disconnection and connection to the USB bus nor does it implement USB power.

Because of this, the USB connection must be plugged into the PC after the USB

peripheral is initialized. If the USB port is connected before the LPC USB peripheral is

initialized, the pullup resistor will notify the PC that a USB device is present, yet the

microcontroller’s USB peripheral will not respond because it has not been initialized. This

will trigger Windows to generate an error mentioning a malfunctioning USB device.

Unplug and re-plug the device to dismiss the error.

 

Схема подключения к USB какая?

 

у меня подключено как здесь: http://www.microbuilder.eu/projects/LPC134...enceDesign.aspx

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

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


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

насколько я понимаю - флешка - тоесть в нашем случае девайс с рамом - ничего про fat и знат ьне должен - его собачче дело - писать и чиать сектор, это с помощью юсб, а вот фат или еще что там - это драйвер фата самой винды поверх нижнего транспортного протокола(у нас это usb) делает. в флеш должна уметь как я сказал пиать и читать сектор и говорить винде какой у не размер сектора. фсе. у меня ткак пример для lpc2148 работает. ну там несколько команд SCSI это понятно - интерфейс.

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


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

>2brungle:

i am brunql

 

>Выложи пжл в bin формате

Что-то я в кейле сходу не нашел, как сгенерить бинарник...

Все, что нашел это HEX2BIN http://www.keil.com/download/docs/7.asp, но с ней проблемы:

ERROR: Invalid record type in HEX record 706.

Status: HEX to BIN conversion was not successful.

Вообщем вот, что мне Keil накомпилил: http://exfile.ru/134535

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


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

В инете увидел такую же проблему (но с LPC2148) Вот здесь. Внизу страницы.

Now, when i connect my LPC2148 board to PC, i get 'Disk in drive is not formatted. Do you want to format it now?'. And if i say, yes. Then it says, 'Disk in drive can't be formatted'. What is its meaning?

Но ответа так и нет, кроме

It means no partition structure (Master Boot Record, boot sector etc.) is assigned on your "disk"

И ссылки на примеры.

 

Project options -> User

Run 1: fromelf --bin ".\Obj\USBMem.axf" --output ".\Obj\USBMem.bin" <<< Здесь свои названия подставляешь

 

 

Да, сейчас форматнул твои объектники в bin, залил - та же самая ошибка. Форматировать типа надо. Каким то боком связано с Windows 7... Только вот встроенный USB Bootloader то работает нормально!

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


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

наверно уже сгенерил по Memory.axf, что я скинул, но если нет, то вот Memory.bin http://exfile.ru/134537

 

а через UART прошивку заливать пробовал? (я через UART прошиваю)

 

а всякие таймеры, кнопочки, светодиоды работают?

 

еще у gcc (в кейле вроде не gcc) есть проблемка с бинарниками, может здесь чтото подобное

http://www.microbuilder.eu/projects/LPC134...43CodeBase.aspx

LPCRC - A command-line utility to correct the checksum value of compiled .bin files. This ensures that the files will not be rejected by the USB bootloader. Windows binary and GNU GCC source included.

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

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


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

Да, я уже по твоей прошивке сгенерил (см обновленный пост выше) -> ошибка осталась.

 

Через UART нет возможности запустить, плата готовая, без uart.

 

еще у gcc (в кейле вроде не gcc) есть проблемка с бинарниками, может здесь чтото подобное

http://www.microbuilder.eu/projects/LPC134...43CodeBase.aspx

LPCRC - A command-line utility to correct the checksum value of compiled .bin files. This ensures that the files will not be rejected by the USB bootloader. Windows binary and GNU GCC source included.

 

Да, я в курсе. Это делается второй командой

Run 2: AutoVerifyCode.exe .\Obj\USBMem.bin

 

а всякие таймеры, кнопочки, светодиоды работают?

 

HID работает, и CDC (соединил пины у микрухи для эхо).

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


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

HID работает, и CDC (соединил пины у микрухи для эхо)

Как проверял CDC?

По идее CDC реализует интерфейс UART между приложением PC <-> USB <-> UART (в прошивке)

Какие тут пины можно было соединить? или у тебя трансляция того что приходит c USB в железный UART и обратно?

 

Насчет USBMem возможно Windows7 работатет с FAT немного не так как XP?

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


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

Загрузил прошивку CDC в камень через USB Bootloader, запустил, установил дрова из директории проекта, открыл терминал, посылал символы и получал эхо. Ножки TXD и RXD на микроконтроллере замкнул.

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


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

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

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

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

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

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

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

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

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

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