Рекомендации для микроконтроллеров большой емкости

Для нового проекта, над которым я работаю, я превращаю старый Casio Personal Mini в Speak & Заклинание (возможно, с другими функциями). Тем не менее, речевая библиотека, которую я планирую использовать, называется Talkie, и она занимает довольно много места в программе. Я пытался найти какие-нибудь микроконтроллеры, которые я мог бы использовать, которые имеют большой объем памяти для хранения программ, но я действительно мало знаю о том, что мне следует искать, и о том, как найти те, которые совместимы с загрузчиком Arduino. У кого-нибудь из вас есть хорошие предложения? Мне, вероятно, понадобится один с более чем 256 КБ памяти для программ.

, 👍1

Обсуждение

Лично я всегда рекомендую PIC32, но... это не тот загрузчик, о котором стоит беспокоиться. Это то, что будет работать с библиотекой Talkie, чем бы она ни была. Если он занимается воспроизведением звука, то, вероятно, у него будут очень специфические непереносимые требования. Таким образом, единственными людьми, которые могут что-либо порекомендовать, будут авторы., @Majenko


1 ответ


1

В комментарии Юрай написал:

Микроконтроллеры ATmega аналогичны, поэтому порт на Arduino Mega должен быть возможно

Похоже, это действительно так.

Глядя на исходный код библиотеки, кажется, что он использует таймер 2 для генерации ШИМ-сигнала и таймер 1 для планирование образцов. Эти таймеры практически идентичны между ATmega328P Uno и ATmega2560, используемые в Arduino Mega 2560. Единственная существенная разница между этими платами, т.к. что касается библиотеки, это выходной контакт, который является «OC2B». вывод микроконтроллера:

  • на Uno OC2B — это цифровой контакт 3.
  • на Mega OC2B — это цифровой контакт 9

Итак, я предполагаю, что библиотека должна работать на Mega только с этим небольшое изменение:

--- a/Talkie/talkie.cpp
+++ b/Talkie/talkie.cpp
@@ -71,7 +71,7 @@ void Talkie::say(uint8_t* addr) {
        //
        // Включаем речевую систему всякий раз, когда вызывается say().
        
-       pinMode(3,OUTPUT);
+       pinMode(9,OUTPUT);
        // Таймер 2 настроен как ШИМ с частотой 62500 Гц.
        //
        // «Жужжание» ШИМ намного выше диапазона человеческого слуха и

Кроме того, убедитесь, что вы подключаете наушники к контакту 9, а не контакт 3.

Если вы попробуете это, и оно сработает, сообщите об этом либо здесь, либо напрямую автору библиотеки. Затем должно быть легко изменить библиотека для поддержки обеих плат из коробки.


Правка: если вы загружаете Talkie через менеджер библиотек Arduino, вы получите эту версию, которая поддерживает Arduino Мега 2560.

,