Why are logically related bit fields in MCU registers often in separate locationsWhy are there no 256-bit or 512-bit microprocessors?I2C slave address not acknowledged (sometimes)how to access the bit fields of an registers in microcontrollerEndian problem on STM32It is better to fix x's in the simulation or in the design?SPI transaction between FPGA and MicrocontrollerWhy does PIC MCU have (and needs) duplicate registers?Configure UCSCTL0 register MSP430F5529Detecting DMA overflow in arbitrary waveform generationBus fault when accessing mcu internal peripheral

Is there a way to generate a mapping graph like this?

Vehemently against code formatting

Germany rejected my entry to Schengen countries

How to tease a romance without a cat and mouse chase?

How could Dwarves prevent sand from filling up their settlements

Hotel booking: Why is Agoda much cheaper than booking.com?

pwaS eht tirsf dna tasl setterl fo hace dorw

Is there a word for pant sleeves?

Does science define life as "beginning at conception"?

Filter a file list against an integer array?

Way of refund if scammed?

How should I mix small caps with digits or symbols?

How would a physicist explain this starship engine?

Do most Taxis give Receipts in London?

Why use nominative in Coniugatio periphrastica passiva?

How to play vs. 1.e4 e5 2.Nf3 Nc6 3.Bc4 d6?

1950s or earlier book with electrical currents living on Pluto

Circuit construction for execution of conditional statements using least significant bit

Department head said that group project may be rejected. How to mitigate?

What causes a person to remain in this world as a ghost?

How can I use 400 ASA film in a Leica IIIf, which does not have options higher than 100?

tikz: 5 squares on a row, roman numbered 1 -> 5

How do we explain the use of a software on a math paper?

Gambler's Fallacy Dice



Why are logically related bit fields in MCU registers often in separate locations


Why are there no 256-bit or 512-bit microprocessors?I2C slave address not acknowledged (sometimes)how to access the bit fields of an registers in microcontrollerEndian problem on STM32It is better to fix x's in the simulation or in the design?SPI transaction between FPGA and MicrocontrollerWhy does PIC MCU have (and needs) duplicate registers?Configure UCSCTL0 register MSP430F5529Detecting DMA overflow in arbitrary waveform generationBus fault when accessing mcu internal peripheral






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2












$begingroup$


Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.



I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.



One example is the USART_CR1 register on the STM32746ZG. The M0 and M1 bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00 specifies 8-bits, 0b01 specifies 9-bits, etc. This is all quite straightforward, except that M0 is at bit 12 and M1 is at bit 28... why is this?



Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?



Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.










share|improve this question







New contributor



ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






