Microcontroller Nedir

0 views
Skip to first unread message

Roser Blazado

unread,
Jun 30, 2024, 8:26:11 AM (2 days ago) Jun 30
to tysanbitee

The Common Microcontroller Software Interface Standard (CMSIS) simplifies microcontroller software development, providing a consistent and efficient interface for developers working with Cortex-M and entry-level Cortex-A processors. It promotes code reuse, portability, and interoperability, enabling developers to focus on application-level logic rather than dealing with low-level hardware details.

CMSIS provides interfaces to processor and peripherals, real-time operating systems, and middleware components and includes a delivery mechanism (CMSIS-Pack) for devices, boards, and software, and enables the combination of software components from multiple vendors. The content on keil.arm.com is extracted directly from CMSIS-Packs.

CMSIS is defined in close cooperation with various silicon and software vendors and provides a common approach to interface to peripherals, real-time operating systems, and middleware components. It is intended to enable interoperability of software components from multiple vendors.

Mikrodenetleyiciler gnn ihtiyaclarına gre retilmiş, neredeyse bir bilgisayarın yaptığı işi yapabilen, mikroişlemci bellek ve ara birimlerden oluşan tmleşik devrelerdir. İngilizce kısaltması MCU 'dur ( microcontroller unit). Mikrodenetleyicilerin tarihi mikroişlemciler kadar eskidir. İlk mikrodenetleyici TI (Texas Instruments) firmasının 1971'de rettiği TMS 1000 dir. İlk mikrodenetleyici ram, rom ,4 bitlik mikroişlemci ve giriş ıkış hatlarından oluşuyordu. İleriki yıllarda İntel, Microchip, Freescale ve birok firma Mikrodenetleyici retmeye başlamıştır. İntel 8051, Motorola 6800 gibi işlemciler halen mikrodenetleyiciler iin kullanılıyor.

Mikrodenetleyiciler bilgisayar, cep telefonu, otomobil sektr, beyaz eşya gibi birok elektronik cihazda kullanılırlar. Mikrodenetleyiciler ana blmden oluşur bunlar: mikroişlemci bellek ve arabirimlerdir. Şimdi bu birimleri inceleyelim.

Mikrodenetleyicilerde kullanılan işlemciler genelde basit ve az enerji hacayan RISC (basit işlemleri yapan işlemci trleri) mimarisi ile tasarlanmış işlemcilerdir. Bugn bu işlemcilerin yerini byk lde ARM işlemcilerinin aldığı sylenebilir, eski işlemcilerin retimi de yine devam etmektedir. Farklı bir işlemci geliştirmenin ve ona uygun derleyicinin yapılmasının maliyeti ve aynı zamanda kullanıcıların yeni bir işlemci ğrenme zorluğu gibi etkiler yeni mikrodenetleyicilerde ARM işlemcilerin yaygınlığını giderek arttırıyor. ARM kullanılmasında başka birok neden sayabiliriz. alışma hızı, gvenilirlik bunlardan bazıları.

Mikrodenetleyicilerde flash bellek ram ve ayrıca modeline bağlı olarak EEPROM bulunabilir. Ram bellek işlemci tarafından kullanılır, Flash bellek ise MCU iin yazılan programı tutmak iin kullanılır. EEPROM bellek ise yazılan program tarafından kullanılabilir.

Arabirimler mikroişlemci ile ıkış portlarına bağlanabilen ve herbiri zel bir grev yapan elektronik yapılardır. Yazılan programla kontrol edilirler. rneğin usb bir arabirimdir bunu programlayarak mikrodenetleyiciyi bilgisayara bağlayıp iletişim kurmasını sağlayabiliriz.

MCU larda ara birimler olduka fazladır.Timer, ADC (analog dijital evirici), DAC (dijital analog evirici), USART (evrensel senkron asenkron alıcı verici), CAN, IIC, USB,SPI. En sık kullanılanlar bunlar. Birok zel ama iin de arabirim eklenmiş mikrodenetleyicilerde vardır.

Bu arabirimlerden gelen veriler işlenir ve yine arabirimler sayesinde dışa aktarılır.rneğin ADC girişine sıcaklık len bir sensr bağlanır ve belli bir değere geldiğinde başka bir girişe bağlı olan motoru durdurabilir. Bugn bu btn klimalarda bulunan bir zelliktir.

MCU yazılımları genellikle C dilinde yazılır. Ve piyasada bulunan neredeyse btn mikrodenetleyiciler iin bir C derleyicisi vardır.Program yazılıp derlendikten sonra mikrodenetleyiciye aktarılması iin her mikrodenetleyiciye zel bir cihaz kullanılıyor. Geliştirme kartı kullanıyorsanız genelde bu cihazlara ihtiya duymadan bilgisayardan borda programı aktarabilirsiniz.

What is the use of the NRST pin in STM32F401RTC microcontroller. I am using the SWD interface to program and debug flash memory of the controller. I am finding NRST pins in both microcontroller as well as stlink debugger.

I am confused, what is the use of NRST pins? Is it used to reset the program which we flash and allow us to program it again? And why is a capacitor connected on the outer side of the pin and to ground?

It seems you are confused about what reset actually resets. It does not "reset the program", it resets the MCU. The content of flash is not changed, so previously written program is still available.

When you disconnect NRST pin from the ground (release the button) the internal pull-up resistor (marked RPU on the schematics) applies VDD voltage to it, which eventually flips Schmitt trigger and brings MCU out of reset state, at which point it starts executing the program at reset vector.

Usually the program at reset vector is a bootloader, which will either detect an attempt to upload new program (via USB, CAN, Serial etc. channels) or simply pass execution to the old program already in flash. It is the second case that can be interpreted as "program reset", since the program indeed begins execution from start. However the important difference is that NRST does much more than simple program restart, for example it resets all the MCU registers to their default states.

