Lập trình ATMega328P và sử dụng nó mà không cần bo mạch Arduino


13

Tôi muốn sử dụng ATMega328P cho dự án của mình, tôi hy vọng sẽ làm được điều đó mà không cần bo mạch Arduino.

Tôi biết với Arduino IDE và một bo mạch Arduino tôi có thể lập trình vi điều khiển. Tuy nhiên, liệu có thể một khi tôi đã lập trình và gỡ lỗi chương trình với bo mạch Arduino IDE + Arduino, để lấy vi điều khiển khỏi bo mạch Arduino và sử dụng ATMega328P riêng mà không cần bo mạch không?

Nếu có, cấu hình bổ sung nào tôi nên làm ATMega328P để hoạt động chính xác trên bảng điều khiển?


Sử dụng ATMEGA328 P-PU với bộ tải khởi động Arduino UNO .... bạn có thể tìm thấy nó trong các cửa hàng sở thích và trực tuyến và các công cụ
Arthur

Sử dụng chip trần là hoàn toàn khả thi và không có vấn đề gì.
dannyf

Đây không phải là câu hỏi tương tự như của bạn nhưng bạn có thể nhận được một số thông tin từ nó. arduino.stackexchange.com/questions/32970/ Kiếm
Mã Gorilla

Bạn có thể theo dõi câu trả lời của Câu hỏi này
Rashingul Hồi giáo Emon

Câu trả lời:


7

Bạn có thể loại bỏ ATMEGA khỏi Arduino và sử dụng nó trong bo mạch của riêng bạn, tuy nhiên khi được sử dụng trên bo mạch Arduino thông thường, chip sẽ được kết hợp với một tinh thể bên ngoài như một nguồn đồng hồ, thay vì đồng hồ bên trong (đơn giản nhưng kém chính xác hơn).

Bạn không thể thay đổi nguồn đồng hồ qua ISP trừ khi nguồn đồng hồ mà chip hiện đang mong đợi đang hoạt động, vì vậy nếu bạn muốn thay đổi lựa chọn đồng hồ, bạn sẽ muốn làm điều đó trước khi tháo chip khỏi Arduino.

Tuy nhiên, bạn cũng có thể cung cấp một tinh thể đồng hồ và hai tụ điện của nó (hoặc một bộ cộng hưởng thay thế thường có tích hợp này) trên bảng bên ngoài của bạn.

Thông thường, các chip (ngay cả những chip được flash trước với bộ tải khởi động là tiện lợi) rẻ hơn so với bo mạch, vì vậy không rõ lý do tại sao bạn muốn di chuyển cùng một chip ra khỏi Arduino thay vì sử dụng chip khác. Dù sao thì bạn cũng sẽ muốn có một bộ chuyển đổi nối tiếp mức logic logic, và một khi bạn đã có thì bạn có thể thực hiện phát triển trên con chip trần trên bo mạch của mình, ngay cả khi bạn thực hiện thử nghiệm ban đầu trên Arduino. Trong một tình huống khó khăn nếu bạn không có bộ chuyển đổi USB, bạn có thể rút chip ra khỏi bo mạch Arduino và chạy dây từ D1 và D0 của nó hoặc giữ lại chip trên bo mạch để cho phép bạn mượn các dòng nối tiếp đó mà không cần giao thoa.


1
Ý tưởng của tôi là chỉ sử dụng một vi điều khiển mà không có bảng. Vì nó dễ dàng để lập trình một Arduino, tôi nghĩ rằng tôi có thể chọn một ATMega. Vì vậy, tôi có một Arduino uno, ý tưởng của tôi là chỉ mua một ATMega và lập trình nó và gỡ lỗi bằng cách sử dụng bảng uno. Tuy nhiên, tôi đã xác nhận lại rằng nếu tôi tách ATMega khỏi Arduino, tôi sẽ cần thêm các thành phần (pha lê, tăng độ phân giải ..). Bạn có thể vui lòng giải thích những gì bạn có ý nghĩa trong đoạn cuối của bài viết của bạn? Có cách nào đơn giản để lập trình trực tiếp ATMega (hoặc bất kỳ vi điều khiển nào khác) mà không cần sử dụng IDE arduino không? Cảm ơn.
George

Mặc dù bạn có thể bỏ qua IDE, sử dụng hay không về cơ bản không liên quan đến sự phức tạp của mạch của bạn, vì bạn có thể sử dụng IDE hoặc không sử dụng mạch có hoặc không có đồng hồ bên ngoài và sử dụng USB- nối tiếp trên bảng mục tiêu của bạn, trên cáp hoặc bằng cách lập trình bản phác thảo của bạn với một lập trình viên ISP. Việc bỏ chip ra khỏi bảng sẽ giúp bạn không có gì so với việc chỉ mua chip bằng bộ tải khởi động hoặc không có và tự tải, có thể sử dụng Arduino nguyên vẹn của bạn như một lập trình viên ISP hoặc sử dụng ISP để tải trực tiếp bản phác thảo của bạn mà không cần bộ tải khởi động.
Chris Stratton

