Использование микрочипа Fubarino с Arduino IDE, как получить доступ и настроить все контакты
Недавно я получил микрочип Fubarino, содержащий PIC32MX250F128D, и я совершенно новичок в Arduino IDE, я загрузил скетч blink, все хорошо и хорошо. Схема: FubarinoMini_v15_sch
// функция настройки запускается один раз, когда вы нажимаете сброс или включаете питание платы
void setup() {
// инициализируйте цифровой вывод LED_BUILTIN в качестве выходного сигнала.
//pinMode(LED_BUILTIN, ВЫВОД);
//asm ("BSF PORTA,10");
//pinMode(RA10, ВЫХОД);
//TRISA 10 = 0;
TRISAbits.RA10 = 0;
// ПОРТАбиты.RA10 = 1;
// ПОРТАбиты.RA10 = 0; // установить на вывод
//mapPps(20, PPS_OUT_SDO2)
}
// функция цикла выполняется снова и снова forever
void loop() {
//digitalWrite(LED_BUILTIN, ВЫСОКИЙ); // включите светодиод (ВЫСОКИЙ - это уровень напряжения)
PORTAbits.RA10 = 1;
delay(500); // подождите секунду
//digitalWrite(LED_BUILTIN, LOW); // выключите светодиод, установив низкое
PORTAbits.RA10 = 0;
delay(500); // подождите секунду
}
повторные результаты в:
Blink:45:12: error: 'volatile union __LATAbits_t' has no member named 'RA10'
LATAbits.RA10 = 0;
изменение:
void loop() {
//digitalWrite(LED_BUILTIN, ВЫСОКИЙ); // включите светодиод (ВЫСОКИЙ - это уровень напряжения)
PORTAbits.RA10 = 1;
delay(500); // подождите секунду
//digitalWrite(LED_BUILTIN, НИЗКИЙ); // выключите светодиод, установив низкое напряжение
PORTAbits.RA10 = 0;
delay(500); // подождите секунду
}
тоже не работает.
Я также попробовал этот пример кода:
https://github.com/fubarino/fubarino.github.com/wiki/Fubarino-Mini-pps
Это действительно работает.
#define LED 1
#define SCK2 4
#define SDI2 18
#define SDO2 20
Светодиод на плате Fubarino подключен не к контакту 1, а к RA10. Вывод 18 - это MCLR на устройстве, поэтому, просмотрев таблицу данных, вы даже не можете установить SDI2 и SDO2 на указанные выше номера.
Обычно на PIC16F84 или около того вы бы сделали что-то вроде этого.
bank1
movlw b'00000001'
movwf TRISA
movlw b'11110000'
movwf TRISB
bank0
"код" Arduino кажется немного абстрактным.
Я хотел бы поэкспериментировать с кнопкой.
Пример pps Chipkit показывает, что вы можете использовать ключевые слова Microchip из спецификации устройств.
Можно ли настроить Fubarino как классическое устройство PIC в среде IDE Arduino? Настройка всех выводов перед переходом к циклу, используя ключевые слова из таблицы.
@NaturalDemon, 👍1
Обсуждение1 ответ
Лучший ответ:
Записи в структурах "битов" называются в честь битов.
Это не так
TRISAbits.RA10
но
TRISAbits.TRISA10
То же самое относится и к
LATAbits.LATA10
Единственным исключением является "портовый" вариант
PORTAbits.RA10
Это пережиток старых чипов PIC16, у которых не было регистра LATx.
Светодиод на плате Fubarino подключен не к контакту 1, а к RA10.
Pin 1 - это RA10. Если вы поищете в файле Board_Data.c
вариант Fubarino_Mini (packages/chipKIT/hardware/pic32/2.1.0/variants/Fubarino_Mini/Board_Data.c
), вы сможете увидеть все сопоставления выводов. Там есть куча массивов, которые определяют, как все сочетается друг с другом.
Вторая запись в большинстве этих массивов (вывод 1, отсчет начинается с 0) предназначена для RA10. Что касается
Вывод 18 - это MCLR на устройстве, поэтому, просмотрев таблицу данных, вы даже не можете установить SDI2 и SDO2 на указанные выше номера.
PPS - это совсем другой беспорядок на этих чипах. Вывод 18 - это не 18-й вывод на плате, а цифровой вывод ввода-вывода с номером 18, который является 19-й записью в этих таблицах массива выводов - RA4. Сопоставление RA4 выполняется через файл packages/chipKIT/hardware/pic32/2.1.0/core/pic32/pps/pingroups_1xx2xx.h
, который содержит запись:
#define _PPS_RPA4 (2 + _PPS_SET_C)
и файл packages/chipKIT/hardware/pic32/2.1.0/core/pic32/pps/peripherals_1xx2xx.h
, который содержит:
PPS_IN_SDI2 = (35 + _PPS_SET_C + _PPS_INPUT_BIT),
Затем они используются функцией mapPps() для сопоставления RA4 с SDI2. Что-то, что вполне возможно.
Да, это запутанно и немного запутанно, но лучшее, что мы могли придумать, учитывая, насколько ограничен мультиплексор ввода-вывода PIC32MX2xx.
Комментарии не предназначены для расширенного обсуждения; этот разговор был [перенесен на chat](https://chat.stackexchange.com/rooms/136159/discussion-on-answer-by-majenko-using-a-microchip-fubarino-with-the-arduino-ide)., @Majenko
- Какие есть другие IDE для Arduino?
- Не могу загрузить скетч в Arduino Nano
- Как просто закрыть вкладку в Arduino IDE?
- Могу ли я использовать Visual Studio вместо Arduino IDE?
- Как устранить сообщение об ошибке "assignment of function 'void digitalWrite (uint8_t, uint_8)"?
- Предоставление пользовательских команд AVR dude через Arduino IDE
- Нет сервера веб-сокетов для Arduino mkr1010?
- Код Arduino работает через IDE, а не через код Arduino PlatformIO
Кстати, это не микрочип Fubarino. Фубарино производится компанией Fubar Labs. Джейкоб был бы в ярости, если бы вы попытались заявить, что он Микрочип ;), @Majenko
@Majenko, именно тогда я нашел схему с платы, это все, что я "знал / знаю", в коробке с микросхемами, в которую она входила, было написано chipkit, как и в Arduino IDE. однако схема на странице Microsoft такая же, и имя файла говорит об этом, ведьма, которую я загрузил с microchip. Авторы: Брайан Шмальц и Рик Андерсон что это такое? дополнительно: 25.02.2013 - Версия микрочипа Изменен USB-разъем на стандарт микрочипа Добавлена графика CE, RoSH и chipKIT для silk на обратной стороне, @NaturalDemon
Изначально chipKIT был создан в результате сотрудничества Microchip и Digilent. С тех пор оба в значительной степени отказались от своих интересов в ит, и chipKIT теперь является самостоятельной организацией, состоящей из нескольких преданных делу инженеров сообщества (я, Джейкоб, Брайан, Рик, Гай и т.д.), Некоторых бывших сотрудников Microchip, некоторых просто людей, которые любят чипы PIC32, как я. Любой может создать плату, работающую с chipKIT, но для использования названия chipKIT у вас должно быть соглашение о торговой марке с Microchip (мы пытаемся получить контроль над названием от Microchip, но они тянут время)., @Majenko
Сейчас три основных производителя плат - это я (например, чипкит Ленни), Брайан (платы Schmalzhaus, такие как Quick240) и Джейкоб и Рик (Fubar Labs, платы Fubarino). Большинство оригинальных плат (UNO32, MAX32 и т.д.) были изготовлены компанией Digilent. Я не уверен, что они все еще создают и поддерживают их или нет. Многие платы были проданы через маркет-плейс компании Microchip (которая в прошлом также предоставляла некоторые производственные мощности), хотя сейчас они, похоже, потеряли к этому интерес., @Majenko
С тех пор, как Microchip купила Atmel, они, похоже, потеряли интерес к chipKIT и теперь сосредоточили все свое внимание на Arduinos на базе Atmel. Несмотря на то, что PIC32 на сегодняшний день является значительно более совершенным чипом, а фреймворк chipKIT может похвастаться гораздо лучшей кодовой базой, чем Arduino ;) Основная проблема, с которой мы сталкиваемся на данный момент, заключается в компиляторе - Microchip традиционно предоставляли нам версию своего компилятора XC32 ++ с открытым исходным кодом, но с тех пор, как OS X стала 64-разрядной, они действительно боролись с созданием новой версии для нас., @Majenko
Я нахожусь в процессе (медленно) адаптации vanilla mips-gcc для правильной работы с chipKIT, но это долгая и кропотливая работа. Компиляторная часть в порядке, это библиотеки поддержки микросхем низкого уровня, которые не являются простыми, особенно для более сложных микросхем PIC32MZ., @Majenko
я сделал midi-секвенсор с 23LC512 sram, используя PIC18F452, далеко не потребительский продукт, но он был на 100% точен в темпе или синхронизирован с Albeton до любой скорости до 999 ударов в минуту, 8 шагов + кнопка и светодиоды, statemachine, который я сделал, был блестящим. но 74hc595 и 74hc126 довольно медленные, используется плата microchip picdem 2 plus. но теперь я снова ньюби ... мне нравится, что у меня есть микрочип-программатор ICD3, мне нравятся фотографии., @NaturalDemon