ПОМОГИТЕ,я уже полностью запутался, а начальство подгоняет.
Имеется отладочная плата от 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;
}