Note that in your particular case (using SWD interface for programming) the NRST pin is not actually useful, since SWD completely bypasses bootloader and can reset and flash MCU directly. It is only if your program reconfigured SWD pins as regular GPIO then you need hardware reset to flash a new one (remember that NRST resets all registers to default states, including pin configuration). ST-LINK usually uses software reset, however if it does not work you can go into setup interface and change this to hardware.

In short, NRST pin is used to activate bootloader when you need to flash new program using one of the communication channels and to reset MCU to default state when you want to flash new program using SWD interface and SWD pins are not available.

It resets the MCU. In order to flash the MCU, the ST-LINK resets and then sends the program through SWD. It should be self explanatory that MCU can't run the program and being flashed at the same time. So how to stop the CPU execution and invoke the bootloader? The first step is to reset it.

Mikroişlemcili bir sistemin ierisinde bulunması gereken temel bileşenlerden RAM, ROM, ALU, kontrol nitesi ve I/O nitesini tek bir chip iinde barındıran entegre devreye (IC) mikrodenetleyici (microcontroller) denilir.

Mikrodenetleyiciye yazılım yklemek iin bir programlayıcı donanıma ihtiya vardır. Ama Arduino'ya program yklemek iin bir donanıma ihtiyacımız yok. Direk ykleyebiliyoruz değil mi? Aslında değil. Arduino kartları ierisinde bootloader yazılımı hazır ykl geldiğinden herhangi bir programlayıcı donanıma ihtiya duymadan usb zerinden yeni yazılımı ykleyebiliyoruz. Peki bootloader nedir?

Hangi mikrodenetleyici olursa olsun yazdığımız programı yklemek iin mutlaka bir programlayıcı donanıma ihtiya vardır. Piyasaya srdğmz cihazlarda zaman zaman gncelleme veya yeni zellikler eklemek istediğimiz olur. Bu durumda cihazları piyasadan toplayıp gncelleme yapıp tekrar geri dağıtmamız mmkn değildir. Mşterilerde programlayıcı cihaza sahip olamazlar.

Bootloader yazılımı sayesinde, mikrodenetleyici seriport, usb, ethernet, sdkart vb kaynaklardan gelen yeni firmware yazılımını kendi kendisine yazar. İşte mikrodenetleyicinin haberleşme portundan gelen yeni firmware kendi kendine yazmasını sağlayan programa bootloader denilmektedir. Bu işlem esnasında programlayıcı cihaza ihtiya yoktur. Bootloader sayesinde mikrodenetleyici yazılımı gncellenebilir ve cihazın mr boyunca daha esnek hale gelir.

Birok farklı bootloader yazılımı olmasına rağmen bana gre en verimlisi kendi bootloader yazılımını yazmamızdır. Tabi bu işlem herkes iin kolay bir işlem değildir. Bu iş ciddi bir vakit alır. Kullanılan her mikrodenetleyici ailesi iin yeniden bootloader yazmak gerekmektedir. Microchip MCC bize bu konuda kolaylık sağlamaktadır. Sadece alışması konusunda garanti vermiyor. Bende elimdeki farklı PIC'leri sizler iin test ettim. Kullandığım MPLABX ve XC8 versiyonlarınıda belirttim.

Bootloader yazılımı PIC hafızasının başlangıcına yazılıyor, kullanıcı yazılımı ise kalan bellek kısmına yazılıyor. Tahmin edebileceğiniz gibi bootloader yazılımı hafızada belli bir yer kaplamaktadır.

Bootloader nasıl alışır? PIC'e enerji verildiğinde farklı doğrulama algoritmaları kullanarak bootloader yeni yazılıma ihtiyacı varmı yok mu kontrol eder. Bunun iin 0x300 adresinde bir kod var mı kontrol edebilir. Uygulama yazılımının doğruluğu iin CRC kontrol yapar. Eğer bootloadera ihtiyac yoksa uygulama yazılımını alıştırmaya başlar. Tekrar bootloader moduna dnmek iin bir buton kullanılacağı gibi USARTtan gelecek zel bir kod sonrası bootloader moduna geiş yapar. Bunun iin 0x300 adresini silip PIC'i resetlemek olabilir.

Gemişten gnmze kadar insanlar srekli yeni şeyler retmeye alışmıştır. Teknoloji de isnanların bu yeni şeyler retme hevesi sayesinde adım adım gelişmiştir. Gnmzn son teknolojisi olarak adlandırılabilecek bilgisayarların da yapı taşlarına bakmamız gerekebilir. Mikrodenetleyici bunların başında gelen bir bilgisayar işlemcisidir. Bilgisayarda mikrodenetleyici nedir, ne işe yarar, mcu'nun aılımı nedir gibi sorular değişen teknolojinin yarattığı sorulardan birkaıdır.

Mikrodenetleyici, bir bilgisayar sisteminin işlevlerini kontrol etmek ve ynlendirmek iin tasarlanmış bir entegre devredir. Bu cihazlar, genellikle bir CPU (Merkezi İşlem Birimi), bellek birimi, giriş/ıkış arabirimi ve eşitli periferikler (rnek verecek olursak, analog-dijital dnştrcler, zamanlayıcılar, haberleşme arabirimleri) gibi bileşenleri ierir. Mikrodenetleyiciler, genellikle gml sistemlerde, otomasyon sistemlerinde, endstriyel kontrol uygulamalarında, tketici elektroniğinde, tıbbi cihazlarda, ara ii sistemlerde ve daha birok alanda kullanılır.

d3342ee215
Reply all
Reply to author
Forward
0 new messages