hat er doch meinte er!?- Takt auf AFIO geschaltet (RCC_APB2ENR, Bit 0 = 1).
hat er doch meinte er!?- Takt auf AFIO geschaltet (RCC_APB2ENR, Bit 0 = 1).
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
@Ceos:
Okay, sorry, das habe ich jetzt im Code nicht gesehen.
evtl. muss er auch noch den IOPBEN: IO port B clock enable einschalten ? da bin ich mir aber nicht sicher.
Ich hab das bei meinen LPC Cortex Controllern auch,
dass da etliche von Clocks erstmal eingeschaltet werden müssen,
damit man auf die Register überhaupt zugreifen kann.
Siro
Hallo und schönen Abend allerseits
DANKE erstmal für die Antworten.
. . . der Chip hat 64 Pins - also sollte der Remapp eigentlich funktionieren.
. . . Takt für Port B und auch für AFIO ist AN.
. . . CAN Rx -PB8 wurde auch schon mal ins input floating gesetzt - ohne Erfolg.
In mehreren C-Codes mit Librarys wird der Rx Pin in GPIO_Mode_IPU = Input, Pull Up gesetzt. So habe ich es auch gemacht. Das ist aber erst für den CAN Daten Transfer wichtig, so weit ist es leider noch nicht.
Die Frage ist eigentlich - wie kriegt man die AFIO zum laufen?
Warum werden die Bits im AFIO_MAPR Register nicht gesetzt? Jedes Bit steht auf 0 und reagiert auf nichts.
Die GPIO Register für Port B kann ich sogar in Eclipse in der View "Variable" mit neuen Werten belegen. Es geht.
Das AFIO_MAPR reagiert auf gar nichts, kein Bit - so als ob das Register defekt ist oder keinen Takt bekommt.
Ich meine - theoretisch kann natürlich schon mal was zu Bruch gehen aber - die Dinge sind ja fast unkaputbar, oder . . . ???
Geändert von arwar52 (26.02.2019 um 20:30 Uhr)
Ein defektes Register ist quasi ausgeschlossen, aber ich habe über die Suche nach ähnlichen Problemen 2 Dinge gefunden
Zum einen scheint das Register WriteOnly zu sein, jedes zurücklesen wird also sinnlos sein. Wie sich das mit dem debug monitor verhält kann ich dir nicht sagen.
Zum anderen lese ich immer weider von einem gelösten Issue mit der library aber keine konkreten Hinweise oder tiefer gehende Links, aber es hört sich so an als ob du mal deine Libarys und die IDE/Compiler auf Aktualisierungen prüfen solltest
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
. . . @ Siro
Alle andere Schnittstellen habe ich schon ausgeschaltet - kein Takt, keine Aktivierung.
Remapp muss, leider, sein da nur über PB8 und PB9 CAN mit dem auf Board verhandenen CAN Transiver connected ist.
Aus RM0008 - Reference manual, Seite 184 - 185
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++
Bits 14:13 CAN_REMAP[1:0]: CAN alternate function remapping
These bits are set and cleared by software. They control the mapping of alternate functions
CAN_RX and CAN_TX in devices with a single CAN interface.
00: CAN_RX mapped to PA11, CAN_TX mapped to PA12
01: Not used
10: CAN_RX mapped to PB8, CAN_TX mapped to PB9 (not available on 36-pin package)
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++
- - - Aktualisiert - - -
@ Ceos " . . . Zum einen scheint das Register WriteOnly zu sein, jedes zurücklesen wird also sinnlos sein."
Laut "RM0008 - Reference manual, Seite 184 - 185" " . . . STM32F103xx, . . ." ist der Register "ReadWrite".
NUR Read - hat Sinn aus meiner Sicht, . . . was für ein Sinn steckt daninter ein Register NUR Writable zu machen???
Obwohl auch in diesem Reg. sind die SWJCFG Bits NUR Writable ???
![]()
Die Gründe sind sicher mannigfaltig, aber ja, es scheinen tatsächlich nur die Bits zu sein, also unwichtig für dein Problem ...
bietet STM nicht üblicherweise auch ein Tool an mit dem man die Peripherie vorkonfigurieren kann?! Vielleicht findest du den notwendigen Trick in dem generierten Code?
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Hab gerade noch was gefunden zu den SWJ_CFG . . .
++++++++++++++++++++
Bits 26:24 SWJ_CFG[2:0]: Serial wire JTAG configuration
These bits are write-only (when read, the value is undefined). They are used to configure the
SWJ and trace alternate function I/Os. The SWJ (Serial Wire JTAG) supports JTAG or SWD
access to the Cortex® debug port. The default state after reset is SWJ ON without trace.
This allows JTAG or SW mode to be enabled by sending a specific sequence on the JTMS /
JTCK pin.
000: Full SWJ (JTAG-DP + SW-DP): Reset State
001: Full SWJ (JTAG-DP + SW-DP) but without NJTRST
010: JTAG-DP Disabled and SW-DP Enabled
100: JTAG-DP Disabled and SW-DP Disabled
Other combinations: no effect
++++++++++++++++++++
Kann die Einstellung dieser Bits was bewirken?
Lesezeichen