Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Real time embedded FreeRTOS mailing list 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT Training




Loading

AT91SAM3U4E clock frequency

Posted by vito v on June 12, 2013
Hello,
i am using the at91Sam3U4E demo board, and the relative FreeRTOS port for IAR Workbench.
I noticed that from the pin of the main clock, i can't se any wave with my oscilloscope.
I expected to look something like a square wave, but i can see just a continuous signal.
I gave a look at the LowLevelinit() function, that i haven't changed, and there i found the settings for the clock.
Maybe there is something i have to change to get the signal working ?

Thank you in advance,
Vito Vecchio

RE: AT91SAM3U4E clock frequency

Posted by Richard on June 12, 2013
Is the problem that the clock is not feeding the MCU, and therefore you cannot run the program, or just that the clock is not visible on an external pin?

Regards.

RE: AT91SAM3U4E clock frequency

Posted by vito v on June 12, 2013
I have uart and leds running fine, i was trying to develop a iso7816 driver on usart1, then trying signals with oscilloscope i noticed i did not receive the clock signal, i mean it was a flat signal, so i try to look directly on the pin 24 of the cortex m3 (the clock pin), and it's always a flat signal. I don't know if it's normal or i should see the clock wave.

Thanks in advance,
Vito Vecchio

RE: AT91SAM3U4E clock frequency

Posted by vito v on June 12, 2013
sorry, to be more detailed, the pin is the PA24

RE: AT91SAM3U4E clock frequency

Posted by Richard on June 12, 2013
Sorry - that is very chip specific and not FreeRTOS related. Without looking at your code and getting the chip user guide and data sheet out myself I would have no idea what should be on that pin when.

Regards.

RE: AT91SAM3U4E clock frequency

Posted by vito v on June 12, 2013
Hello,
i post my functions here, this is my usart1 setting code:


#define USART_MODE_ISO7816_T0 (AT91C_US_USMODE_ISO7816_0 | AT91C_US_CLKS_EXT | AT91C_US_CHRL_8_BITS | AT91C_US_PAR_EVEN | AT91C_US_NBSTOP_2_BIT | AT91C_US_CKLO)

#define BOARD_PIN_USART_RXD PIN_USART1_RXD
#define BOARD_PIN_USART_TXD PIN_USART1_TXD
#define BOARD_PIN_USART_CTS PIN_USART1_CTS
#define BOARD_PIN_USART_RTS PIN_USART1_RTS
#define BOARD_USART_BASE AT91C_BASE_US1
#define BOARD_ID_USART AT91C_ID_US1

#define BOARD_ID_SMART AT91C_ID_US1


#define PINS_ISO7816_SMART PIN_USART1_TXD, PIN_USART1_SCK, PIN_ISO7816_RST_SMART, PIN_SMART_CONF_A, PIN_SMART_CONF_B

xComPortHandle xSmartPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
{
xComPortHandle xReturn = ( ( xComPortHandle ) 2 );
extern void ( vUART_ISR )( void );
const Pin xUSART_Pins[] = { PINS_ISO7816_SMART };




/* Create the queues used to hold Rx and Tx characters. */
xRxedISOChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
xTxedISOChars = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );

/* If the queues were created correctly then setup the serial port
hardware. */
if( ( xRxedISOChars != serINVALID_QUEUE ) && ( xTxedISOChars != serINVALID_QUEUE ) )
{
portENTER_CRITICAL();
{
/* Enable the peripheral clock in the PMC. */
PMC_EnablePeripheral( BOARD_ID_SMART );

/* Configure the USART. */
USART_Configure( BOARD_SMART_BASE, USART_MODE_ISO7816_T0, ulWantedBaud, configCPU_CLOCK_HZ );


/* Configure the interrupt. Note the pre-emption priority is set
in bits [8:15] of the priority value passed as the parameter. */
IRQ_ConfigureIT( BOARD_ID_SMART, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 8 ), USART1_IrqHandler );
IRQ_EnableIT( BOARD_ID_SMART );


/* Configure IO for USART use. */
PIO_Configure( xUSART_Pins, PIO_LISTSIZE( xUSART_Pins ) );


}
portEXIT_CRITICAL();
}
else
{
xReturn = ( xComPortHandle ) 0;
}

/* This demo file only supports a single port but we have to return
something to comply with the standard demo header file. */
return xReturn;
}




where USART_Configure is:


void USART_Configure(AT91S_USART *usart,
unsigned int mode,
unsigned int baudrate,
unsigned int masterClock)
{
// Reset and disable receiver & transmitter
usart->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX
| AT91C_US_RXDIS | AT91C_US_TXDIS;

// Configure mode
usart->US_MR = mode;

usart->US_IDR = -1;
usart->US_FIDI = 372;
// Configure baudrate
// Asynchronous, no oversampling
if(mode==USART_MODE_ISO7816_T0){
usart->US_BRGR = (masterClock / 3571200);
}


USART_SetTransmitterEnabled(usart, 1);
USART_SetReceiverEnabled(usart, 1);


// TODO other modes
}


where i didn't report the macro, is used the standard value as freeRTOS did.
It could be something missing in the USART_Configure ?

So i expected to find the clock signal on the PA24, since i enabled it with PMC_EnablePeripheal(), but can't see anything.


Thanks in advance for the reply,
Vito Vecchio


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.


Free TCP/IP and file system demos for the RTOS


Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists