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

STM32F4 Discovery где найти опсиание работы с USB Flash

Ловите проект с тачем. Может где-то что-то недоделал или криво, зато работает :rolleyes: .

SSD1289_JPG_USB_Font_TS_Coocox.zip

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


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

Это надо для железного FPU проца.

Если надо, поправьте пути руками (иначе невозможно) либо вырубите этот FPU в конфиге проекта и удалите всё из списка Linked Libraries на вкладке Link.

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


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

А как подключен дисплей для которого этот проект? А то что то не работает. Там вроде не используется FSMC, софтовый ногодрыг?

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

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


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

Котроллер там и SSD1289, нативно он 16-битный, но внешний интерфейс у него 8-битный под авр (ардуино). Я не пытался подобрать для него режим FSMC, и сделал софтовый ногодрыг, как на авр-ах.

Подключение всего модуля:

SSD1289 STM32

------- ---------

D0 PE8

D1 PE9

D2 PE10

D3 PE11

D4 PE12

D5 PE13

D6 PE14

D7 PE15

 

RST PD1

nCS PD2

RS PD3

nWR PD8

ALE PD10

D_OFF GND

 

SD_CS PD0

TS_CS PD4

MISO PC11

MOSI PC12

CLK PC10

TS_IRQ PD9

D_OFF GND

 

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


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

FreeRTOS прицепил. Оказалось ничего сложного. Цепляется к проекту с помощью единственного #include

 

Параллельная работа с USB + 2 отдельных задачи в которых просто мигают светодиоды работают отлично, на скорость чтения с USB не повлияло.

Чуть позже выложу пример.

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


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

Давайте. Я с ней никак не разберусь :rolleyes:

 

PS.

Вчера попытался выводить JPG через функции LCD_WriteBmp - работает, но чего-то жутко медленно. По пикселям гораздо быстрее :wacko: . Наверное я где-то перемудрил. До BMP не добрался.

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


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

Пытаюсь приделать работу со звуком из примера.

 

Пока не получается. Не срабатывает почему то прерывание при заполнении буфера через I2S. Что то неодоинициализировал :(

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

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


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

Из какого примера?

Audio_playback_and_record?

Да. Там есть функция

 

/**
* @brief  Initializes the wave player
* @param  AudioFreq: Audio sampling frequency
* @retval None
*/
int WavePlayerInit(uint32_t AudioFreq)
{

    /* Initialize I2S interface */
    EVAL_AUDIO_SetAudioInterface(AUDIO_INTERFACE_I2S);

    /* Initialize the Audio codec and all related peripherals (I2S, I2C, IOExpander, IOs...) */
    EVAL_AUDIO_Init(OUTPUT_DEVICE_AUTO, volume, AudioFreq);

    return 0;
}

 

вот думаю достаточно ли ее для полной инициализации работы с внешним DAC или еще что то нужно конфигурировать.

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

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


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

Лично я с DAC не работал.

Но я пробовал код из этой http://we.easyelectronics.ru/STM32/primery...4-discovey.html статьи. Там есть прошивка с исходниками, которые делают из дискавери USB звуковуху. Я её проверял, оно работает. Может тот пример Вам поможет.

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


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

Неделю промаялся с поиском проблеммы из за которой не работал вывод звука. Оказалось в Coocox идет более старая версия файла system_stm32f4xx.c в которой не хватает блока для инициализации I2S.

 

/******************************************************************************/
/*                          I2S clock configuration                           */
/******************************************************************************/
  /* PLLI2S clock used as I2S clock source */
  RCC->CFGR &= ~RCC_CFGR_I2SSRC;

  /* Configure PLLI2S */
  RCC->PLLI2SCFGR = (PLLI2S_N << 6) | (PLLI2S_R << 28);

  /* Enable PLLI2S */
  RCC->CR |= ((uint32_t)RCC_CR_PLLI2SON);

  /* Wait till PLLI2S is ready */
  while((RCC->CR & RCC_CR_PLLI2SRDY) == 0)
  {
  }
}

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


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

При добавлении mp3 бблиотеки Helix выяснилась неприятность - Coocox не понимает синтаксис ассемблерных *.s файлов. Я даже не знаю что теперь делать :(

 

C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S: Assembler messages:

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:1: Error: bad instruction `area |.text|,CODE,READONLY,ALIGN=2'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:2: Error: bad instruction `thumb'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:3: Error: bad instruction `require8'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:4: Error: bad instruction `preserve8'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:6: Error: bad instruction `pcm RN r0'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:7: Error: bad instruction `vb1 RN r1'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:8: Error: bad instruction `coef RN r2'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:10: Error: bad instruction `vlo RN r0'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:11: Error: bad instruction `vhi RN r3'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:13: Error: bad instruction `sum1ll RN r4'

[cc] C:\CooCox\CoIDE\workspace\FlashTest-Coocox-USB-LFN-Rus-PID_VID_RTOS\helix\real\arm\asmpoly_thumb2.S:14: Error: bad instruction `sum1lh RN r5'

......

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


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

Про это я не в курсе :( .

Я знаю ещё одну ложку дёгтя - .s Keila и .s иара тоже разные :(

Лично я буду ставить VS1011K :)

 

Посмотрите мануалы на GCC ....

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


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

Пока обошлось. Оказалось те *.s файлы не нужны в проекте. Уже допиливаю декодировку. Будет готово выложу проект.

 

По поводу скорости воспроизведения - где то неверно настроены предделители тактирования I2S. А может вообще частота внешний кварца сильно отличается от 8мгц.

В стандартной демке Audio_playback_and_record та же ситуация.

Если при инициализации EVAL_AUDIO_Init(OUTPUT_DEVICE_AUTO, volume, AudioFreq);

 

AudioFreq домножить на небольшйо коэффицинет, то можно добиться нужной частоты вывода звука.

 

Оказалось те *.s файлы не нужны в проекте.

 

Поторопился с выводами. Нужны. Еще немного покопаюсь с настройками и наверно перенесу проект в Keil.

 

Я вообще в Coocox не вижу настроек gcc ассемблера. Может он вообще с ним не может работаь?

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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