Mục lục:

ATMega1284 Quad Opamp Effects Box: 4 bước (có hình ảnh)
ATMega1284 Quad Opamp Effects Box: 4 bước (có hình ảnh)

Video: ATMega1284 Quad Opamp Effects Box: 4 bước (có hình ảnh)

Video: ATMega1284 Quad Opamp Effects Box: 4 bước (có hình ảnh)
Video: PID demo 2024, Tháng bảy
Anonim
Hộp hiệu ứng tứ giác ATMega1284
Hộp hiệu ứng tứ giác ATMega1284

Stomp Shield cho Arduino từ Open Music Labs sử dụng Arduino Uno và bốn opamps làm hộp hiệu ứng guitar. Tương tự như hướng dẫn trước đó chỉ ra cách chuyển Electrosmash Uno Pedalshield, tôi cũng đã chuyển hộp Hiệu ứng guitar của Open Music Labs sang ATMega1284P có RAM gấp tám lần so với Uno (16kB so với 2kB).

So với hộp được hướng dẫn trước đó bằng cách sử dụng đơn vị hiệu ứng ATMega1284, hộp này có những ưu điểm sau:

(1) Nó có bộ trộn trộn tín hiệu chưa xử lý với tín hiệu đã xử lý MCU - điều đó có nghĩa là chất lượng tín hiệu ở đầu ra được cải thiện nhiều.

(2) Nó xử lý đầu ra 16 bit cho hai đầu ra PWM khi hộp hiệu ứng trước đó sử dụng 8 bit cho một số ví dụ như hiệu ứng trễ.

(3) Nó có một chiết áp phản hồi có thể được sử dụng để nâng cao hiệu ứng - đặc biệt với hiệu ứng mặt bích / phaser, khoảng 30 phần trăm phản hồi bổ sung đáng kể vào chất lượng của hiệu ứng.

(4) Tần số của bộ lọc thông thấp là 10 kHz so với 5 kHz của hộp hiệu ứng trước đó - điều này có nghĩa là tín hiệu ở đầu ra âm thanh "sắc nét hơn" đáng kể.

(5) Nó sử dụng một bộ kích hoạt ngắt khác có thể giải thích mức độ nhiễu thấp hơn đáng kể được hiển thị bởi hộp hiệu ứng này.

Tôi bắt đầu bằng cách đưa lên bảng điều khiển Open Music Labs Stompbox Shield dựa trên Uno và tôi rất ấn tượng với hiệu suất của bốn mạch xử lý tín hiệu OpAmp này (ngay cả khi sử dụng Arduino Uno), nên tôi đã chuyển nó sang bảng dải để sử dụng lâu dài hơn.

Bốn mạch opamp giống nhau và mã DSP sau đó đã được chuyển sang ATMega1284 - một lần nữa, đáng ngạc nhiên là ngoài những thay đổi không cần thiết như gán các công tắc và đèn LED cho một cổng khác và phân bổ 7, 000 kilo-từ thay vì 1, 000 kilo-word RAM cho bộ đệm trễ, chỉ có hai thay đổi cần thiết phải được thực hiện trong mã nguồn, đó là thay đổi thành ADC0 từ ADC2 và thay đổi đầu ra Timer1 / PWM OC1A và OC1B từ Cổng B trên Uno sang Cổng D (PD5 và PD4) trên ATMega1284.

Như đã lưu ý trước đây, mặc dù các bảng phát triển cho ATMega1284 có sẵn (Github: MCUdude MightyCore), nhưng việc mua chip trần (không có bộ nạp khởi động) là một bài tập dễ dàng (mua phiên bản PDIP thân thiện với bảng mạch và bảng mạch), sau đó tải nhánh Mark Pendrith của bộ nạp khởi động Maniacbug Mighty-1284p Core Optiboot hoặc MCUdude Mightycore, bằng cách sử dụng Uno làm lập trình viên ISP, rồi tải lại các bản phác thảo qua Uno tới AtMega1284. Chi tiết và liên kết cho quá trình này được đưa ra trong phụ lục 1 của tài liệu hướng dẫn trước đó.

Bước 1: Danh sách bộ phận

Danh sách các bộ phận
Danh sách các bộ phận
Danh sách các bộ phận
Danh sách các bộ phận

ATMega1284P (phiên bản gói PDIP 40 chân) Arduino Uno R3 (được sử dụng làm ISP để chuyển bộ nạp khởi động và bản phác thảo sang ATMega1284) OpAmp MCP6004 quad OpAmp (hoặc RRIO (Rail to Rail Input and Output) OpAmp tương tự như TLC2274) 1 x Đèn LED đỏ 1 x 16 MHz tinh thể 2 x 27 pF tụ 1 x 3n9 tụ 1 x 1n2 tụ 1 x 820pF tụ 2 x 120 pF tụ 4 x 100n tụ 3 x 10uF 16v tụ điện 4 x 75k điện trở 4 x 3k9 điện trở 1 x 36k Điện trở 1 x 24k Điện trở 2 x 1M Điện trở 1 x 470 ohm Điện trở 3 x 1k Điện trở 2 x 50k Chiết áp (tuyến tính) 1 x 10k Chiết áp (tuyến tính) 3 x công tắc nút (một trong số chúng nên được thay thế bằng 3 cực 2- cách footswitch nếu hộp hiệu ứng sẽ được sử dụng cho tác phẩm trực tiếp)

Bước 2: Thi công

Sự thi công
Sự thi công