$endgroup$


















    2












    $begingroup$


    Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.



    I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.



    One example is the USART_CR1 register on the STM32746ZG. The M0 and M1 bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00 specifies 8-bits, 0b01 specifies 9-bits, etc. This is all quite straightforward, except that M0 is at bit 12 and M1 is at bit 28... why is this?



    Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?



    Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.










    share|improve this question







    New contributor



    ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






    $endgroup$














      2












      2








      2





      $begingroup$


      Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.



      I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.



      One example is the USART_CR1 register on the STM32746ZG. The M0 and M1 bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00 specifies 8-bits, 0b01 specifies 9-bits, etc. This is all quite straightforward, except that M0 is at bit 12 and M1 is at bit 28... why is this?



      Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?



      Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.










      share|improve this question







      New contributor



      ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      $endgroup$




      Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.



      I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.



      One example is the USART_CR1 register on the STM32746ZG. The M0 and M1 bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00 specifies 8-bits, 0b01 specifies 9-bits, etc. This is all quite straightforward, except that M0 is at bit 12 and M1 is at bit 28... why is this?



      Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?



      Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.







      microcontroller stm32 embedded






      share|improve this question







      New contributor



      ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share|improve this question







      New contributor



      ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share|improve this question




      share|improve this question






      New contributor



      ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      asked 1 hour ago









      ajxsajxs

      1113




      1113




      New contributor



      ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




      New contributor




      ajxs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          2 Answers
          2






          active

          oldest

          votes


















          1












          $begingroup$

          You are right with




          "..for legacy design reasons, such as a new feature was inserted into previously reserved space..".




          As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.



          That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.






          share|improve this answer









          $endgroup$




















            1












            $begingroup$


            Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?




            In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.



            For example, here is the USART_CR1 register of the old STM32F1xx family.




            STM32F1xx register USART_CR1 bit usage



            Figure 1. STM32F10xxx USART_CR1 register usage



            Image source: STM32F10xxx family reference manual RM0008, section 27.6.4




            That older USART (with only 2 word length options) needs only one M bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".



            As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0, with M1 now in bit 28 (previously reserved in the STM32F1 register map, as you see above).




            STM32F74xxx register USART_CR1 bit usage



            Figure 2. STM32F74xxx USART_CR1 register usage



            Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1




            They couldn't put the new M1 bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.



            So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.



            Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.






            share|improve this answer











            $endgroup$








            • 1




              $begingroup$
              Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
              $endgroup$
              – ajxs
              43 mins ago






            • 1




              $begingroup$
              @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
              $endgroup$
              – SamGibson
              34 mins ago






            • 1




              $begingroup$
              That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
              $endgroup$
              – ajxs
              31 mins ago











            Your Answer






            StackExchange.ifUsing("editor", function ()
            return StackExchange.using("schematics", function ()
            StackExchange.schematics.init();
            );
            , "cicuitlab");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "135"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            ajxs is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f439226%2fwhy-are-logically-related-bit-fields-in-mcu-registers-often-in-separate-location%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1












            $begingroup$

            You are right with




            "..for legacy design reasons, such as a new feature was inserted into previously reserved space..".




            As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.



            That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.






            share|improve this answer









            $endgroup$

















              1












              $begingroup$

              You are right with




              "..for legacy design reasons, such as a new feature was inserted into previously reserved space..".




              As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.



              That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.






              share|improve this answer









              $endgroup$















                1












                1








                1





                $begingroup$

                You are right with




                "..for legacy design reasons, such as a new feature was inserted into previously reserved space..".




                As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.



                That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.






                share|improve this answer









                $endgroup$



                You are right with




                "..for legacy design reasons, such as a new feature was inserted into previously reserved space..".




                As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.



                That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 51 mins ago









                Rajesh SRajesh S

                14513




                14513























                    1












                    $begingroup$


                    Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?




                    In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.



                    For example, here is the USART_CR1 register of the old STM32F1xx family.




                    STM32F1xx register USART_CR1 bit usage



                    Figure 1. STM32F10xxx USART_CR1 register usage



                    Image source: STM32F10xxx family reference manual RM0008, section 27.6.4




                    That older USART (with only 2 word length options) needs only one M bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".



                    As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0, with M1 now in bit 28 (previously reserved in the STM32F1 register map, as you see above).




                    STM32F74xxx register USART_CR1 bit usage



                    Figure 2. STM32F74xxx USART_CR1 register usage



                    Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1




                    They couldn't put the new M1 bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.



                    So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.



                    Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.






                    share|improve this answer











                    $endgroup$








                    • 1




                      $begingroup$
                      Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
                      $endgroup$
                      – ajxs
                      43 mins ago






                    • 1




                      $begingroup$
                      @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
                      $endgroup$
                      – SamGibson
                      34 mins ago






                    • 1




                      $begingroup$
                      That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
                      $endgroup$
                      – ajxs
                      31 mins ago















                    1












                    $begingroup$


                    Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?




                    In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.



                    For example, here is the USART_CR1 register of the old STM32F1xx family.




                    STM32F1xx register USART_CR1 bit usage



                    Figure 1. STM32F10xxx USART_CR1 register usage



                    Image source: STM32F10xxx family reference manual RM0008, section 27.6.4




                    That older USART (with only 2 word length options) needs only one M bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".



                    As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0, with M1 now in bit 28 (previously reserved in the STM32F1 register map, as you see above).




                    STM32F74xxx register USART_CR1 bit usage



                    Figure 2. STM32F74xxx USART_CR1 register usage



                    Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1




                    They couldn't put the new M1 bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.



                    So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.



                    Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.






                    share|improve this answer











                    $endgroup$








                    • 1




                      $begingroup$
                      Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
                      $endgroup$
                      – ajxs
                      43 mins ago






                    • 1




                      $begingroup$
                      @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
                      $endgroup$
                      – SamGibson
                      34 mins ago






                    • 1




                      $begingroup$
                      That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
                      $endgroup$
                      – ajxs
                      31 mins ago













                    1












                    1








                    1





                    $begingroup$


                    Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?




                    In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.



                    For example, here is the USART_CR1 register of the old STM32F1xx family.




                    STM32F1xx register USART_CR1 bit usage



                    Figure 1. STM32F10xxx USART_CR1 register usage



                    Image source: STM32F10xxx family reference manual RM0008, section 27.6.4




                    That older USART (with only 2 word length options) needs only one M bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".



                    As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0, with M1 now in bit 28 (previously reserved in the STM32F1 register map, as you see above).




                    STM32F74xxx register USART_CR1 bit usage



                    Figure 2. STM32F74xxx USART_CR1 register usage



                    Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1




                    They couldn't put the new M1 bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.



                    So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.



                    Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.






                    share|improve this answer











                    $endgroup$




                    Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?




                    In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.



                    For example, here is the USART_CR1 register of the old STM32F1xx family.




                    STM32F1xx register USART_CR1 bit usage



                    Figure 1. STM32F10xxx USART_CR1 register usage



                    Image source: STM32F10xxx family reference manual RM0008, section 27.6.4




                    That older USART (with only 2 word length options) needs only one M bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".



                    As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0, with M1 now in bit 28 (previously reserved in the STM32F1 register map, as you see above).




                    STM32F74xxx register USART_CR1 bit usage



                    Figure 2. STM32F74xxx USART_CR1 register usage



                    Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1




                    They couldn't put the new M1 bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.



                    So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.



                    Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 10 mins ago

























                    answered 50 mins ago









                    SamGibsonSamGibson

                    12k41840




                    12k41840







                    • 1




                      $begingroup$
                      Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
                      $endgroup$
                      – ajxs
                      43 mins ago






                    • 1




                      $begingroup$
                      @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
                      $endgroup$
                      – SamGibson
                      34 mins ago






                    • 1




                      $begingroup$
                      That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
                      $endgroup$
                      – ajxs
                      31 mins ago












                    • 1




                      $begingroup$
                      Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
                      $endgroup$
                      – ajxs
                      43 mins ago






                    • 1




                      $begingroup$
                      @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
                      $endgroup$
                      – SamGibson
                      34 mins ago






                    • 1




                      $begingroup$
                      That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
                      $endgroup$
                      – ajxs
                      31 mins ago







                    1




                    1




                    $begingroup$
                    Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
                    $endgroup$
                    – ajxs
                    43 mins ago




                    $begingroup$
                    Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
                    $endgroup$
                    – ajxs
                    43 mins ago




                    1




                    1




                    $begingroup$
                    @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
                    $endgroup$
                    – SamGibson
                    34 mins ago




                    $begingroup$
                    @ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
                    $endgroup$
                    – SamGibson
                    34 mins ago




                    1




                    1




                    $begingroup$
                    That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
                    $endgroup$
                    – ajxs
                    31 mins ago




                    $begingroup$
                    That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
                    $endgroup$
                    – ajxs
                    31 mins ago










                    ajxs is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    ajxs is a new contributor. Be nice, and check out our Code of Conduct.












                    ajxs is a new contributor. Be nice, and check out our Code of Conduct.











                    ajxs is a new contributor. Be nice, and check out our Code of Conduct.














                    Thanks for contributing an answer to Electrical Engineering Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    Use MathJax to format equations. MathJax reference.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f439226%2fwhy-are-logically-related-bit-fields-in-mcu-registers-often-in-separate-location%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                    Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                    Tom Holland Mục lục Đầu đời và giáo dục | Sự nghiệp | Cuộc sống cá nhân | Phim tham gia | Giải thưởng và đề cử | Chú thích | Liên kết ngoài | Trình đơn chuyển hướngProfile“Person Details for Thomas Stanley Holland, "England and Wales Birth Registration Index, 1837-2008" — FamilySearch.org”"Meet Tom Holland... the 16-year-old star of The Impossible""Schoolboy actor Tom Holland finds himself in Oscar contention for role in tsunami drama"“Naomi Watts on the Prince William and Harry's reaction to her film about the late Princess Diana”lưu trữ"Holland and Pflueger Are West End's Two New 'Billy Elliots'""I'm so envious of my son, the movie star! British writer Dominic Holland's spent 20 years trying to crack Hollywood - but he's been beaten to it by a very unlikely rival"“Richard and Margaret Povey of Jersey, Channel Islands, UK: Information about Thomas Stanley Holland”"Tom Holland to play Billy Elliot""New Billy Elliot leaving the garage"Billy Elliot the Musical - Tom Holland - Billy"A Tale of four Billys: Tom Holland""The Feel Good Factor""Thames Christian College schoolboys join Myleene Klass for The Feelgood Factor""Government launches £600,000 arts bursaries pilot""BILLY's Chapman, Holland, Gardner & Jackson-Keen Visit Prime Minister""Elton John 'blown away' by Billy Elliot fifth birthday" (video with John's interview and fragments of Holland's performance)"First News interviews Arrietty's Tom Holland"“33rd Critics' Circle Film Awards winners”“National Board of Review Current Awards”Bản gốc"Ron Howard Whaling Tale 'In The Heart Of The Sea' Casts Tom Holland"“'Spider-Man' Finds Tom Holland to Star as New Web-Slinger”lưu trữ“Captain America: Civil War (2016)”“Film Review: ‘Captain America: Civil War’”lưu trữ“‘Captain America: Civil War’ review: Choose your own avenger”lưu trữ“The Lost City of Z reviews”“Sony Pictures and Marvel Studios Find Their 'Spider-Man' Star and Director”“‘Mary Magdalene’, ‘Current War’ & ‘Wind River’ Get 2017 Release Dates From Weinstein”“Lionsgate Unleashing Daisy Ridley & Tom Holland Starrer ‘Chaos Walking’ In Cannes”“PTA's 'Master' Leads Chicago Film Critics Nominations, UPDATED: Houston and Indiana Critics Nominations”“Nominaciones Goya 2013 Telecinco Cinema – ENG”“Jameson Empire Film Awards: Martin Freeman wins best actor for performance in The Hobbit”“34th Annual Young Artist Awards”Bản gốc“Teen Choice Awards 2016—Captain America: Civil War Leads Second Wave of Nominations”“BAFTA Film Award Nominations: ‘La La Land’ Leads Race”“Saturn Awards Nominations 2017: 'Rogue One,' 'Walking Dead' Lead”Tom HollandTom HollandTom HollandTom Hollandmedia.gettyimages.comWorldCat Identities300279794no20130442900000 0004 0355 42791085670554170004732cb16706349t(data)XX5557367