ПОМОГИТЕ,я уже полностью запутался, а начальство подгоняет. Имеется отладочная плата от ATMEL. Я написал простенькую тестовую програмку для проверки интерфейса RMII на IAR, а на выходах Tx ничего нет, даже нет TxEN, частота 50мГц есть. Если можно, скиньте мне какой нибудь действующий проект в IAR с Ethernetom или подскажите где ошибка. ПЛИЗ. Ответ можно написать мне на ящик Solopihin_sasha@rambler.ru
#include "AT91RM9200.h" #include "lib_AT91RM9200.h"
void init_PIOB (void) { *AT91C_PIOB_PER=0x00000007;// PIO Enable Register PB0-PB2-enable *AT91C_PIOB_OER=0x00000007;// Output Enable Register PB0-PB2-enable out *AT91C_PIOB_OSR=0x00000007;// Output Status Register PB0-PB2-out }
void init_PIOA (void) { *AT91C_PIOA_PDR=0x0001FF80;// PIO Disable Register - enables peripheral control of the pin *AT91C_PIOA_ASR=0x0001FF80;//Peripheral A *AT91C_PIOA_PPUER=0x0001FF80;//Pull UP *AT91C_PIOA_OER=0x0001FF80;//OUTPUT Enable *AT91C_PIOA_OWER=0x0001FF80;//PIO Output Write Enable }
void main (void) { *AT91C_PMC_PCER=0xffffffff;//1<<24;//Re-enable Peripheral clock EMAC *AT91C_EMAC_CTL |= 0x00000020;//Clear internal statistics
init_PIOB();//Init PIOB init_PIOA();//Init PIOA *AT91C_EMAC_CTL=0x00000018;//Transmit enable and Management Port Enable *AT91C_EMAC_CFG=0x00002803;//Full duplex,100mbit,RMII,1518byte,MCK/32 //--------------------- *AT91C_EMAC_SA1L = (mac_addr[3] << 24) | (mac_addr[2] << 16) | (mac_addr[1] << 8) | (mac_addr[0]); *AT91C_EMAC_SA1H = (mac_addr[5] << 8) | (mac_addr[4]); *AT91C_EMAC_SA2L = 0; *AT91C_EMAC_SA2H = 0; //--------------------- Start: if ((*AT91C_EMAC_TSR&0x00000010)==0){//if Ethernet Transmit Buffer not Queued *AT91C_EMAC_TAR=0x00000000;//Adress 0X00000000 (TEST) *AT91C_EMAC_TCR=0x00000044;//68 byte }
goto start; }
|