Mạch 1 hiển thị mạch được sử dụng và Stripboard 1 là biểu diễn vật lý của nó (Fritzing 1) với Ảnh 1 là mạch bánh mì thực tế đang hoạt động. Ba thay đổi mạch nhỏ đã được thực hiện: thiên vị opamp cấp nửa cung cấp được chia sẻ được sử dụng cho ba giai đoạn OpAmp, các điện trở song song 3 x 75k và 2 x 75k ohms được thay thế bằng các điện trở 24k và 36k duy nhất và các tụ điện phản hồi được tăng lên 120pF cho hai giai đoạn OpAmp này. Điều khiển quay đã được thay thế bằng hai nút bấm dùng để tăng hoặc giảm các thông số hiệu ứng. Kết nối ba dây với ATMega1284 được hiển thị trên mạch là ADC đến chân 40, PWMlow từ chân 19 và PWMhigh từ chân 18. Ba nút nhấn được kết nối với các chân 1, 36 và 35 và nối đất ở đầu kia. Một đèn LED được kết nối qua một điện trở 470 đến chân 2.

Các giai đoạn đầu vào và đầu ra của OpAmp: Điều quan trọng là phải sử dụng RRO hoặc tốt hơn là RRIO OpAmp vì xung điện áp lớn được yêu cầu ở đầu ra OpAmp tới ADC của ATMega1284. Danh sách bộ phận chứa một số loại OpAmp thay thế. Chiết áp 50k được sử dụng để điều chỉnh mức khuếch đại đầu vào đến mức thấp hơn bất kỳ sự biến dạng nào và nó cũng có thể được sử dụng để điều chỉnh độ nhạy đầu vào cho nguồn đầu vào không phải là guitar, chẳng hạn như máy nghe nhạc. Giai đoạn đầu vào OpAmp thứ hai và giai đoạn đầu ra opamp đầu tiên có bộ lọc RC bậc cao hơn để loại bỏ tiếng ồn MCU được tạo kỹ thuật số khỏi luồng âm thanh.

Giai đoạn ADC: ADC được cấu hình để đọc thông qua ngắt bộ định thời. Một tụ điện 100nF nên được kết nối giữa chân AREF của ATMega1284 và đất để giảm nhiễu vì nguồn Vcc bên trong được sử dụng làm điện áp tham chiếu - KHÔNG kết nối trực tiếp chân AREF với +5 volt!

Giai đoạn DAC PWM: Vì ATMega1284 không có DAC riêng nên các dạng sóng âm thanh đầu ra được tạo ra bằng cách sử dụng điều chế độ rộng xung của bộ lọc RC. Hai đầu ra PWM trên PD4 và PD5 được đặt là byte cao và byte thấp của đầu ra âm thanh và được trộn với hai điện trở (3k9 và 1M) theo tỷ lệ 1: 256 (byte thấp và byte cao) - tạo ra đầu ra âm thanh.

Bước 3: Phần mềm

Phần mềm này dựa trên bản phác thảo bàn đạp stompbox của Open Music Labs và có hai ví dụ được đưa vào là hiệu ứng mặt bích / phaser và hiệu ứng trễ. Một lần nữa, giống như với lệnh trước đó, các công tắc và đèn LED đã được di chuyển sang các cổng khác xa các cổng được lập trình viên ISP sử dụng (SCLK, MISO, MOSI và Reset).

Bộ đệm trễ đã được tăng từ 1000 từ lên 7000 từ, và PortD đã được đặt làm đầu ra cho hai tín hiệu PWM. Ngay cả khi tăng bộ đệm trễ, bản phác thảo vẫn chỉ sử dụng khoảng 75% RAM ATMega1284 16 kB có sẵn.

Các ví dụ khác như tremolo từ trang web Open Music Labs cho pedalSHIELD Uno có thể được điều chỉnh để Mega1284 sử dụng bằng cách thay đổi tệp tiêu đề bao gồm Stompshield.h:

(1) Thay đổi DDRB | = 0x06; // thiết lập các đầu ra pwm (chân 9, 10) thành outputtoDDRD | = 0x30;

ADMUX = 0x62; // điều chỉnh bên trái, adc2, vcc nội bộ như tham chiếu đến ADMUX = 0x60; // điều chỉnh trái, adc0, vcc nội bộ làm tham chiếu // Những thay đổi này là thay đổi mã cần thiết DUY NHẤT // khi chuyển từ Uno sang ATMega1284

Đối với hai ví dụ bao gồm ở đây, tệp tiêu đề được bao gồm trong bản phác thảo - tức là không cần sử dụng tệp tiêu đề

Các nút bấm 1 và 2 được sử dụng trong một số bản phác thảo để tăng hoặc giảm hiệu ứng. Trong ví dụ về độ trễ, nó tăng hoặc giảm thời gian trễ. Khi bản phác thảo được tải lần đầu tiên, nó bắt đầu với hiệu ứng trễ tối đa. Đối với bản phác thảo phaser mặt bích, hãy cố gắng tăng điều khiển phản hồi để có hiệu ứng nâng cao.

Để thay đổi độ trễ thành hiệu ứng tiếng vang (thêm sự lặp lại), hãy thay đổi dòng:

đệm [vị trí] = đầu vào; // lưu trữ mẫu mới

đến

đệm [vị trí] = (đầu vào + bộ đệm [vị trí]) >> 1; // Sử dụng cái này cho hiệu ứng tiếng vang

Công tắc chân phải là công tắc ba cực hai chiều

Bước 4: Liên kết

Electrosmash

Mở phòng thí nghiệm Âm nhạc Âm nhạc

Bàn đạp hiệu ứng ATMega

Đề xuất: