bluesilhouettes
Gà mẹ
Chào các bạn, sắp kết thúc khóa học, mình có 1 số lời chia sẽ về cách tiếp cận lập trình nhúng 1 cách nhanh nhất!
Bắt đầu học MCU thì phải học qua môn VXL (MPU), môn này giúp chúng ta hiểu được cách làm việc cơ bản của 1 CPU ( các MCU đều hoạt động ná ná nhau). Nắm vững lập trình ASM. Nếu có 1 bạn nào viện cớ "sau này tao lập trình C, C lếch lếch thì học ASM làm gì chứ", bạn đó hãy coi chừng vì ASM là nền tảng cho bạn hiểu rõ mọi thứ trong C.
Sau khi đã nắm được ASM thì hãy bắt tay vào lập trình ASM trên 1 board 8051 vì nó dễ dàng hơn cả. Vì sao không phải là PIC chẳng hạn ?
Thứ nhất 8051 trực tiếp phục vụ cho 1 số môn học ( VXL, TNVXL mấy môn này dễ rớt).
Thứ hai, ASM cho 8051 là dễ nhất rồi, không phải mất thời gian học thêm ASM của PIC hoặc AVR.
2 lí do trên là quá thuyết phục rồi!
Khi đã vững vàng thì hãy ôn lại kiến thức C đã phần nào bị mai một mà phần trọng tâm là pointer ( cách sử dụng, các loại cú pháp..). Cú pháp của pointer rất quan trọng, nó giúp bạn hiểu được nguời ta viết cái gì.
Và bắt tay vào lập trình C.Chọn MCU gì? Bắt đầu từ đâu?
Chọn MCU:
- giá
- ổn định
- phổ biến (nhiều người xài)
Kết luận nên chọn MSP430, AVR, ARM và hãy tránh xa PIC. Lí do:
-AVR giá cả như PIC mà chạy nhanh hơn nhiều, mức độ phổ biến thì tùy những người xung quanh của mấy bạn.
-MSP430 TI cho sample miễn phí. Kho application đồ sộ kinh dị, nhìn mà phê luôn, thứ gì cũng có. Bị cái là mạch nạp giá rẻ có 1 anh còn đang nghiên cứu, nhưng chắc là sẽ được thôi.
-ARM cortex m0 của NXP giá rất rẻ 60k mà chạy vèo vèo, ăn đứt hết cả đám trên. Và clb mới có 1 mớ cho các bạn xin hay mượn (không biết được không ?)
-PIC tuy phổ biến nhưng mắc, chạy chậm nhất trong đám AVR, MSP430, ARM, RENESAS. Tuy hơn được 8051 chút nhưng không thể nói là bước tiến về tốc độ. Giải thích thêm: PIC chạy thạch anh 4Mhz (phổ biến mà) thì cycle là 1Mhz = 8051 chạy thạch anh 12Mhz, về hiệu năng thì xem xem, không khác biệt, các dòng 8051 mới của NXP đều hơn mấy con PIC 16f, 18f về tốc độ cũng như giá thành ( ra Thien Minh có bán hết) và có luôn IDE+C compiler của Keil.
-ARM hiện nay là phổ biến nhất. Các dòng CM3 của NXP, LM có code sample rất dễ hiểu và được viết để phục vụ mục đích học tập nên dễ vô đầu ( cái này mình xài rồi nên biết). Ngoài ra, ARM dòng LM của TI cho sample miễn phí (nhưng hơi khó xài vì mạch phải có JTAG kẻo bootloader mà ngủm thì không có gì để mà nạp lại, NXP thì BL nằm luôn trong bootrom nên không lo, không thiết kế JTAG cũng không sao). Thêm nữa là Keil simulate mấy peripheral hơi bị hay nên bạn nào túng quá thì có thể học chay trong thời gian để giành tiền đặt hoặc mua mạch. Khi bạn có phần cứng trong tay thì dễ dàng nạp và debug mà chẳng cần JTAG (ngoại trừ LM của TI). Chỉ cần 1 board USB->UART là đủ để làm mọi thứ.
Nói thì cũng biết mình khuyên các bạn nên tìm hiểu ARM. Tuy đã xài PIC nhưng có nhiều lí do mà mình không muốn gặp lại nó ( có thể là do dùng PIC đầu tiên nên thiếu hiểu biết về lập trình dẫn đến gặp nhiều khó khăn nên có ác cảm__ nhất là do hồi xưa không biết debug qua UART mà cái PICkit để debug giá tới 450k nên phải debug qua LCD và phím bấm)
Sau khi đã nắm vững lập trình C cho MCU thì bạn chuyển qua nghiên cứu ASM của MCU và compiler-linker của MCU đó. Vì các công ty chuyên về phần mềm nhúng rất cần những người hiếu ASM, hiểu compiler, linker hoạt động như thế nào.
Đó là những gì mình muốn chia sẻ. Các bạn nên tùy vào "tình thế" mà chọn đường cho mình. Tất nhiên là chẳng có gì khó để nắm rõ hết các dòng MCU phổ biến hiện nay. Nhưng theo kiểu cái gì cũng biết chút chút thì không nên. Chút các bạn thành công!
Bắt đầu học MCU thì phải học qua môn VXL (MPU), môn này giúp chúng ta hiểu được cách làm việc cơ bản của 1 CPU ( các MCU đều hoạt động ná ná nhau). Nắm vững lập trình ASM. Nếu có 1 bạn nào viện cớ "sau này tao lập trình C, C lếch lếch thì học ASM làm gì chứ", bạn đó hãy coi chừng vì ASM là nền tảng cho bạn hiểu rõ mọi thứ trong C.
Sau khi đã nắm được ASM thì hãy bắt tay vào lập trình ASM trên 1 board 8051 vì nó dễ dàng hơn cả. Vì sao không phải là PIC chẳng hạn ?
Thứ nhất 8051 trực tiếp phục vụ cho 1 số môn học ( VXL, TNVXL mấy môn này dễ rớt).
Thứ hai, ASM cho 8051 là dễ nhất rồi, không phải mất thời gian học thêm ASM của PIC hoặc AVR.
2 lí do trên là quá thuyết phục rồi!
Khi đã vững vàng thì hãy ôn lại kiến thức C đã phần nào bị mai một mà phần trọng tâm là pointer ( cách sử dụng, các loại cú pháp..). Cú pháp của pointer rất quan trọng, nó giúp bạn hiểu được nguời ta viết cái gì.
Và bắt tay vào lập trình C.Chọn MCU gì? Bắt đầu từ đâu?
Chọn MCU:
- giá
- ổn định
- phổ biến (nhiều người xài)
Kết luận nên chọn MSP430, AVR, ARM và hãy tránh xa PIC. Lí do:
-AVR giá cả như PIC mà chạy nhanh hơn nhiều, mức độ phổ biến thì tùy những người xung quanh của mấy bạn.
-MSP430 TI cho sample miễn phí. Kho application đồ sộ kinh dị, nhìn mà phê luôn, thứ gì cũng có. Bị cái là mạch nạp giá rẻ có 1 anh còn đang nghiên cứu, nhưng chắc là sẽ được thôi.
-ARM cortex m0 của NXP giá rất rẻ 60k mà chạy vèo vèo, ăn đứt hết cả đám trên. Và clb mới có 1 mớ cho các bạn xin hay mượn (không biết được không ?)
-PIC tuy phổ biến nhưng mắc, chạy chậm nhất trong đám AVR, MSP430, ARM, RENESAS. Tuy hơn được 8051 chút nhưng không thể nói là bước tiến về tốc độ. Giải thích thêm: PIC chạy thạch anh 4Mhz (phổ biến mà) thì cycle là 1Mhz = 8051 chạy thạch anh 12Mhz, về hiệu năng thì xem xem, không khác biệt, các dòng 8051 mới của NXP đều hơn mấy con PIC 16f, 18f về tốc độ cũng như giá thành ( ra Thien Minh có bán hết) và có luôn IDE+C compiler của Keil.
-ARM hiện nay là phổ biến nhất. Các dòng CM3 của NXP, LM có code sample rất dễ hiểu và được viết để phục vụ mục đích học tập nên dễ vô đầu ( cái này mình xài rồi nên biết). Ngoài ra, ARM dòng LM của TI cho sample miễn phí (nhưng hơi khó xài vì mạch phải có JTAG kẻo bootloader mà ngủm thì không có gì để mà nạp lại, NXP thì BL nằm luôn trong bootrom nên không lo, không thiết kế JTAG cũng không sao). Thêm nữa là Keil simulate mấy peripheral hơi bị hay nên bạn nào túng quá thì có thể học chay trong thời gian để giành tiền đặt hoặc mua mạch. Khi bạn có phần cứng trong tay thì dễ dàng nạp và debug mà chẳng cần JTAG (ngoại trừ LM của TI). Chỉ cần 1 board USB->UART là đủ để làm mọi thứ.
Nói thì cũng biết mình khuyên các bạn nên tìm hiểu ARM. Tuy đã xài PIC nhưng có nhiều lí do mà mình không muốn gặp lại nó ( có thể là do dùng PIC đầu tiên nên thiếu hiểu biết về lập trình dẫn đến gặp nhiều khó khăn nên có ác cảm__ nhất là do hồi xưa không biết debug qua UART mà cái PICkit để debug giá tới 450k nên phải debug qua LCD và phím bấm)
Sau khi đã nắm vững lập trình C cho MCU thì bạn chuyển qua nghiên cứu ASM của MCU và compiler-linker của MCU đó. Vì các công ty chuyên về phần mềm nhúng rất cần những người hiếu ASM, hiểu compiler, linker hoạt động như thế nào.
Đó là những gì mình muốn chia sẻ. Các bạn nên tùy vào "tình thế" mà chọn đường cho mình. Tất nhiên là chẳng có gì khó để nắm rõ hết các dòng MCU phổ biến hiện nay. Nhưng theo kiểu cái gì cũng biết chút chút thì không nên. Chút các bạn thành công!