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

mirr

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник
  1. можно вот так: // обработчик прерывания. вызывается через 1 сек void TC0_ISREntry( void ) { unsigned long STATUS = AT91C_BASE_TC0->TC_SR; //тут изменяешь состояние светодиода AT91C_BASE_AIC->AIC_IVR = 0; AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_TC0); /* End the interrupt in the AIC. */ AT91C_BASE_AIC->AIC_EOICR = 0; } // ---------------- INITIALIZE TCO ---------------- AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_TC0); AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS; AT91C_BASE_TC0->TC_IDR = 0xFFFFFFFF; AT91C_BASE_TC0->TC_CMR = AT91C_TC_CLKS_TIMER_DIV5_CLOCK | AT91C_TC_CPCTRG; AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN; AT91C_BASE_TC0->TC_RC = 46285; // MCK / 1024 = 47,4МГц / 1024 => 1 сек AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG; AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS; // ---------------- INITIALIZE AIC FOR TCO ---------------- AT91C_BASE_AIC->AIC_IDCR = (1 << AT91C_ID_TC0); AT91C_BASE_AIC->AIC_SVR[AT91C_ID_TC0] = (unsigned int) TC0_ISREntry; AT91C_BASE_AIC->AIC_SMR[AT91C_ID_TC0] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 0x3; AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_TC0); AT91C_BASE_AIC->AIC_IECR = (1 << AT91C_ID_TC0);
  2. aaarrr и Сергей Борщ, спасибо что откликнулись!!! проблему решил, как говориться "работает так как написано". код программы сначала писался на другой плате пока разрабатывалась новая и там было безобидное моргание светодиодами, о которых я напрочь забыл :01: после того как переехал на новую плату. ну а закон подлости и склероз сработали на всю силу :(
  3. Привет всем!!! вот снова хочу обратиться к коллективному уму форума... проблема такая: к AT91SAM7X512 прикручен LCD 20x2. после подачи питания увидел такую картину: подсветка LCD начинает моргать, где-то раза 3 в сек. т.е. она постоянно вкл-выкл. подсветка управляется через транзистор, который управляется лапой МК. сначала подумал что что-то с транзистором, но потом выяснилось, что на 3х лапах МК (19-21) скачет напряжение от 0,7В до 3В. эти лапы настроены как PIO на выход, но управлять ими не получается, а точнее они не реагируют. с остальными лапами все нормально. вот код инициализации: #define DEF_BIT_19 0x00080000 #define DEF_BIT_20 0x00100000 #define DEF_BIT_21 0x00200000 #define DEF_BIT_22 0x00400000 #define DEF_BIT_23 0x00800000 #define DEF_BIT_24 0x01000000 #define DEF_BIT_25 0x02000000 #define DEF_BIT_26 0x04000000 #define RS DEF_BIT_26 #define RW DEF_BIT_25 #define E DEF_BIT_24 #define DB4 DEF_BIT_23 #define DB5 DEF_BIT_22 #define DB6 DEF_BIT_21 #define DB7 DEF_BIT_20 #define BL DEF_BIT_19 AT91C_BASE_PIOB->PIO_PER = RS | RW | E | DB4 | DB5 | DB6 | DB7 | BL; // Enable the PIO lines AT91C_BASE_PIOB->PIO_OER = RS | RW | E | DB4 | DB5 | DB6 | DB7 | BL; // Set PIO as output AT91C_BASE_PIOB->PIO_PPUER = RS | RW | E | DB4 | DB5 | DB6 | DB7 | BL; AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOB); // Enable the PIOB peripheral clock причем если настроить эти 3 лапы на вход, то с подтяжкой на них 3,46В, а без - 0,92В. и если эти лапы направить на периферию, то тоже все нормально (т.е. напряжение не скачет). не могу понять что за беда. поделитесь мыслями как решить эту проблему. буду очень благодарен!!!
  4. J0011D21BNL vs H1102

    Спасибо, всем откликнувшимся, за помощь!!!! Буду определяться...
  5. J0011D21BNL vs H1102

    вариант с Micrel рассмотрю, спасибо!!! вот вчера в доке "RTL8201BL PCB Layout Guide" (V1.00 2002-04-11) нашел вот такую фразу: Magnetic: Any Magnetic with Tx/Rx turn ration of 1:1/1:1 are suitable for RTL8201BL, such as Pulse PE68515/1012, Valor ST6118, YCL 20PMT04, DELTA LF8221, BH16ST8515, TAIMIC HSIP-002. тогда получается, что, теоретически, может подойти любой с соотношением 1:1/1:1 для Tx/Rx??? мне вот еще не понятно есть ли качественная разница между интегрированными и обычными трансформаторами?
  6. J0011D21BNL vs H1102

    а где такие рекомендации можно почитать, а то ни гугление, ни поиск по сайту Realtek не помог... :( в даташите есть требования к трансформатору, но я думал может есть что-то типо списка по прозводителям и моделям...
  7. J0011D21BNL vs H1102

    здравствуйте!!! у меня возникла задача передавать данные от устройства к ПК по ethernet. использую контроллер AT91SAM7X. в качестве PHY решил использовать RTL8201CP. а вот при выборе магнетки столкнулся с тем что есть как отдельные (например, H1102) так и интегрированные в RJ-45 (например, J0011D21BNL). подскажите, есть ли между ними какая-то разница, кроме корпуса и какой лучше выбрать?
  8. привет всем!!! необходимо встроить в девайс считывание отпечатка пальца для дальнейшей отправки на сервер. в инете встретил вот это AT77C101B и AT77SM0101BCB02VKE. может кто с ними сталкивался? насколько сложный зверь? или что-то другое можно применить? заранее всем благодарен за помощь!!!
  9. проблему решил. дело было в кабеле через который соединялись плата и комп, а именно плохо пропаянная земля, из-за чего уровень сигнала сдвинулся на 5В...
  10. AT91SAM7S256, влияние JETlink

    Привет всем!!! не могу понять странность: написал простенький проектик, в цикле моргает светодиод и отправляются данные по uart через ST232 на комп. если к МК подключен дэбаггер то все нормально работает. стоит отключить, так светодиод моргает, а данных по нет... код работы с uart рабочий, на другой плате все ок, только там МК общается по uart с SIM300... может у кого какие идеи есть, то подскажите, буду очень благодарен!!!!!! void BSP_USART_Init( void ) { CPU_INT32U pclk_freq; CPU_INT32U baud_rate = 9600;//115200; pclk_freq = BSP_CPU_ClkFreq(); /* Get the UART input clock frequency */ AT91C_BASE_PIOA->PIO_PDR = BSP_GPIOA_UART0; AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_US0); /* Enable the US0 peripheral clock */ /* ---------------------- SETUP US0 ----------------------- */ AT91C_BASE_US0->US_MR = AT91C_US_USMODE_NORMAL /* RS232C mode selected */ | AT91C_US_CLKS_CLOCK /* USART input CLK is MCK */ | AT91C_US_CHRL_8_BITS /* 8 bit data to be sent */ | AT91C_US_PAR_NONE /* No parity bit selected */ | AT91C_US_NBSTOP_1_BIT; /* 1 stop bit selected */ //| (0x2 << 14); /* !!!!!!!!!! LOOPBACK !!!!!!!!! */ /* Set the USART baud rate */ AT91C_BASE_US0->US_BRGR = (CPU_INT16U)(pclk_freq / baud_rate / 16)+1; /* ---------------- INITIALIZE AIC FOR US0 ---------------- */ /*pUS0->US_TPR = (AT91_REG)pUSBufferTX; pUS0->US_TCR = USBUFSIZE; pUS0->US_TNPR = (AT91_REG)0; pUS0->US_TNCR = 0;*/ AT91C_BASE_US0->US_RPR = (AT91_REG)pUSBufferRX; AT91C_BASE_US0->US_RCR = USBUFSIZE; AT91C_BASE_US0->US_RNPR = (AT91_REG)0; AT91C_BASE_US0->US_RNCR = 0; AT91C_BASE_US0->US_PTCR = AT91C_PDC_RXTEN; AT91C_BASE_AIC->AIC_IDCR = (1<<AT91C_ID_US0); AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US0] = (unsigned int)UsartHandler; AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US0] = (AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE|0x4); AT91C_BASE_AIC->AIC_IECR = (1<<AT91C_ID_US0); AT91C_BASE_US0->US_RTOR = 0x00FF; AT91C_BASE_US0->US_IER = AT91C_US_TIMEOUT;// | AT91C_US_RXRDY;// | AT91C_US_ENDRX; AT91C_BASE_US0->US_IDR = ~(AT91C_US_TIMEOUT);// | AT91C_US_RXRDY);// | AT91C_US_ENDRX); AT91C_BASE_US0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN; } void BSP_Ser_WrByte (CPU_INT08U tx_byte) { while ((AT91C_BASE_US0->US_CSR & AT91C_US_TXRDY) == 0){ /* Wait for room in the transmit register. */ ; } AT91C_BASE_US0->US_THR = tx_byte; } void BSP_Ser_WrStr (CPU_CHAR *tx_str) { while ((*tx_str) != 0) { BSP_Ser_WrByte(*tx_str++); } } static void AppTaskRf (void *p_arg) { . . . LED_On(); while (DEF_TRUE) { while(ind) { str[4 - ind] = ReadData(); ind--; } Reset_Fifo(); ind = 4; BSP_Ser_WrStr(str); if (Crc8(str, 3) == str[3]) { LED_Toggle(); } memset(str,0,5); } } shema.sch
  11. CAN на at91sam7x

    Всем привет! очень нужно мнение знающих людей о том насколько быстро можно разобраться с CAN на at91sam7x, насколько это сложно? есть ли в инете толковые исходники, литература? насколько я понял кроме контроллера нужен еще CAN трансивер типо PCA82C250...
  12. Здравствуйте, предложение отправил в личку.
  13. неа, не так... МОИ эксперименты с транзисторами к желаемому результату не привели... хочу попробовать поэкспериментировать с ОУ как Вы рекомендовали....
  14. ок, так а что мне тогда необходимо сделать чтоб этот фотодиод хорошо реагировал на видимое излучение??? какой светофильтр поставить???
  15. к сожалению результаты прежние... с транзисторами необходимого результата достич не удается... как я понял этот фотодиод чувствителен к инфракрасному излучению...
×
×
  • Создать...