7

Có, bạn có thể sử dụng ATMega328Pmà không cần bảng arduino. Tôi luôn luôn sử dụng IC mà không cần arduino. Có hai cách để làm điều đó.

  1. Bạn có thể sử dụng bảng arduino với IC. Lập trình IC và sau đó lấy nó ra và sử dụng nó trong mạch của bạn. Bạn sẽ phải sử dụng 16MHZ Oscillatorvới các tụ điện.
  2. Nếu bạn không có bảng arduino, bạn có thể sử dụng các lập trình viên khác muốn lập USBasptrình Atmega328p. Trong trường hợp này, không sử dụng nút tải lên trực tiếp thay vào đó sử dụng tải lên bằng cách sử dụng tùy chọn lập trình viên từ menu tệp. Đừng quên chọn bảng như Arduino Pro or Pro Mini (5v, 16mhz) With ATmega328và lập trình viên USBasp.

LƯU Ý : Tham khảo Bản đồ pin Atmega328plập trình thiết bị của bạn phù hợp. Thưởng thức!


2

Tìm kiếm "Xây dựng Arduino" - bạn sẽ tìm thấy vô số bài viết hướng dẫn về cách làm việc đó. Bạn cần có khả năng hàn các kết nối trên bảng mạch in (và thậm chí là không nếu bạn muốn sử dụng bảng mạch không hàn), nhưng nó thực sự đơn giản. Bạn thậm chí có thể xây dựng nó trước và lập trình MCU trên PCB bằng cáp FTDI. Tôi sử dụng bảng Arduino và bảng mạch không hàn để thử nghiệm các bộ phận không quen thuộc, nhưng tôi thường đi ngay đến bảng được chế tạo bằng tay một khi tôi đã quen với tất cả các thành phần tôi sẽ sử dụng.

Tạo mẫu với bảng Arduino cho phép bạn tập hợp nhiều bộ phận và nhanh chóng làm việc, và nếu Arduino có khả năng hơn mục tiêu cuối cùng của bạn - f / ex, Mega 2650 - bạn có thể tạm thời bỏ qua các ràng buộc về bộ nhớ và I / O của thiết bị nhỏ hơn.


0

Thật dễ dàng để sử dụng chip Arduino độc lập. Một điều khó khăn về con chip được sử dụng cho các bo mạch chính thức là chúng được hợp nhất để sử dụng bộ dao động ngoài nhanh hơn (và chính xác hơn) được gắn trên bo mạch. Điều này áp dụng ngay cả khi bạn mua các chip lỏng lẻo, vì hầu hết được bán lại với ý định được cài đặt trong bo mạch Arduino để thay thế cho một bộ bị cháy, ngoại trừ có lẽ là của những chiếc từ Digikey.

Hãy cẩn thận: Arduino được thiết kế như một bảng tạo mẫu, và một vài thứ làm tốt hơn nó trong nhiệm vụ này. Bạn có thể muốn để lại chip trên bo mạch Arduino cho đến khi bạn hoàn thành thiết kế và kiểm tra mạch của mình. Chỉ sau đó bạn kết nối nó trực tiếp. Nó có thể được sử dụng tại chỗ nếu bạn có mạch đồng hồ tại chỗ hoặc bạn có thể thay đổi cầu chì (xem sau) và lập trình lại Arduino với bộ điều hợp ISP và tốc độ xung nhịp 8mhz (PlatformIO cho phép bạn làm điều này ( cho phép trực tiếp nhập bản phác thảo Arduino) - kiểm tra trang tài liệu của họ để biết plugin Atmel AVR, nhưng bạn cũng có thể tra cứu một số hướng dẫn về cách thêm tệp bảng vào Arduino để yêu cầu sử dụng tùy chọn 8mhz cho chip trần)

Nếu bạn loại bỏ chip để sử dụng trong một mạch khác, nó sẽ cần mạch đồng hồ đó được thêm lại hoặc để thay đổi cầu chì của nó (tôi sẽ đến đó trong một phút). Vì một số lý do, nó cũng sẽ khó lập trình, vì vậy bạn sẽ muốn mua một chút phần cứng khá rẻ:

Lập trình chip độc lập: CPU của Arduino không được thiết kế để nói chuyện với máy tính. Bạn cần một trung gian. Trên Uno, điều này được thực hiện thông qua chip Atmel thứ hai có khả năng USB và bộ tải khởi động trên chip chính. Những gì nó làm, là nó sử dụng UART để tải lên chương trình trong khi chip USB chuyển đổi tin nhắn của PC thành tín hiệu UART. Vì bộ nạp khởi động hơi khó chịu khi chip tự hoạt động (vì UART rất kén chọn và cài đặt nên đặt chip sử dụng đồng hồ bên ngoài), bạn sẽ muốn mua một lập trình viên ISP cho Arduino (hoặc làm theo bản phác thảo và hướng dẫn của Arduino-as-ISP để tạo ra cái riêng của bạn, đòi hỏi phải có Arduino với chip, vì vậy bạn cần một giây để được lập trình).

Chúng có thể lập trình ATMega 328 trực tiếp qua SPI mà không cần bộ tải khởi động (có nhiều hướng dẫn trên Internet; tìm kiếm "chương trình ATMega 328P trần với USBAsp" chẳng hạn). Điều này làm cho việc thay đổi và gỡ lỗi chương trình của bạn bên ngoài việc đưa chip ra và trở lại bảng Arduino ban đầu dễ dàng hơn nhiều. Bạn cũng cần một cái để thay đổi cài đặt đồng hồ nếu bạn không muốn sử dụng một tinh thể bên ngoài.

Nếu bạn muốn gỡ lỗi chip, bạn cũng nên mua bộ chuyển đổi FTDI hoặc bộ chuyển đổi USB sang UART khác. Lưu ý rằng dù không có phần mạch đặt lại của bo mạch (hoặc một lần nữa, thêm phần của riêng bạn), điều này vẫn không cho phép bạn lập trình ATMega ngay cả với bộ tải khởi động. Đối với điều đó, kết nối mặt đất, chân RX và TX với bộ chuyển đổi. Bạn có thể hoặc không muốn kết nối đường dây VCC, nhưng không nên làm như vậy nếu có nhiều thứ được kết nối với chip và / hoặc nó có nguồn cung cấp năng lượng riêng. Lưu ý rằng RX và TX cần được hoán đổi khi bạn kết nối chúng; nghĩa là, RX đến TX và TX sang RX - bạn muốn chip chuyển sang RX (nhận) những gì bộ chuyển đổi là TX (truyền) ing và ngược lại.

Mạch đồng hồ không khó để xây dựng, nhưng nó đòi hỏi một vài thành phần bạn có thể không có. Vì vậy, để thay đổi nguồn đồng hồ , hãy truy cập http://www.engbedded.com/fusecalc/ và chọn ATMega 328P. Mặc định là tốt, nhưng bạn có thể muốn bật EEPROM tiếp tục xóa và vô hiệu hóa đồng hồ chia cho 8 hoặc điều chỉnh cài đặt tắt đèn. Không chạm vào bất cứ điều gì khác (vô hiệu hóa thiết lập lại hoặc SPI hoặc cho phép DebugWire dẫn đến "niềm vui" yêu cầu lập trình viên HV khắc phục). Khi hoàn tất, dán lệnh mà nó cung cấp cho lệnh AVRDude. Bạn sẽ cần thay đổi các tùy chọn -c (-p đã được đặt thành ATMega 328P, nhưng sẽ thất bại đối với những người không phải P 328 - không mua những tùy chọn đó) và có thể thêm tùy chọn -P (cho Cổng). Đừng bỏ qua tùy chọn chữ thường -u, hoặc nó sẽ từ chối cập nhật cầu chì.

avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]

Lưu ý rằng nếu bạn mua USBASP (đảm bảo rằng nó có ba bộ nhảy!), Với tất cả những gì họ là lập trình viên yêu thích của tôi, họ có thể không có chương trình cơ sở cập nhật hỗ trợ tùy chọn -B (có thể bạn sẽ cần). Điều đó có nghĩa là bạn cần gắn nó vào Arduino thông qua cổng lập trình sáu pin, giống hệt như cách bạn sử dụng nó để lập trình bộ tải khởi động của Arduino, nhưng sau đó sử dụng bản phác thảo Arduino-as-ISP để lập trình mới chương trình cơ sở cho lập trình viên (tìm kiếm "cập nhật chương trình cơ sở usbasp qua arduino-as-isp")! Để tham khảo, điều đó thường có nghĩa là cáp hướng ra khỏi thân bảng và có thể bạn sẽ phải lập trình bản phác thảo trước đókết nối cáp. Đồng thời kích hoạt trình nhảy nguồn từ lập trình viên trên USBASP (5V) và "tự lập trình". (xem https://forum.arduino.cc/index.php?topic=560719.0 để biết vị trí của bộ nhảy điện và chương trình (JP2)).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.