From dominik.schroeder at bh-informativ.de Wed Oct 7 15:27:21 2009 From: dominik.schroeder at bh-informativ.de (=?iso-8859-1?Q?Dominik_Schr=F6der?=) Date: Wed, 7 Oct 2009 15:27:21 +0200 Subject: [De-Nut-Discussion] Oscillator als main Takt verwenden Message-ID: <002e01ca4751$e6830630$b3891290$@schroeder@bh-informativ.de> Hallo Ich m?chte anstatt eines Quarzes, einen Oszillator (angeschlossen an XIN) als main Takt verwenden. Sehe ich das richtig, dass ich in der Datei at91_pmc.h die Register CKGR_MOSCEN auf 0 und CKGR_OSCBYPASS auf 1 setzen muss? Wenn ja, muss ich Ethernut dann neu compilieren oder reicht es meine Applikation neu zu compilieren? Muss ich sonst noch irgendwelche Bits setzen? Controller: At91SAM7X Ethernut Version: 4.9.6 Mit freundlichen Gr??en Dominik Schr?der Entwicklung Wolfgang Bachleitner und Gunther Heugel Elektronik oHG Boschstra?e 20 D-78655 Dunningen Tel.: +49 (0) 7403 - 9218 -32 Fax: +49 (0) 7403 - 9218 -39 E-Mail: dominik.schroeder at bh-informativ.de Registergericht: Stuttgart, HRA 471187 Sitz der Gesellschaft: Dunningen WEEE-Reg.-Nr.: DE 4653 7000 CONFIDENTIALITY : This e-mail and any attachments are confidential and may be privileged. If you are not a named recipient, please notify the sender immediately and do not disclose the contents to another person, use it for any purpose or store or copy the information in any medium. -------------- n?chster Teil -------------- Ein Dateianhang mit HTML-Daten wurde abgetrennt... URL: http://lists.egnite.de/pipermail/de-nut-discussion/attachments/20091007/a5f12472/attachment.html From harald.kipp at egnite.de Wed Oct 7 20:02:44 2009 From: harald.kipp at egnite.de (Harald Kipp) Date: Wed, 07 Oct 2009 20:02:44 +0200 Subject: [De-Nut-Discussion] Oscillator als main Takt verwenden In-Reply-To: <002e01ca4751$e6830630$b3891290$@schroeder@bh-informativ.de> References: <002e01ca4751$e6830630$b3891290$@schroeder@bh-informativ.de> Message-ID: <4ACCD7C4.9060005@egnite.de> Dominik Schr?der wrote: > Ich m?chte anstatt eines Quarzes, einen Oszillator (angeschlossen an XIN) > als main Takt verwenden. Sehe ich das richtig, dass ich in der Datei > at91_pmc.h die Register CKGR_MOSCEN auf 0 und CKGR_OSCBYPASS auf 1 setzen > muss? Wenn ja, muss ich Ethernut dann neu compilieren oder reicht es meine > Applikation neu zu compilieren? Muss ich sonst noch irgendwelche Bits > setzen? Nein, das w?re fatal. Die Definitionen in at91_pmc.h spiegeln die Hardware wieder, in diesem Fall die Bitmasken, um an diese Flags zu kommen. Die Initialisierung der Clock passiert in der Datei nut/arch/arm/init/crtat91sam7sex_rom.S welche von nut/arch/arm/init/crtat91sam7xXXX_rom.S included wird, wobei XXX die Flashgr??e angibt, also 128, 256 oder 512. Ist alles in Assembler, aber trotzdem leicht anzupassen. ldr r1, =PMC_BASE L?dt 0xFFFFFC00 in Register r1 mov r0, #(6 << 8) L?dt 0x600 in Register r0 orr r0, r0, #CKGR_MOSCEN Setzt Bit 0 von Register r0 str r0, [r1, #CKGR_MOR_OFF] Speichert Inhalt von r0 nach Adresse (r1 + 0x20) Also 0x601 nach 0xFFFFFC20 (CKGR_MOR) wait_moscs: ldr r0, [r1, #PMC_SR_OFF] tst r0, #PMC_MOSCS beq wait_moscs Die Schleife wartet, bis Bit 0 (MOSCS) in Register PMC_SR gesetzt ist. Keine Ahnung, ob man die ben?tigt, wenn man einen externen Oszillator verwendet. Wenn man mov r0, #(6 << 8) orr r0, r0, #CKGR_MOSCEN gegen mov r0, #CKGR_OSCBYPASS austauscht, k?nnte es schon funktionieren. Mangels Hardware kann ich das nicht selbst testen. Danach muss Nut/OS selbst neu compiliert und die Anwendung neu gelinkt werden. Um die Originaldateien nicht anzur?hren, kann man in der Liste arm_ld_choice in der Datei repository.nut einen neuen Eintrag einf?gen, z.B. at91sam7xcustom. Dann kopiert man crtat91sam7sex_rom.S nach crtat91sam7xcustom.S und nimmt darin die ?nderung vor. Zus?tzlich muss noch at91sam7xXXX_rom.ld nach at91sam7xcustom.ld kopiert werden, wobei XXX wieder entsprechend der Flashgr??e gesetzt wird. Nun kann man im Konfigurator unter Tools/GCC Settings/ARM Linker Script den neuen Eintrag at91sam7xcustom ausw?hlen und unter einer neuen Board-Konfiguration abspeichern. Harald Kipp