30/09/2018, 20:38
Chuyên ngành Embedded system có cần thiết phải chuyên về layout mạch, làm mạch không?
Các bạn cho mình hỏi như tiêu đề. Hiện tại mình đang học và làm đề tài về embedded. Mình trước giờ chỉ thích khoản code, làm việc trên mấy cái board có sẵn và lâu lâu làm thêm cái shield để gắn board lên thôi chứ ko thích hàn mạch, ủi mạch này nọ.
Kể từ khi nghe thầy mình nói nên làm để nâng cao tay nghề, còn dùng board có sẵn thương dành cho dân không chuyên làm mình thấy phân vân. Các bạn đi trước cho mình ý kiến với.
Bài liên quan
Không, Embedded software khác với Embedded Hardware. Embedded software chỉ cần biết lập trình, quản lý RAM/CPU tốt vì embedded device yếu hơn chiếc điện thoại smart phone nhiều. Biết cách làm việc với bootloader, driver, kernel vì không có framework nào hỗ trợ mình control cái này.
Bên cạnh đó cần biết đọc một số cổng GPIO là được.
Vâng vậy hình như em làm về hương software rồi. Còn về embedded Hardware là phải làm layout thiết kế vi mạch này nọ hả anh. Vậy là embedded system chia làm 2 cái embedded Hardware và software. Embedded hardware là làm về những gì anh?
Họ thiết kế mạch, chế tạo board. Anh không làm không rõ lắm.
Nếu em muốn làm về Embedded Software thì chẳng cần biết gì về layout, làm mạch hết.
Một cái software của hệ thống nhúng thường rất đồ sộ, em đi từ lớp Application đến lớp Driver là đã mệt nghỉ rồi. Việc layout, design là của nhóm hardware hoặc công ty khác làm.
Vâng cảm ơn các anh đã khai sáng ! em sẽ tiếp tục tập trung vào hướng embedded software
Thực ra nếu biết về điện tử, về mạch, … thì sẽ hiểu nguyên lý hoạt động hơn, và code sẽ nhanh hơn đó. Mình thích ý kiến của thầy bạn, mặc dù có thể hơi “reinvent the wheel”.
(Mình chỉ không tán thành chuyện “chuyên hay không chuyên” thôi. ^^)
Mình hỏi bạn nhé !
Sau này nếu trường hợp bạn không có cơ hội làm trong công ty lớn có hẳn một đội hardware design nó làm ra bo nhúng cho bạn lập trình thì bạn định lập trình cái gì ?
Bạn sẽ tự design hardware cho mình và nếu vui thì bạn có thể in luôn cái nhãn hiệu của riêng bạn lên bo nhúng đó và vẫn làm việc bình thường.
Hay bạn sẽ phải đi mua những bo nhúng được làm sẵn (và thường thiếu và thừa chức năng) để code trên nó rồi câu day dợ lằng nhằng và tất nhiên sẽ ít ai mua cái sản phẩm nếu bạn làm như thế.
Bạn chọn đi
Khi bạn layout mạch giỏi thì bạn cũng gần như là master về điện tử rồi. Nó sẽ hỗ trợ cực kỳ nhiều cho khoản code. Vì kỳ thực ra code embedded đâu phức tạp, cái mà ta cần là biết về phần cứng đó là cái phân biệt với dân chuyên phần mềm. Layout giỏi lương bh cũng cao hơn code. Thường mình thấy ai pro về điện tử thì họ gần như biết tất cả mọi thứ. Từ phần cứng, phần mềm tới mạng.
Ấy chết.
Layout mạch giỏi cũng chỉ là cứng tay thôi chứ master điện tử nó khủng hơn nhiều
Mình cũng làm nhúng 1 thời gian và thấy nhờ có chút kiến thức điện tử nên đọc document nhanh hơn các bạn khác. Cả cái doc 1000 trang thì chỉ cần đọc khoảng 200 trang phục vụ công việc.
Hiện tại mình đang học năm 4, trước giờ mình làm nhiều cái ko thấy đụng tới kiến thức điện tử nhiều, mình port OS rùi giao tiếp đủ loại sensor, quản lý RAM ROM bộ nhớ rồi bootloader, các GPIO chân pin…v…v. Thấy embedded chỉ cần hiểu mọi nguyên lý hoạt động của 1 board là ok. Chỉ có lần mình làm ra sản phẩm thì lúc làm mạch mình mới thấy đụng tới điện tử nhiều như vấn đề về nguồn rồi tụ, trở này nọ thôi. Nên mình nghĩ mình chỉ cần biết layout tạo ra cái shield cho board để hỗ trợ thêm các thành phần mình cần là được chứ ko nhất thiết phải làm 1 cái board.
Chắc bạn vẫn đang làm ở mức bắt đầu.
Trong thực tế có vài lý do khiến bạn không làm được thế :
Làm embedded cũng tuỳ, nếu dùng các board sẵn có như RaspberryPi hoặc Arduino thì ít khi phải thiết kế layout mạch.
Bạn có thể bắt đầu học embedded từ trang này, có nhiều bài viết chuyên sâu và code có thể ứng dụng thực tế ngay. http://iotbreaks.vn/experiences/
Vâng, cảm ơn các bạn. Về kiến thức về bên embedded software thì mình cũng làm nhiều rồi nên cũng có cái nền. Giờ mình chỉ xin ý kiến các bạn bên Hardware có cần thiết tìm hiểu học hỏi thêm hay là tập trung vào software để nâng tầm thêm, và nếu có thì nên tìm hiểu như thế nào vì mình thấy cái này phải tự làm mạch nhiều và tự có thêm kinh nghiệm. mình thấy bên mảng này học ngành điện tử thì ra Hardware nó đúng hơn.
Không biết bạn đã làm cái gì về embedded rồi, embedded là điều khiển thiết bị, bạn không biết về thiết bị của bạn thì code thế nào. Giao tiếp mấy cái sensor là mấy cái đơn giản, giả dụ bạn cần điều khiển một cái động cơ 3 pha thì làm thế nào ?
Mình thấy có 2 vấn đề cần phân biệt rõ ở đây:
1. Layout mạch và làm mạch
Đây là mảng hoàn toàn khác với code và cũng không phải code nhiều. Nó thiên về thiết kế, như vậy để làm tốt mảng này cần kiến thức về phần cứng, thiết kế phần cứng …Những mạch cơ bản thì không nói nhưng những mạch có yêu cầu cao, yêu cầu tính ổn định, chính xác, mạch High-speed thì mới gọi là làm phần cứng thực sự.
2. Code embedded hay embedded software.
Phần này như anh @ltd đã nói rồi.
Mình bổ sung thêm chút: Chúng ta viết code cho các app mà không hiểu phần cứng hỗ trợ những gì thì liệu app đó có thực sự tốt, ổn định ?
Nói đơn giản như bạn viết driver cho các bo mạch mới có RTC, I2C, … thì không chỉ đơn giản là code mà còn phải biết đọc và phân tích RM, schematic xem phần cứng có hỗ trợ hay không hoặc trong RM có driver đó nhưng code xong không chạy, vậy thì cần phải xem schematic : xem xem port này nối đúng chưa, có điện trở hay tụ gì cần lưu ý không. Hay nhưng khái niệm cơ bản như thạch anh, điện trở pull-up, pull-down, open-drain là gì ? …
=> Như vậy, chúng ta làm embedded software thì không nên đi sâu vào layout mà nên hiểu schematic, các linh kiện điện tử cơ bản, nguyên lý hoạt động các linh kiện … Từ đó sản phầm làm ra sẽ có độ tin cậy cao hơn.
Chính xác là cái này nè.
Layout cũng chiếm một phần cần phải biết nhất là high speed, RF
Nắm rõ những cái bạn nêu thì sẽ có thể layout kha khá.
muốn làm về embedded software thì phải trang bị những kiến thức gì vậy anh