Jump to content

    

grishkin

Участник
  • Content Count

    42
  • Joined

  • Last visited

Everything posted by grishkin


  1. Здравствуйте, Скажите пожалуйста как обстоят дела с поддержкой USB во FreeRTOS. Конкретно нужно сделать следующее: - USB to RS232 - USB Host for USB flash drive read/write - USB Device -> connect to PC - USB OTG
  2. Спасибо за NCPHA. Всё заработало. Уменя были недобрые подозрения в разном названии пинов и режимов в документации на фрамену и на камень. А как только увидел ваш пост сразу мелькнуло - "облажался". Куда высылать пиво? =))
  3. Этот случай возникает только, когда SCBR = 1, CPOL = 1 and NCPHA = 0. Возникает в режиме PDC. Нитого нитого я не использую.
  4. Почитал. Ничего подходящего под мой случай.
  5. Еррату не читал. Читал тока дока на неё. Там написано что держит 2 режима. 0. CPOL = 0 и CPHA = 0 3. CPOL = 1 и CPHA = 1 Пробовал оба режима, результат одинаковый.
  6. Пожалуйста вот чего не хватает. t_error spi_init( void ) { AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, ((unsigned int) AT91C_PA17_SPI0_MOSI) | ((unsigned int) AT91C_PA16_SPI0_MISO) | ((unsigned int) AT91C_PA18_SPI0_SPCK) | ((unsigned int) AT91C_PA15_SPI0_NPCS3), 0); AT91F_PIO_CfgPeriph( AT91C_BASE_PIOB, 0, 0 ); AT91F_SPI0_CfgPMC(); AT91F_SPI_Reset( AT91C_BASE_SPI0 ); AT91F_SPI_CfgMode( AT91C_BASE_SPI0, AT91C_SPI_MSTR | AT91C_SPI_PS_FIXED ); AT91F_SPI_CfgPCS( AT91C_BASE_SPI0, 0x07 ); AT91F_SPI_CfgCs( AT91C_BASE_SPI0, 3, AT91C_SPI_BITS_8 | AT91C_SPI_CSAAT | ( 48 << 8 ) | // Serial Clock Baud Rate ( 10 << 16 ) | // Delay Before SPCK ( 1 << 24 ) // Delay Between Consecutive Transfers ); AT91F_SPI_Enable( AT91C_BASE_SPI0 ); return SPI_ERR_SUCCESS; } u08 spi_read( void ) { while ( !( AT91C_BASE_SPI0->SPI_SR & AT91C_SPI_TXEMPTY ) ); return ( u08 )AT91F_SPI_GetChar( AT91C_BASE_SPI0 ); }
  7. Хочу просто прочесть статус регистр. t_error spi_write( u08 byte ) { while ( !( AT91C_BASE_SPI0->SPI_SR & AT91C_SPI_TXEMPTY ) ); AT91F_SPI_PutChar( AT91C_BASE_SPI0, ( unsigned int )byte, 3 ); return SPI_ERR_SUCCESS; } ... spi_write( 0x05 ); spi_write( 0xAA ); AT91C_BASE_SPI0->SPI_CR |= AT91C_SPI_LASTXFER; b = spi_read(); ... А вот ваш ответ меня совсем не радует. Очень не хочеться делать велосипед.
  8. С ног контроллера всё вылетает, а вот назад не возвращается. Причём осцилом смотрю на ногах фрамины.
  9. Есть камень at91sam7x256 и фрамина FM25L256. Настроил SPI, смотрю асцилом клоки есть, чипселект отрабатывает как надо, MOSI есть, я вно вижу байты которые посылаю. Фрамина молчит, в чём может быть проблема?
  10. Кому интересно. Делается это посредством установки чётности в SPACE/MARK. В результате получаем 9-бит данных. Это возможно только через raw serial driver, posix стандарт это не поддерживает.
  11. Поспешил я с выводом что время тика ракно 10мс. Оно конечно настраиваемо только вот я не пойму как мне добиться нужного значения. Принесли мне осцил, да и на глаз видно, что это не 10мс, как написано в документации про настройки по умолчанию, а медленнее раза в 2. Какой всё же должен быть RTC период, чтобы время тика ОСи было 10мс, а частота проца 48МГц.
  12. Настроил USART1 на 9 битную работу. Отправлять отправляет а принять в этом режиме не могу, хотя на асциле вижу ответ. Как нужно его настроить?
  13. На мой взгляд самое подходящее для разработчиков это gentoo.
  14. А почему бы не использовать графическую тулзу, или она чего то не умеет?
  15. Подскажите как с помощью cyg_io_set_config настроить порт со следующими настройками. 1 Start Bit 8 Data Bits 1 Mode Bit 1 Stop Bit Т.е. мне нужно сделать такую посылку: BYTE 1(Mode bit) BYTE1 0(Mode bit) ... BYTEN 0(Mode bit) принять такую: BYTE1 0(Mode bit) ... BYTEN 1(Mode bit)
  16. Спасибо. А то я начал делать всю обработку в обработчике будильника.
  17. В функции обработчике события от будильника нужно сделать задержку, cyg_thread_delay не работает, есть ли ещё вызовы с помощью которых можно сделать задержку?
  18. Спасибо. Тоже не плохо. Обязательно попробую
  19. Спасибо попробую. А не посоветуете какую нибудь более подробную документацию, нежели официальная
  20. Конфигурю графической утилитой. Делал clean после добавления пакета, не помогает. Через cli не пробовал, времени нет разбираться, но вроде как тоже самое.
  21. Хочу использовать POSIX вызовы в своей программе. Выбираю конфигурацию eCos - posix, для камня at91sam7x256. Начинаю собирать возникает ошибка "pprivate.h:103: error: ‘pthread_t’ does not name a type". Конфигурация default работает, в неё добавляю любое расширение POSIX, например, FILEIO и опять тоже самое: ошибка при компиляции "ecos/packages/io/fileio/current/src/io.cxx:426: error: ‘F_DUPFD’ was not declared in this scope". Как скомпилить мне eCos с поддержкой POSIX, возможно ли это для данного камня?
  22. Какую функцию для открытия порта нужно использовать при работе через termios: cyg_io_loop или open?