Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Si1000/IAR8051/EzMacPro 3.0.1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
evsx1
Добрый день
Занимаюсь контроллером Si1000 в связке с IAR+C-Spy. Пробую запустить стек от производителя,однако столкнулся с проблемой, при инициализации работы стека вываливаюсь в ошибку fEZMacPRO_StateErrorEntered=1 и при выполнении функции EZMacPRO_Init() останавливаюсь на while (EZMacProReg.name.MSR != EZMAC_PRO_IDLE). Вывод NIRQ заведен Р0.1, на P1.7 и P2.0 светодиоды.
тактовую частоту завожу:
Код
OSCICN      |= 0x80; //24,5MHz
    CLKSEL      = 0x00;
    FLSCL       = 0x40;
    FLWR        = 0x01;

    /* Wait for clock to get ready. */
    while(!(CLKSEL & 0x80));

Настройка портов следующая
Код
SBIT (SDN, SFR_P2, 5);
SBIT(NSS, SFR_P1, 3);
//////////
XBR1    |= 0x40;                     // Enable SPI1 (3 wire mode)
   P1MDOUT |= 0x95;                    // SCK1, MOSI1, & NSS1,push-pull
   SFRPAGE   = CONFIG_PAGE;
   P1DRV     = 0x15;                   // MOSI1, SCK1, NSS1, high-current mode
   SFRPAGE   = LEGACY_PAGE;
   SDN = 0;
   XBR2 |= 0x40;
   //SDN = 0;
   NSS = 1;
   P2MDOUT |= 0x41;                    // SDN P2.6 push-pull

   P2DRV   |= 0x40;                    // SDN  P2.6 high-current mode
  
   IT01CF    = 0x01;                   // INT0 mapped to P0.1 active low
   TCON &= ~0x03;


main.c и настройки стека. На шаге инициализации стека виснем в ошибке
Код
#define SYSCLK_HZ                     (24500000)
#define SYSCLK_KHZ                    (SYSCLK_HZ/1000)
#define FREQUENCY_BAND_868
#define TRANSCEIVER_OPERATION
#define FOUR_CHANNEL_IS_USED
#define EXTENDED_PACKET_FORMAT
#define PACKET_FORWARDING_SUPPORTED

PORT_Init ();
   SystemClkInit();
   Timer3Init();
   LED1= false;
   LED2= false;
    StateMachine_Init();
while (1){  
  
    switch(DEMO_SR)
    {
        case /*DEMO_SR_STATE_BOOT_BIT*/0x10:
            /* Initialise board. */
                       /* Enable global interrupts. */
            ENABLE_GLOBAL_INTERRUPTS();
            /* Initialise EZMacPRO. */
            EZMacPRO_Init();
            /* Wake up from Sleep.*/
            EZMacPRO_Wake_Up();
evsx1
Разобрался сам,проблема была во времени старта кварца. Дефолтное значение 1,5мс, мой стартует за 2мс
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.