1 / 45

AT91RM9200DK/SAM9261 FAQ What to check for in Your own design!

AT91RM9200DK/SAM9261 FAQ What to check for in Your own design!. By Ulf Samuelsson Atmel Nordic AB. AT91RM9200DK. Early Development Kit for the AT91RM9200 Now replaced by the AT91RM9200EK Main differences Less interfaces No buffering. Designs based on the AT91RM9200DK. JTAG Reset

kamil
Télécharger la présentation

AT91RM9200DK/SAM9261 FAQ What to check for in Your own design!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AT91RM9200DK/SAM9261 FAQWhat to check for in Your own design! By Ulf Samuelsson Atmel Nordic AB

  2. AT91RM9200DK • Early Development Kit for the AT91RM9200 • Now replaced by the AT91RM9200EK • Main differences • Less interfaces • No buffering

  3. Designs based on the AT91RM9200DK • 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

  4. Jtag Reset • 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

  5. JTAGSEL Signal • 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.

  6. NWAIT • 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

  7. Crystal on XIN/XOUT • 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.

  8. Reset Pulsewidth • The CPU needs a power up reset pulse of 900 ms. • This is to cover the 32 kHz oscillator startup. • 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. • The DS1834AS on the AT91RM9200EK is outside the spec. • Known bug of the EK. (300 ms only). • Typical oscillators starts up in 350 ms so it normally works anyway. • ATtiny13 as system MCU? • Texas Instruments TPS3803?

  9. ATtiny13 can be used for • Power On Reset • Precise Reset width • Brownout protection • Watchdog • Reset Button • Debounce • Short pulse (< 2 s) normal reset • Medium Pulse (2..10 s) Turn On/Off Watchdog • Long pulse (> 10 s) Set BMS high - force into Boot Monitor • LED Status • Larger AVRs can be used to increase functionality. • Application code available from ulf@atmel.com

  10. ATtiny13 Block Diagram + ATtiny13 LED /RESET BMS WDOG_ENA + WDOG SWITCH

  11. Enabling Buffers on the databus • 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 • Workaround: Qualify with all chip selects

  12. Adress Bus 24 • 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

  13. BMS (Boot Mode Select) pin • 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

  14. SDRAM controller • 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

  15. CompactFlash interface • 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 AT91RM9200DK’s had layout bugs on the CF interface • /RD, /WR swapped etc. • True-IDE requires extra decoding - not supported by CPU • See IDE Application Note

  16. AC-97 • AC-97 requires a clock speed of 24.xx MHz. • The SSC cannot run that fast and only supportsone 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.

  17. Pullup on MMC connector • 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 muxEK=PB22, DK=PB7

  18. Limited Speed of SPI in block mode • Errata #13 causes the SPI chip select to go inactive if the PDCdoes 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 • Errata #13 is fixed on new parts

  19. UART • 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 assertConnect the CTS to the asynch set/clear of the flipflop to deassert

  20. TWI • 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

  21. Initial USB functionality in BootROM • 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. • UART download is OK, due to Autobaud feature.

  22. USB Host Port #2 not connected • 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

  23. USB Host Power Management • Nothing Implemented on the EK.

  24. Capacitors not needed AT91RM9200EK schematics • 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 5V Vbus monitoring 1.5K Pull-up is active by default after reset

  25. USB Client • 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.

  26. Recommended Layout • Atmel does not supply a recommended layout at this time.

  27. Recommended solder temp profile • All our products are compliant with JEDEC J-STD-20 Reflow profile, and the moisture sensitivity to this product is LEVEL 3with 220C max reflow temperature. • This is for CI parts (not RoHS)

  28. Battery Backup of RTC • RTC is not backed up. • May need external RTC on the AT91RM9200.Is fixed on later generation chips like the AT91SAM9261

  29. If the 32 KHz does not work!!! • TST0,TST1 must be connected to Ground

  30. Ethernet Clock • Using a clock generated by the onchip PLL is not advisable • Use a separate crystal for the Ethernet PHY. • Check with your PHY vendor

  31. AT91RM9200 Ethernet Packet Loss • 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.

  32. Flash • 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)

  33. Investigating SDRAM problems • Several problems can *appear* to be SDRAM related • Actually isn't. • Symptom: • CPU sometimes getting bad data from the SDRAM. • Setting the CPU/MCK ratio to 90/45 makes the problem go away. • Crashing in random places: • Some voltage or current supply is usually marginal. • Something happens which causes the CPU to draw extra current

  34. Investigating SDRAM errors • 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.” • Run all memory tests from the CPU's internal memory • Perform full memory tests • (Needs modified Romboot/DataflashBoot to do this). • Run at full speed, not the default 48 MHz master clock

  35. Investigating SDRAM problems • 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 • Have you tried running at a slower speed? • 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 • 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. • Do other boards crash in exactly the same place?

  36. Running the AT91RM9200 at full speed • 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

  37. Enabling cache • 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.

  38. AT91SAM9261 JTAG Speed • 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

  39. ATSAM9261 BMS Pulldown • 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 forcebooting from external memory

  40. AT91SAM9261 Watchdog • 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 • This is an official Errata

  41. SAM9261 Battery backup • The CPU needs to have ~1.2V operation. • A clock battery is 1.5V

  42. SAM9261EK Embedded trace • While the PCB supports the Embedded Trace, the connector is not mounted on board

  43. AT91SAM9261EK Dataflashcard support • If the jumper J21 is in the 1-2 position • NPCS0 is connected to the internal dataflash • If the Jumper J21 is in the 2-3 position • NPCS0 is connected to the dataflashcard • It is ALSO connected to NPCS3 • When J21 2-3 is connected, the NPCS3 output must be disabled

  44. AT91SAM9261EK Dataflashcard support • The AT91SAM9261 BootROM disables NPCS3 • Dataflashboot and U-Boot does NOT disabled NPCS3. • It is currently not useful to connect J21 2-3 • Dataflashboot and U-Boot must reside on the internal flash • Fix is simple though • When J21 is 1-2, the Dataflashcard is available on NPCS3 • Address 0xD000_0000

  45. AT91SAM9261EK recommended Dataflashcard connection NPCS0 NPCS0 DF_CS DF_CS DFC_CS DFC_CS NPCS3 NPCS3 Current Implementation Proposed Implementation

More Related