Professional Documents
Culture Documents
AT91 Microcontroller
AT91RM9200DK
s s
Early Development Kit for the AT91RM9200 Now replaced by the AT91RM9200EK Main differences
- Less interfaces - No buffering
AT91 Microcontroller
JTAG Reset Enabling Buffers on Databus CompactFlash Interface SSC incompatability with AC97 Pullups on MMC connector Limited speed on SPI bus in block mode (Errata #13). Initial USB Functionality USB host port #2 not connected in TQFP package
AT91 Microcontroller
Jtag Reset
s s s
The JTAG TRST reset pin must get a valid reset at startup If not the CPU may or may not boot properly. Freezing spray or heating up CPU may release CPU
- Real issue is lack of JTAG reset
AT91 Microcontroller
JTAGSEL Signal
s
This signal allows to select the use of the JTAG Port: A low level on the JTAGSEL allows to select the ARM9's ICE A high level on the JTAGSEL allows to select the Boundary Scan function.
s s
AT91 Microcontroller
NWAIT
s s s
A low level input on NWAIT (PC6) disables the CPU clock. This does not depend on the PIO A setting. Setting PC6 in PIO Mode will not disable the NWAIT function
- see the AT91RM9200 errata
AT91 Microcontroller
Crystal on XIN/XOUT
s
If the crystal has a nominal frequency of less than 8 MHz, then a 1 kohm series resistor should be connected to the XOUT pin.
AT91 Microcontroller
Reset Pulsewidth
s s
Warm reset (when 32 kHz oscillator is running) is 92 us. Most reset circuits generate less Reset Circuits with > 1 s, can generate up to 3 seconds
- The MAX6390 used on the DK is 1120 .. 2420 ms.
s s s
s
April 2005 v1.0
AT91 Microcontroller
Power On Reset
- Precise Reset width
s s s
s s s
LED Status Larger AVRs can be used to increase functionality. Application code available from ulf@atmel.com
9
AT91 Microcontroller
10
AT91 Microcontroller
The Buffer Enable is using SDRAMCS inverted If there is no SDRAM access, then the system accesses the rest of the system SDRAMCS is asserted during SDRAM refresh.
- Conflict if CPU is accessing something else in parallel
11
AT91 Microcontroller
Adress Bus 24
s s s
Not routed on the chip Maximum contiguos memory is 16 MB A 32 MB memory needs to use [A25,A23..A1]
- Will create a 16MB hole between two 16 MB memory areas
12
AT91 Microcontroller
BMS = 0
- The CPU boots from external 16 bit Flash memory - Can be jumpered to 1 during production/upgrade
Allows simple flash programming
BMS = 1
- CPU boots from the internal bootROM - No jumper needed for production programming
13
AT91 Microcontroller
SDRAM controller
s
A2 on the CPU shall be connected to A0 on the SDRAM The SDRAM Controller datasheet shows A0 connected to SDRAM A0 The SDRAM controller is however routed through the External Bus Interface which shifts the SDRAM controller A0 to the A2 pin of the chip
14
AT91 Microcontroller
CompactFlash interface
s
Only functional in memory mode on the DK. Buffers Enable need to take care of more signals
- See FAQ at http://www.atmel.com/
Interrupts from card not supported on the DK, Neccessary in most case Early AT91RM9200DKs had layout bugs on the CF interface
- /RD, /WR swapped etc.
AT91 Microcontroller
AC-97
s
AC-97 requires a clock speed of 24.xx MHz. The SSC cannot run that fast and only supports one timeslot in each direction. Workaround is to use I2S codec with less functionality. AC-97 needs several timeslots. May be difficult to handle. Atmel is designing an AC97 controller for future chips.
16
AT91 Microcontroller
The pullups on the DK are the wrong values for MMC_CMD Trig on the first low to high transition of the CMD signal, use analog input on scope. While the bus is in open-drain mode (and 400kHz clk), the CMD signal looks like a RC low-pass filter with tau somewhere around 0.25 us, which is too slow. The most important issue was to pull-up the MMC_CMD line with a rather small resistor. (my temporary fix is to use a 2k2 pull-up resistor - this is probably NOT a good long term solution) The EK and DK does not use the same signals for this mux EK=PB22, DK=PB7
17
AT91 Microcontroller
s s s
Errata #13 causes the SPI chip select to go inactive if the PDC does not get enough cycles. Only happens on block transfers Never happens on 8/16 bit transfers Dataflashboot 1.02 siffers from the problem, needs update! Typically happens during heavy networking activity
- WLAN on Compactflash
Workaround:
- Reduce the speed of SPI (4 Mbps seems OK) - Force CS low using external H/W
AT91 Microcontroller
UART
s s
s s
When using flow control, speed is limited to 750 kBAUD When Hardware Handshaking is used and if CTS goes low near the end of the start bit of the transmitter, a character can be lost. Problem CTS must not go low during a time slot occuring between 2 Master Clock periods before the starting bit and 16 Master Clock periods after the rising edge of the starting bit. Fix/Workaround
- Use the Falling Edge of SCK to sync the CTS signal - Use the Falling Edge of TXD to clock a flip flop to assert Connect the CTS to the asynch set/clear of the flipflop to deassert
19
AT91 Microcontroller
TWI
s s s s
The TWI Linux 2.4 driver has significant problems TWI under 2.6 is significantly better Still random errors occur Recommendation:
- Solder two 10pF capacitors very next to the AT91RM9200
Between SDA and ground Between SCL and ground
20
AT91 Microcontroller
The BootROM assumes that the CPU has an 18.432 MHz XTAL USB will not be functional with another XTAL frequency
- USB DFU is not available when another speed is used.
21
AT91 Microcontroller
Only affected in TQFP version Linux 2.4 will report an error on host port #2 Believe fixed in Linux-2.6 S/W workaround
22
AT91 Microcontroller
23
AT91 Microcontroller
not needed
1.5K
s s s
Pull-up is active by default after reset (required by the boot application) No pull-down: DM is floating when the peripheral is disconnected The application shall monitor Vbus to remove the pull-up when the host switches off
24
AT91 Microcontroller
USB Client
s s s
Cannot be bus powered Required to handle pullup on USB bus within 100 ms Reset time is 900 ms. Also hard to handle suspend current of 500 uA.
25
AT91 Microcontroller
Recommended Layout
s
26
AT91 Microcontroller
All our products are compliant with JEDEC J-STD-20 Reflow profile, and the moisture sensitivity to this product is LEVEL 3 with 220C max reflow temperature. This is for CI parts (not RoHS)
27
AT91 Microcontroller
RTC is not backed up. May need external RTC on the AT91RM9200. Is fixed on later generation chips like the AT91SAM9261
28
AT91 Microcontroller
29
AT91 Microcontroller
Ethernet Clock
s s
Using a clock generated by the onchip PLL is not advisable Use a separate crystal for the Ethernet PHY.
- Check with your PHY vendor
30
AT91 Microcontroller
Some switches cannot handle 100 Mbit Full Duplex properly The problem only occurs when connecting through a low cost Ethernet switch (D-Link DGS-1008 etc.) Multicasting is especially problematic. They had set originally set the PHY to 100 Mbit Full Duplex. The switch starts auto-negotiation, detects the 100 Mbps speed and configures itself as 100 Mbit Half-Duplex.The mismatch betweent the AT91 FD and the switch HD results in packet loss. Strapping the PHY to auto-negotiation or half-duplex seems to resolve the problem.
s s
31
AT91 Microcontroller
Flash
s s s
The AT91RM9200 can work with Parallel or serial flash Serial Flash = Dataflash or Serial EEPROM. Serial EEPROM is not available on the AT91SAM9261. Dataflash has smaller footprint Available up to 64 Mbit today (August 2005). 128 Mbit soon to be released (2006?) 8 pin SO footprint (CASON package) Supported on U-boot/Linux 2.6.12 (JFFS2 support) Atmel has 32/64/128 Mbit parallel flash (also Strataflash 2nd src)
32
s s
AT91 Microcontroller
Symptom:
- CPU sometimes getting bad data from the SDRAM. - Setting the CPU/MCK ratio to 90/45 makes the problem go away.
33
AT91 Microcontroller
Check your CPU and PLL voltage supplies for glitches and dropouts around the time of the error.
- We changed/removed an inductor near the PLL circuit and the problem went away.
34
AT91 Microcontroller
s s
If you based your board on the DK, then you would be initializing the SDRAM in ROMBOOT so you can transfer U-Boot from Dataflash to the SDRAM, and then run U-Boot from SDRAM. U-Boot should not configure the SDRAM. Is this the case? Did you set/change your CPU/master_clock ratio correctly?
usually is 180/60 e.g. 90/45 is a good setting to try. You have to make the change in romboot and in u-boot/include/configs/yourboard.h
s s s s s s
Have you double checked you SDRAM clock? usually is 60MHz Did you calculate SDRAMC_CR correctly? Did you calculate SDRAMC_TR correctly? Did you set the bus width correctly? Does it always crash in the same place?
if it does, then you can probably isolate it.
35
AT91 Microcontroller
Program the PLL and enable it. Write to CP15 to switch from Fast Clock to Asynchronous Clock Enable the Instruction Cache Enable the MMU (Without the MMU, the Data cache is disabled) Enable the Datacache Ensure that the MMU page table entries are cacheable. Ensure minimum waitstates are used NWAIT must not be floating
36
AT91 Microcontroller
Enabling cache
s
If the PDC writes to an area of memory which is already inside the datacache, the PDC values will not be visible until the cache is flushed! Set the PDC buffers to be non-cacheable in the page tables.
37
AT91 Microcontroller
The AT91SAM9261 starts from 32 kHz The ARM926E core inside uses a synchronous JTAG Interface
- Max JTAG Speed (using J-Link) = CPU clock / 6
32.768 kHz / 6 = 5.45 kHz Only an issue if you do not use SAMBA BootROM and try to load the initial program using JTAG
38
AT91 Microcontroller
The Boot Mode Select pin "Rpullup" has a typo in the datasheet (page 606). It claims: Minimum: 70kOhm, Typical: 10kOhm, Maximum: 175kOhm... Early tests point to 15 kOhm. 1 kOhm pulldown was neccessary for one customer to force booting from external memory
s s
39
AT91 Microcontroller
AT91SAM9261 Watchdog
s s
The BootROM disables the Watchdog PERMANENTLY If the Watchdog is needed, then the BootROM cannot be used
- A possible workaround is to use an external Watchdog
40
AT91 Microcontroller
41
AT91 Microcontroller
While the PCB supports the Embedded Trace, the connector is not mounted on board
42
AT91 Microcontroller
43
AT91 Microcontroller
The AT91SAM9261 BootROM disables NPCS3 Dataflashboot and U-Boot does NOT disabled NPCS3.
- It is currently not useful to connect J21 2-3
44
AT91 Microcontroller
Current Implementation
Proposed Implementation
45