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

viael

Свой
  • Постов

    199
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о viael

  • Звание
    Частый гость
    Частый гость
  • День рождения 16.08.1978

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. STM32 CDC и Android

    А если так
  2. Вопрос закрыт. При инициализации надо очистить буфер приема и передачи.
  3. И снова NRF24L01

    Использую библиотеку с сайта нордика. Все регистры пишу согласно примерам. Все пишется и читается нормально( смотрю отладчиком ). В режиме приема на ноге IEREF=1.2V на VDD_PA=0V. В режиме передачи и там и там по нулям.Соответственно ничего не принимает и не передает. Модули самодельные по мотивам референс дизайна. Может какие то тонкости есть...? вот код #include <p24Fxxxx.h> #include "ChipInit.h" #include "Hal_nrf.h" #include "Hal_nrf_hw.h" #include "Radio.h" #define _trapISR __attribute__((interrupt,no_auto_psv)) //#define __ICD2RAM /** The address of the radio. Parameter to the radio init */ static uint8_t reg[24],address[HAL_NRF_AW_5BYTES] = {0x22,0x33,0x44,0x55,0x01}; static uint8_t pload[RF_PAYLOAD_LENGTH]; volatile uint8_t tmp; int main ( void ) { ChipInit(); hal_spi_init(); _LATA1=1; CE_LOW(); CSN_HIGH(); DelayMs(100); // Start as PRX in Enhanced // ShockBurst //hal_nrf_write_reg(RF_SETUP,7); hal_nrf_set_datarate(HAL_NRF_1MBPS); hal_nrf_set_output_power(HAL_NRF_0DBM); hal_nrf_close_pipe(HAL_NRF_ALL); // First close all radio pipes // Pipe 0 and 1 open by default hal_nrf_open_pipe(HAL_NRF_PIPE0, true); // Then open pipe0, w/autoack // Changed from sb/radio_sb.c hal_nrf_set_crc_mode(HAL_NRF_CRC_16BIT); // Operates in 16bits CRC mode hal_nrf_set_auto_retr(RF_RETRANSMITS, RF_RETRANS_DELAY); // Enables auto retransmit. // 3 retrans with 250ms delay // Changed from sb/radio_sb.c hal_nrf_set_address_width(HAL_NRF_AW_5BYTES); // 5 bytes address width hal_nrf_set_address(HAL_NRF_TX, &address[0]); // Set device's addresses hal_nrf_set_address(HAL_NRF_PIPE0, &address[0]); // Sets recieving address on // pipe0 //**************************************************************************** hal_nrf_set_operation_mode(HAL_NRF_PRX); // Enter RX mode hal_nrf_set_rx_pload_width((uint8_t)HAL_NRF_PIPE0, RF_PAYLOAD_LENGTH); // // Pipe0 expect // // PAYLOAD_LENGTH byte payload // // PAYLOAD_LENGTH in radio.h //**************************************************************************** // hal_nrf_set_operation_mode(HAL_NRF_PTX); // Enter TX mode //**************************************************************************** //hal_nrf_enable_dynamic_pl(); // Enables dynamic payload //hal_nrf_setup_dyn_pl(255); // Sets up dynamic payload on // all data pipes. hal_nrf_get_clear_irq_flags (); hal_nrf_set_rf_channel(RF_CHANNEL); // Operating on static channel // Defined in radio.h. // Frequenzy = // 2400 + RF_CHANNEL hal_nrf_set_power_mode(HAL_NRF_PWR_UP); // Power up device DelayMs(5); // читаем регистры для проверки // reg[0]=hal_nrf_read_reg(CONFIG); // Nop(); // reg[1]=hal_nrf_read_reg(EN_AA); // Nop(); // reg[2]=hal_nrf_read_reg(EN_RXADDR); // Nop(); // reg[3]=hal_nrf_read_reg(SETUP_AW); // Nop(); // reg[4]=hal_nrf_read_reg(SETUP_RETR); // Nop(); // reg[5]=hal_nrf_read_reg(RF_CH); // Nop(); // reg[6]=hal_nrf_read_reg(RF_SETUP); // Nop(); // reg[7]=hal_nrf_read_reg(OBSERVE_TX); // Nop(); // reg[8]=hal_nrf_read_reg(CD); // Nop(); // reg[9]=hal_nrf_read_reg(RX_PW_P0); // Nop(); // reg[10]=hal_nrf_read_reg(FIFO_STATUS); // Nop(); // hal_nrf_get_address(HAL_NRF_PIPE0,&reg[11]); // Nop(); // hal_nrf_get_address(HAL_NRF_TX,&reg[16]); // Nop(); // CE_HIGH(); // Set Chip Enable (CE) pin high to enable reciever while(1) { Nop(); ClrWdt(); DelayMs(1); //DelayMs(1000); //hal_nrf_write_tx_pload(pload, RF_PAYLOAD_LENGTH); // load message into radio //CE_PULSE(); if(_LATA1==1)_LATA1=0; else _LATA1=1; } return 0; } __attribute__(( auto_psv)) void _ISR _INT0Interrupt (void) { IFS0bits.INT0IF = 0; switch(hal_nrf_get_clear_irq_flags ()) { case (1<<HAL_NRF_MAX_RT): // Max retries reached hal_nrf_flush_tx(); // flush tx fifo, avoid fifo jam // radio_set_status (RF_MAX_RT); break; case (1<<HAL_NRF_TX_DS): // Packet sent // radio_set_status (RF_TX_DS); break; case (1<<HAL_NRF_RX_DR): // Packet received while (!hal_nrf_rx_fifo_empty ()) { hal_nrf_read_rx_pload(pload); } // radio_set_status (RF_RX_DR); break; case ((1<<HAL_NRF_RX_DR)|(1<<HAL_NRF_TX_DS)): // Ack payload recieved while (!hal_nrf_rx_fifo_empty ()) { hal_nrf_read_rx_pload(pload); } // radio_set_status (RF_TX_AP); break; default: break; } } З.Ы. Перепаивал чипы на новые (из другой партии), но тот же эффект.
  4. STM32 + Bootloader

    Разовая работа.Требуется написать криптобутлоадер для STM32F103 с SD карты (FAT32). Контакт: nebula2{sobaka}mail.ru
  5. :1111493779: Желающих подзаработать нет?
  6. Криптобулоадер для STM32

    Срочно нужна помощь! Делаю проект но в срок не успею сделать все сам.Необходим криптобутлоадер для STM32 c SD карточки(FAT32). Желающие помочь, пишите в личку. Ценник ваш.
  7. А есть какая нибудь информация относительно Atten ADS2202CA и RIGOL DS1102E. Я сейчас на них посматриваю, да вот не знаю на чем остановится. У Atten 200МГц полоса, но памяти 4к на канал, у RIGOL полоса 100МГц, но память 1М на канал, плюс RIGOL дешевле на 150$. Кто что посоветует на что лучше обратить внимание на большую память или на большую полосу. Осцил в основном будет использоваться для настройки микроконтроллерных девайсов, иногда передатчики 76-108Мгц,ремонт материнок. P.S. Про Atten ADS2202CA инфа в нете скудная и гарантия 1год против 3 для RIGOL напрягает. http://www.masteram.com.ua/ru/RIGOL-DS1102...scilloscope.php http://www.masteram.com.ua/index.php?optio...mp;currency=USD
  8. Судя по картинке это и есть QFN.Где вы там ноги увидели?
  9. The STM3210E-EVAL evaluation board is designed around the STM32F103Z microcontroller in a 144-pin TQFP package.
  10. STM32 LQFP100 & ext.SRAM multiplexed mode

    Нужна инфа по подключению SRAM к STM32f103VE LQFP100 в multiplexed mode. Даташит курил, но чето не нашел :(. Мож не там икал?
  11. AVR и Siemens M55

    попробуй микрочип гуй
  12. AVR и Siemens M55

    Можеш поверить, работает!!! Длина прводков тоже приблизительон 10см(кусок плоского шлейфа АТА).
  13. Отладка в SRAM

    Не морочь голову со scatter файлом. На вкладке Linker поставь галочкуUse Memory layout from Target Dialog. На вкладке Target в RO секции указываеш старт с адреса 0x40000000,Size(размер секции кода, я обычно для отладки делю срам пополам)0x8000. На вкладке RW Start=0x40008000, Size=0x8000. Создаеш файл RAM.ini примерно такого вида: FUNC void Setup (void) { // <o> Program Entry Point PC = 0x40000000; } LOAD OBJ\lcd.axf INCREMENTAL // название объектного файла Setup(); // Setup for Running g, main На вкладке Debug в качестве оладчика выбираеш J-Link, Initalization File = RAM.ini. Если используются стандартный стартап от Keilа, то во вкладке ASM в дефайнах указать REMAP, RAM_MODE, если нет то сделать ремап самому. Вот вроде фсе. :)
×
×
  • Создать...