Палмерр
Пт 31 марта 2017 г. 7:34
Я работаю на доске F4 (Black STM32F4Vet6 на вики).
У меня есть программное обеспечение I2C, отлично работает как на F1, так и F4.
У меня Hwire прекрасно работает на F1, но он ломается на F4.
На логическом анализаторе остаются выводы SDA /SCL, когда код запускается для оборудования /F4.
Hwire Times Out (я изменил настройку по умолчанию, 0 [Never Time Out] на 10000 [10 секунд] на первом вызове EndTransmission ().
Он висит на втором вызове endtransmission () - потерян где -то в середине i2c_master_xfer ().
Единственное, что изменяется в регистрах после первого вызова энтерсмиссии, - это CR1, становится 101 (я.эн. Начальный бит установлен).
Любые подсказки?
----------------------------------------
12C1 отображается на портб6 и 7
Я использую свой стандартный тестовый модуль I2C: MAG3110 с подтягиванием в VCC.
Справочный код доски и библиотеки на моем GitHub https: // github.com/palmerr23/stm32f407
Основной код прост:
У меня есть программное обеспечение I2C, отлично работает как на F1, так и F4.
У меня Hwire прекрасно работает на F1, но он ломается на F4.
На логическом анализаторе остаются выводы SDA /SCL, когда код запускается для оборудования /F4.
Hwire Times Out (я изменил настройку по умолчанию, 0 [Never Time Out] на 10000 [10 секунд] на первом вызове EndTransmission ().
Он висит на втором вызове endtransmission () - потерян где -то в середине i2c_master_xfer ().
Единственное, что изменяется в регистрах после первого вызова энтерсмиссии, - это CR1, становится 101 (я.эн. Начальный бит установлен).
Любые подсказки?
----------------------------------------
12C1 отображается на портб6 и 7
Я использую свой стандартный тестовый модуль I2C: MAG3110 с подтягиванием в VCC.
Справочный код доски и библиотеки на моем GitHub https: // github.com/palmerr23/stm32f407
Основной код прост:
" 1 set configuration to 0x801F000 / 0x801F800 / 0x400 (RB MCU)\r\n" \
AG123
Пн, 03 апреля 2017 г., 13:42
Хотя я в значительной степени новичок в этом, я нашел сеть, которую я не слишком уверен, если это помогает
http: // www.Эмку.It/stm32/stm32vldiscove ... Брэри.HTML
Некоторые из указателей похожи
Инициализировать периферическую структуру . эн.глин. Включить SPI, GPIO и т. Д
Не забудьте занять периферийные устройства.
Я думаю, что у F4 есть гораздо больше периферийных автобусов, чем F1, может ли это быть конкретный автобус не так?
Надеюсь, это поможет
http: // www.Эмку.It/stm32/stm32vldiscove ... Брэри.HTML
Некоторые из указателей похожи
Инициализировать периферическую структуру . эн.глин. Включить SPI, GPIO и т. Д
Не забудьте занять периферийные устройства.
Я думаю, что у F4 есть гораздо больше периферийных автобусов, чем F1, может ли это быть конкретный автобус не так?
Надеюсь, это поможет
ZMEMW16
Пн, 03 апреля 2017 г. 20:38
Если я помню, вы используете HAL.
У меня тоже есть эти черные 407, оба они, также отображаются как «совместимые»
Есть ли пример 'просто??'I2C F4 Код, если да, то, что это делает в терминах часов, альтернативных элементов управления битами, регистров и т. Д
те, которые, вероятно, не названы в соответствии с STM32F1 ?
Не совсем то, о чем вы думаете, это по сравнению с STM32F1 ?
Без сомнения, гигины, немного флага не в том же месте, и маска может быть неправильно ?
SCL и SDA работают в режиме Pure GPIO ?
Стивен
У меня тоже есть эти черные 407, оба они, также отображаются как «совместимые»
Есть ли пример 'просто??'I2C F4 Код, если да, то, что это делает в терминах часов, альтернативных элементов управления битами, регистров и т. Д
те, которые, вероятно, не названы в соответствии с STM32F1 ?
Не совсем то, о чем вы думаете, это по сравнению с STM32F1 ?
Без сомнения, гигины, немного флага не в том же месте, и маска может быть неправильно ?
SCL и SDA работают в режиме Pure GPIO ?
Стивен
Палмерр
Вт 04 апреля 2017 г. 1:56 утра
Стивен,
Ограниченный "HAL" - Caple Code как Core, с Hardwire на проволочной базе на I2C Libs.
Я медленно проверяю все, что вы упомянули. В настоящее время просмотр настроек Martin RCC, чтобы увидеть, подходит ли дерево часов для i2c.
Я собираюсь попробовать новое ядро STM32F4, опубликованное в субботу, и внесет свой вклад в это, если оно будет практичным, а не настойчивым на сильно модифицированном ядре Maple.
Спасибо за совет.
Ричард
Ограниченный "HAL" - Caple Code как Core, с Hardwire на проволочной базе на I2C Libs.
Я медленно проверяю все, что вы упомянули. В настоящее время просмотр настроек Martin RCC, чтобы увидеть, подходит ли дерево часов для i2c.
Я собираюсь попробовать новое ядро STM32F4, опубликованное в субботу, и внесет свой вклад в это, если оно будет практичным, а не настойчивым на сильно модифицированном ядре Maple.
Спасибо за совет.
Ричард
AG123
Вторник 04 апреля 2017 г. 13:41
У меня довольно странное предложение, если у вас есть альтернативная настройка среды разработки, E.глин. Eclipse (для себя я использую Eclipse + CDT + добавить на gnu arm eclipse http: // gnuarmeclipse.GitHub.io/) вы можете построить «эскиз», используя стандартную периферийную библиотеку St.Если «эскиз» работает со стандартной периферийной библиотекой ST, он, вероятно, предполагает, что проблема находится в программном обеспечении, а не в оборудовании, не уверен, что это помогает. gnu arm eclipse фактически включает в себя шаблоны Blinky Project, связывающие стандартную библиотеку периферийных устройств, он может немного облегчить ситуацию, если у вас уже есть эта среда
ZMEMW16
Вт 04 апреля 2017 г. 22:34
В аналогичном вене, могу ли я добавить Unicore-MX-examples и Libopencm3-examples, поскольку они являются обертками в SPI
Каждый из них, если вы 'Git Clone-Recurive' Потяните определенный экземпляр библиотек Unicore-MX и Libopencm3.
Примеры при построении с этими экземплярами дают кучу в основном ошибок USB (USB - WIP)
Удаление этих экземпляров и втягивание Unicore-MX и LiboPencm3 в структуру каталога примеров облегчает большинство, если не все.
Я использую Softlink для своего домашнего каталога «Мастер»
клон.SH - это обертка, чтобы я мог скопировать ссылку GitHub, вставить в терминал и потянуть прямо или в каталог
клон.шнур & fetch_unicore-mx.sh прикреплены, libopencm3 - прямое редактирование, также переименовано в .SH и CHMOD это
цель - мой домашний каталог.
клон.SH использует только ссылку с необязательным каталогом - выходит, если GIT видит существующий каталог
Скрипт Fetch выполняет 'rm -rf ~/unicore -mx*
Я также использую шаблон Unicore-Core для моей работы, он имеет значительную структуру каталогов, в отличие от оригинала
Есть номер, который можно найти на GitHub
Снова в моих рабочих каталогах F1 и F4 я использую мягкую ссылку на библиотеку
Стивен
Каждый из них, если вы 'Git Clone-Recurive' Потяните определенный экземпляр библиотек Unicore-MX и Libopencm3.
Примеры при построении с этими экземплярами дают кучу в основном ошибок USB (USB - WIP)
Удаление этих экземпляров и втягивание Unicore-MX и LiboPencm3 в структуру каталога примеров облегчает большинство, если не все.
Я использую Softlink для своего домашнего каталога «Мастер»
клон.SH - это обертка, чтобы я мог скопировать ссылку GitHub, вставить в терминал и потянуть прямо или в каталог
клон.шнур & fetch_unicore-mx.sh прикреплены, libopencm3 - прямое редактирование, также переименовано в .SH и CHMOD это
цель - мой домашний каталог.
клон.SH использует только ссылку с необязательным каталогом - выходит, если GIT видит существующий каталог
Скрипт Fetch выполняет 'rm -rf ~/unicore -mx*
Я также использую шаблон Unicore-Core для моей работы, он имеет значительную структуру каталогов, в отличие от оригинала
Есть номер, который можно найти на GitHub
Снова в моих рабочих каталогах F1 и F4 я использую мягкую ссылку на библиотеку
Стивен
Палмерр
Вторник 04 апреля 2017 г., 11:00 вечера
Спасибо, ребята,
Я использую немного другой подход, который параллельна те, которые вы предлагаете.
Вместо изменения среды развития, изначально я смотрю на:
а) тестирование альтернативных библиотек, найти один, который работает, а затем проследить различия, чтобы найти исправление. В основном я позаимствовал другие периферические библиотеки F1, которые должны быть идентичны для компонента I2C после всех сортировки GPIO, часы и другие вопросы разобрались.
б) Увеличение понимания того, что происходит в MCU.
К сожалению, б) крайне неадекватно в базовых конфигурациях Arduino, и использование одного из IDE, которые имеют более обширные инструменты отладки, вполне могут помочь. Я могу инвестировать в зонд черной магии, если я не сделаю все в ближайшее время. Логический анализатор и серийный монитор могут только рассказать вам о том, что происходит!
Если я не сделаю прогресс быстро, я перетасаю плагины STM32 для Eclipse и попробую это. Привлекательность Arduino, конечно же, все прекрасные, относительно портативные и простые библиотеки устройств, доступные!
Еще раз, спасибо за идеи, это может быть одиноко и разочаровываться на клавиатуре, столкнувшись с кусочком оборудования, которое просто не будет говорить!
Ричард
Я использую немного другой подход, который параллельна те, которые вы предлагаете.
Вместо изменения среды развития, изначально я смотрю на:
а) тестирование альтернативных библиотек, найти один, который работает, а затем проследить различия, чтобы найти исправление. В основном я позаимствовал другие периферические библиотеки F1, которые должны быть идентичны для компонента I2C после всех сортировки GPIO, часы и другие вопросы разобрались.
б) Увеличение понимания того, что происходит в MCU.
К сожалению, б) крайне неадекватно в базовых конфигурациях Arduino, и использование одного из IDE, которые имеют более обширные инструменты отладки, вполне могут помочь. Я могу инвестировать в зонд черной магии, если я не сделаю все в ближайшее время. Логический анализатор и серийный монитор могут только рассказать вам о том, что происходит!
Если я не сделаю прогресс быстро, я перетасаю плагины STM32 для Eclipse и попробую это. Привлекательность Arduino, конечно же, все прекрасные, относительно портативные и простые библиотеки устройств, доступные!
Еще раз, спасибо за идеи, это может быть одиноко и разочаровываться на клавиатуре, столкнувшись с кусочком оборудования, которое просто не будет говорить!
Ричард
AG123
Солнце 09 апреля 2017 г. 15:44
@palmerr
Я только что поднял свой black_f407vet6, Fresh.
Я отметил, что продавец установил эскиз по умолчанию на плате в основном мигает 2 светодиода в углу
(на фото http: // wiki.STM32duino.com/index.PHP?title = STM32F407 это 2 светодиода в нижней части слева)
Вы замечаете это изначально? Если это вероятно, что это как бы говорит, что доска «жива»
Соответственно, STM32F407VET6 фактически имеет 2 порта USB, http: // www.ул.com/en/microcontrollers/stm32f407ve.HTML
Один из них - высокая скорость / OTG. казалось, что у платы есть только на разъеме.
Другой, который представляет собой полную скорость /OTG -порт, нет с разъемом. Я вспомнил, что для установки DFU-UTIL перечислены DFU/присутствует на этом втором порту (на другой плате), который несколько прискорбен. Вероятно, нужно пойти с SWD/JTAG, чтобы работать с правлением
В противном случае можно было бы установить эскиз или резервное копирование вспышки, просто используя dfu-util
Я только что поднял свой black_f407vet6, Fresh.
Я отметил, что продавец установил эскиз по умолчанию на плате в основном мигает 2 светодиода в углу
(на фото http: // wiki.STM32duino.com/index.PHP?title = STM32F407 это 2 светодиода в нижней части слева)
Вы замечаете это изначально? Если это вероятно, что это как бы говорит, что доска «жива»
Соответственно, STM32F407VET6 фактически имеет 2 порта USB, http: // www.ул.com/en/microcontrollers/stm32f407ve.HTML
Один из них - высокая скорость / OTG. казалось, что у платы есть только на разъеме.
Другой, который представляет собой полную скорость /OTG -порт, нет с разъемом. Я вспомнил, что для установки DFU-UTIL перечислены DFU/присутствует на этом втором порту (на другой плате), который несколько прискорбен. Вероятно, нужно пойти с SWD/JTAG, чтобы работать с правлением
В противном случае можно было бы установить эскиз или резервное копирование вспышки, просто используя dfu-util
ZMEMW16
Солнце 09 апреля 2017 г., 17:45
Шахта подключена с помощью JTAG, белого/синего яйца ST-Link.
Итак, я использую
Итак, я использую
#include // for I2C
#define i2caddr 0x50 // device address for left-hand chip on our breadboard
byte d=0; // data to store in or read from the EEPROM
void setup()
{
Serial.begin(9600); // Initialize the serial line
Serial.println("I2c test");
delay (1000);
Serial.println("Start1");
Wire.begin(); // wake up the I2C
delay (1000);
Serial.println("Start2");
Serial.println("Writing data...");
for (int i=0; i<20; i++)
{
writeData(i,i);
}
Serial.println("DONE");
Serial.println("Reading data...");
for (int i=0; i<20; i++)
{
Serial.print(i);
Serial.print(" : ");
d=readData(i);
Serial.println(d, DEC);
}
Serial.println("DONE");
}
// writes a byte of data in memory location addr
void writeData(unsigned int addr, byte data)
{
Wire.beginTransmission(i2caddr);
// set the pointer position
//Wire.write((int)(addr >> 8));
Wire.write((int)(addr & 0xFF));
Wire.write(data);
Wire.endTransmission();
delay(10);
}
// reads a byte of data from memory location addr
byte readData(unsigned int addr)
{
byte result;
Wire.beginTransmission(i2caddr);
// set the pointer position
//Wire.write((int)(addr >> 8));
Wire.write((int)(addr & 0xFF));
Wire.endTransmission();
Wire.requestFrom(i2caddr,1); // get the byte of data
result = Wire.read();
return result;
}
void loop()
{
}
AG123
Солнце 09 апреля 2017 г., 19:14
Я отметил кое -что, что оказывается * сюрпризом * для моей черной платы STM32Vet6, продавец установил Mlinky Sketch/App *Отключить порт JTAG*
Первоначально я не могу программировать через порт JTAG, и я подумал, что у меня есть кирпичная доска. Когда я сделал Openocd, я получил Gnu arm eclipse 64-бит открытый в чип-отладчик 0.10.0-00113-G0F83948 (2017-01-24-19: 18)
Лицензирован в рамках GNU GPL V2
Для отчетов об ошибках читай http: // openocd.org/doc/doxygen/ошибки.HTML
Информация: Автоматический выбор первого доступного сеанса транспорта "JTAG". Чтобы переопределить использование 'Transport Select <трэнд
Ansport>'.
Скорость адаптера: 2000 кГц
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
Нет отдельно
cortex_m Reset_config sysresetReq
Информация: тактовая скорость 2000 кГц
Ошибка: не удалось: все
Ошибка: Проверьте интерфейс JTAG, временные времена, целевая мощность и т. Д.
Ошибка: в любом случае попытка использовать настроенную цепочку сканирования...
Ошибка: STM32F4X.ЦП: ошибка захвата ИК; видел 0x0f не 0x01
Предупреждение: обход событий настройки JTAG из -за ошибок
Ошибка: неверный ACK (7) в ответе DAP
Ошибка: липкая ошибка JTAG-DP
Ошибка: неверный ACK (7) в ответе DAP
Ошибка: липкая ошибка JTAG-DP
Ошибка: неверный ACK (7) в ответе DAP
Ошибка: липкая ошибка JTAG-DP
...
Ошибка: не может инициализировать порт отладки Мне пришлось прибегнуть к этому подходу «подключиться под сброс», чтобы подключиться через JTAG к доске
Я нашел ссылку на процедуру, описанную здесь
https: // github.com/spark/persdware/uppense/31
После того, как я стерла первые дюжины секторов, используя метод «Подключить к сбросу», я могу восстановить нормальное соединение openocd jtag Gnu arm eclipse 64-бит открытый в чип-отладчик 0.10.0-00113-G0F83948 (2017-01-24-19: 18)
Лицензирован в рамках GNU GPL V2
Для отчетов об ошибках читай
http: // openocd.org/doc/doxygen/ошибки.HTML
Информация: Автоматический выбор первого доступного сеанса транспорта "JTAG". Чтобы переопределить использование 'Transport Select <транспорт>'.
Скорость адаптера: 2000 кГц
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
Нет отдельно
cortex_m Reset_config sysresetReq
Информация: тактовая скорость 2000 кГц
Информация: JTAG Tap: STM32F4X.CPU Tap/Device найдено: 0x4ba00477 (MFG: 0x23b (Arm Ltd.), часть: 0xba00, ver: 0x4)
Информация: JTAG Tap: STM32F4X.BS TAP/Устройство найдено: 0x06413041 (MFG: 0x020 (Stmicroelectronics), часть: 0x6413, ver: 0x0) После этого я вспыхнул мглый эскиз / приложение, которое основано на ST HAL - non arduino
Первоначально я не могу программировать через порт JTAG, и я подумал, что у меня есть кирпичная доска. Когда я сделал Openocd, я получил Gnu arm eclipse 64-бит открытый в чип-отладчик 0.10.0-00113-G0F83948 (2017-01-24-19: 18)
Лицензирован в рамках GNU GPL V2
Для отчетов об ошибках читай http: // openocd.org/doc/doxygen/ошибки.HTML
Информация: Автоматический выбор первого доступного сеанса транспорта "JTAG". Чтобы переопределить использование 'Transport Select <трэнд
Ansport>'.
Скорость адаптера: 2000 кГц
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
Нет отдельно
cortex_m Reset_config sysresetReq
Информация: тактовая скорость 2000 кГц
Ошибка: не удалось: все
Ошибка: Проверьте интерфейс JTAG, временные времена, целевая мощность и т. Д.
Ошибка: в любом случае попытка использовать настроенную цепочку сканирования...
Ошибка: STM32F4X.ЦП: ошибка захвата ИК; видел 0x0f не 0x01
Предупреждение: обход событий настройки JTAG из -за ошибок
Ошибка: неверный ACK (7) в ответе DAP
Ошибка: липкая ошибка JTAG-DP
Ошибка: неверный ACK (7) в ответе DAP
Ошибка: липкая ошибка JTAG-DP
Ошибка: неверный ACK (7) в ответе DAP
Ошибка: липкая ошибка JTAG-DP
...
Ошибка: не может инициализировать порт отладки Мне пришлось прибегнуть к этому подходу «подключиться под сброс», чтобы подключиться через JTAG к доске
Я нашел ссылку на процедуру, описанную здесь
https: // github.com/spark/persdware/uppense/31
После того, как я стерла первые дюжины секторов, используя метод «Подключить к сбросу», я могу восстановить нормальное соединение openocd jtag Gnu arm eclipse 64-бит открытый в чип-отладчик 0.10.0-00113-G0F83948 (2017-01-24-19: 18)
Лицензирован в рамках GNU GPL V2
Для отчетов об ошибках читай
http: // openocd.org/doc/doxygen/ошибки.HTML
Информация: Автоматический выбор первого доступного сеанса транспорта "JTAG". Чтобы переопределить использование 'Transport Select <транспорт>'.
Скорость адаптера: 2000 кГц
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
Нет отдельно
cortex_m Reset_config sysresetReq
Информация: тактовая скорость 2000 кГц
Информация: JTAG Tap: STM32F4X.CPU Tap/Device найдено: 0x4ba00477 (MFG: 0x23b (Arm Ltd.), часть: 0xba00, ver: 0x4)
Информация: JTAG Tap: STM32F4X.BS TAP/Устройство найдено: 0x06413041 (MFG: 0x020 (Stmicroelectronics), часть: 0x6413, ver: 0x0) После этого я вспыхнул мглый эскиз / приложение, которое основано на ST HAL - non arduino
AG123
Солнце 09 апреля 2017 г., 19:18
Кроме того, я обнаружил, что STM32VET6-Black против STM32ZET6-Black подключен по-разному на плате, даже если фотографии выглядели одинаково на eBay и т. Д
Для Vet6 светодиоды находятся на PA6 и PA7
http: // wiki.STM32duino.com/images/5/5c/ ... Эматический.PDF
В то время как на Zet6 светодиоды находятся на PF9 и PF10
http: // wiki.STM32duino.com/images/4/4f/ ... _SCH-1.PDF
Я прикрепляю свои двоичные файлы для Vet6 и Zet6 Blnky на случай, если это поможет (примечание: Zet6 Blinky не тестируется и просто скомпилируется на основе схемы)
Для Vet6 светодиоды находятся на PA6 и PA7
http: // wiki.STM32duino.com/images/5/5c/ ... Эматический.PDF
В то время как на Zet6 светодиоды находятся на PF9 и PF10
http: // wiki.STM32duino.com/images/4/4f/ ... _SCH-1.PDF
Я прикрепляю свои двоичные файлы для Vet6 и Zet6 Blnky на случай, если это поможет (примечание: Zet6 Blinky не тестируется и просто скомпилируется на основе схемы)
ZMEMW16
Солнце 09 апреля 2017 8:12 вечера
Я просматривал схему, я прав, думая, что некоторые из интерфейсов фактически отображаются с альтернативными ?
также объясняет мои публикации об альтернативах и о том, как
я.эн. Native I2C1 на PB6/PB7 SO
Подключаясь через мою ссылку синего/белого яйца ST, я могу читать обратно, используя ST-Info и остановки светодиодов, предлагает остановленный процессор,
Так что подключитесь к сбросу?
Стивен
также объясняет мои публикации об альтернативах и о том, как
я.эн. Native I2C1 на PB6/PB7 SO
- Модуль разъема NRF4 I использую v Black Vet6
1 CE PB6 NRF_CE
2 CSN PB7 NRF_CS
3 SCK PB3 SPI1_SCK
4 mosi pb5 spi1_mosi
5 мисо pb4 spi1_miso
6 IRQ PB8 NRF_IRQ
вспышка
flash_cs f_cs pb0
flash_do spi1_miso
flash_di spi1_mosi pb5
flash_ck spi1_sck pb3
трогать
T_CS PB12
T_SCK PB13
T_MISO PB14
T_MOSI PB15
светодиоды Vet v Zet
PA6 V PF9
PA7 V PF10
SDIO кажется таким же
SDIO_D0 PC8
SDIO_D1 PC9
SDIO_D2 PC10
SDIO_D3 PC11
SDIO_SCK PC12
SDIO_CMD PD2
Подключаясь через мою ссылку синего/белого яйца ST, я могу читать обратно, используя ST-Info и остановки светодиодов, предлагает остановленный процессор,
Так что подключитесь к сбросу?
Стивен
AG123
Солнце 09 апреля 2017 8:17
мне казалось, что красные выстрятки направляются на заголовки? Нет, не только это, нужно дальнейшее изучение
Встроенная SPI Flash казалась жесткой подключенной к SPI1, CS на Flash тянутся до 3.3В
Казалось, что те же разъемы, которые переходят на SPI Flash, и SDIO также направляются на заголовки (вы имеете в виду, что быть «альтернативами» ?) вы можете быть правы об этом, так как те же самые булавки, вероятно, имеют альтернативные функции
Я не уверен, почему в моем случае JTAG, по-видимому, заблокирован, но это те результаты, которые я наблюдал, возможно, приложение ST-Link сделало это «подключиться под сброс»
Встроенная SPI Flash казалась жесткой подключенной к SPI1, CS на Flash тянутся до 3.3В
Казалось, что те же разъемы, которые переходят на SPI Flash, и SDIO также направляются на заголовки (вы имеете в виду, что быть «альтернативами» ?) вы можете быть правы об этом, так как те же самые булавки, вероятно, имеют альтернативные функции
Я не уверен, почему в моем случае JTAG, по-видимому, заблокирован, но это те результаты, которые я наблюдал, возможно, приложение ST-Link сделало это «подключиться под сброс»
ZMEMW16
Солнце 09 апреля 2017 г. 9:56 вечера
На ссылке я не спорю, просто отчетность / спекуляции
Также спекулируют flash_cs, я также называю f_cs ? Я тоже думал, что прямой подтягивание странно
Повторно, I2C1 рассматривается по умолчанию как PB6 и PB7, они используются в соединениях NRF24 CE & CS, также PB3, PB4 и PB5 не являются условно SPI1. Я ожидаю, что это как pa4.. ПА7.
Глядя на метку на CPU PIN 89, от DS Page 54 Таблица 6. STM32F40X ПИНА И Определения мяча (продолжение)
Он описан как njrst/spi3_miso/tim3_ch1/spi1_mosi/i2s3ext_sd/eventerout
Если он используется в качестве SPI1, это должно быть альтернативой, если я правильно понимаю. до P58 Таблица 8
Помните эти 103 доски с сокеты NRF24 и ESP8266, ISTR, кто публикует, что i2C1 не использует обычно PB6/PB7, но один наметил в другом месте, так что это происходит. Кроме того, когда я начал интересоваться альтернативами, так как я не знал, как их использовать.
Можем ли мы сбросить регистры управления GPIO_AFXX для альтернатив, используя ST-Flash или OpenOCD ? из подключения под сбросом «замороженная» память устройства
RM0090 P287 8.4.9 далее ?
Таблица 39?
база GPIO_REG ? смещение дается как 0x24, откуда ??
P269 на
с
Также спекулируют flash_cs, я также называю f_cs ? Я тоже думал, что прямой подтягивание странно
Повторно, I2C1 рассматривается по умолчанию как PB6 и PB7, они используются в соединениях NRF24 CE & CS, также PB3, PB4 и PB5 не являются условно SPI1. Я ожидаю, что это как pa4.. ПА7.
Глядя на метку на CPU PIN 89, от DS Page 54 Таблица 6. STM32F40X ПИНА И Определения мяча (продолжение)
Он описан как njrst/spi3_miso/tim3_ch1/spi1_mosi/i2s3ext_sd/eventerout
Если он используется в качестве SPI1, это должно быть альтернативой, если я правильно понимаю. до P58 Таблица 8
Помните эти 103 доски с сокеты NRF24 и ESP8266, ISTR, кто публикует, что i2C1 не использует обычно PB6/PB7, но один наметил в другом месте, так что это происходит. Кроме того, когда я начал интересоваться альтернативами, так как я не знал, как их использовать.
Можем ли мы сбросить регистры управления GPIO_AFXX для альтернатив, используя ST-Flash или OpenOCD ? из подключения под сбросом «замороженная» память устройства
RM0090 P287 8.4.9 далее ?
Таблица 39?
база GPIO_REG ? смещение дается как 0x24, откуда ??
P269 на
с
repeat
write record
until end of eeprom
on subsequent writes, overwrite the oldest record
Палмерр
Пн 10 апреля 2017 г. 1:19
Близкие,
Вы были заняты! Несколько вкладов в обсуждение, в любом случае, в Правление Vet6.
Winbond Flash, привязанная к PB3,4,5, предлагает SPI1 ИЛИ SPI3 - как любой может использовать эти булавки, пока оборудование CS (NSS) не используется. PB14 - это F_CS, а подтягивание - просто подтяжка! (Возможно, это на месте, так что флэш -чип не отвечает на команды NRF, если драйвер (я.E PB14, подтягивание) не инициализируется.)
Я бы склонен пойти на SPI3, так что SPI1 остался для других библиотек/использования пользователей (некоторые библиотеки предполагают SPI1), особенно в том, что SDIO использует PC8-12 & PD2 убивает альтернативное отображение SPI3_SCK, и SPI1_SCK все еще может перейти к PA5.
Стивен отметил, что NRF подключен к тем же булавкам SPI, что и Winbond (кроме CS и IRQ) - это все еще позволяет использовать SPI1 или SPI3 для этих периферийных устройств, поскольку они разделяют интерфейс.
Любые мысли о картировании SPI1 / SPI3? Я думаю, что мы должны связать предпочтительное задание, чтобы сохранить путаницу для тех, кто следует.
Кстати, спасибо за схему Vet6, у него есть несколько маршрутов, которые я еще не проследил. Я поставлю это на вики.
Re usb - я считаю, что OTG_FS направляется в USB -сокет, а не в HS, через PA11 & 12.
Что касается красных и коричневых отметок на схеме, я не вижу для них никакой логики. Первоначально я думал, что они были выделенными системными булавками, но T_CS красный, поэтому я склонен думать, что они просто более позднее редактируют в «неправильном» цвете.
Я обновлю свою конфигурацию MX Cube со всем этим и создам новую ветку в моем репо для обновлений.
Ричард
Вы были заняты! Несколько вкладов в обсуждение, в любом случае, в Правление Vet6.
Winbond Flash, привязанная к PB3,4,5, предлагает SPI1 ИЛИ SPI3 - как любой может использовать эти булавки, пока оборудование CS (NSS) не используется. PB14 - это F_CS, а подтягивание - просто подтяжка! (Возможно, это на месте, так что флэш -чип не отвечает на команды NRF, если драйвер (я.E PB14, подтягивание) не инициализируется.)
Я бы склонен пойти на SPI3, так что SPI1 остался для других библиотек/использования пользователей (некоторые библиотеки предполагают SPI1), особенно в том, что SDIO использует PC8-12 & PD2 убивает альтернативное отображение SPI3_SCK, и SPI1_SCK все еще может перейти к PA5.
Стивен отметил, что NRF подключен к тем же булавкам SPI, что и Winbond (кроме CS и IRQ) - это все еще позволяет использовать SPI1 или SPI3 для этих периферийных устройств, поскольку они разделяют интерфейс.
Любые мысли о картировании SPI1 / SPI3? Я думаю, что мы должны связать предпочтительное задание, чтобы сохранить путаницу для тех, кто следует.
Кстати, спасибо за схему Vet6, у него есть несколько маршрутов, которые я еще не проследил. Я поставлю это на вики.
Re usb - я считаю, что OTG_FS направляется в USB -сокет, а не в HS, через PA11 & 12.
Что касается красных и коричневых отметок на схеме, я не вижу для них никакой логики. Первоначально я думал, что они были выделенными системными булавками, но T_CS красный, поэтому я склонен думать, что они просто более позднее редактируют в «неправильном» цвете.
Я обновлю свою конфигурацию MX Cube со всем этим и создам новую ветку в моем репо для обновлений.
Ричард
AG123
Пн 10 апреля 2017 г., 19:55
Спасибо Zmemw16, Palmerr, я довольно новичок в этих вещах и спасибо, что поделились об альтернативах. эн.глин. Я на самом деле не понимал, что SPI1 и SPI3 можно настроить на одних и тех же контактах E.глин. на борт SPI Flash. Это может освободить S, Spi1, который может быть довольно популярен в библиотеках
I2C (PB6, PB7), направляемый в NRF, довольно интересен, а также этот заголовок NRF может использоваться для подключения NRF, а также таких вещей, как акселерометры и т. Д., Я думаю, что i2c может иметь цепочку устройств, пока у авторитета есть автобуса. сделанный.
Что касается USB, то это указано на схеме PA11/USB_DM и PA12/USB_DP, как вы отметили, что это, вероятно, маршрутизируется встроенный USB -разъем USB
В тесте, описанном здесь, подумайте, что он подтвержден для ветеринара:
http: // www.ул.com/content/ccc/resource/ ... 167594.PDF
Страница 19 (раздел 3.1) - SET BOOT0 - шаблон 1
Затем страница 95 (раздел 25.1.1 STM32F40XXX/41XXX DEVICES загрузчик:
"DFU Bootloader PA11: USB DM Line, PA12: USB DP Line - это для порта USB FS"
Я повторно проверил это, подключив доску после настройки Boot0, и в Linux я вижу:
I2C (PB6, PB7), направляемый в NRF, довольно интересен, а также этот заголовок NRF может использоваться для подключения NRF, а также таких вещей, как акселерометры и т. Д., Я думаю, что i2c может иметь цепочку устройств, пока у авторитета есть автобуса. сделанный.
Что касается USB, то это указано на схеме PA11/USB_DM и PA12/USB_DP, как вы отметили, что это, вероятно, маршрутизируется встроенный USB -разъем USB
В тесте, описанном здесь, подумайте, что он подтвержден для ветеринара:
http: // www.ул.com/content/ccc/resource/ ... 167594.PDF
Страница 19 (раздел 3.1) - SET BOOT0 - шаблон 1
Затем страница 95 (раздел 25.1.1 STM32F40XXX/41XXX DEVICES загрузчик:
"DFU Bootloader PA11: USB DM Line, PA12: USB DP Line - это для порта USB FS"
Я повторно проверил это, подключив доску после настройки Boot0, и в Linux я вижу:
#include
#include "SdFat.h"
SdFat sd;
File file;
char fileName[] = "log_1.csv";
byte fileNumber = 1;
#define SD_CHIP_SELECT PA4 //53 mega, 10 uno, 7 (PA4) STM
#define SPI_SPEED SD_SCK_MHZ(4)
#define baudrate 115200
#define Serial Serial1
void setup() {
Serial.begin(baudrate);
Serial.println("type to start");
while (!Serial.available()) {
SysCall::yield();//avoid error on other boards?
}
Serial.println("Starting...");
if (!sd.begin(SD_CHIP_SELECT, SPI_SPEED)) {
Serial.println("initialize error");
}
Serial.print("file Name: ");
Serial.println(fileName);
while (sd.exists(fileName)) {
newfile();
Serial.print("file name: ");
Serial.println(fileName);
}
file = sd.open(fileName, FILE_WRITE); //create file
if (file) { //check if file is opened correctly
file.println("test 1");
for (int i = 0; i < 20; i++) {
file.print("data"); file.print(i); file.print(",");
}
file.println("");
file.println("test 2");
char randomData[100];
byte value1 = random(0, 254);
int value2 = random(254, 65536);
char value3 = 'p';
float value4 = random(1, 500) / 100.0;
sprintf(randomData, "value:%d,%d,%c,%f", value1, value2, value3, value4);
file.print(randomData);
file.println("");
file.println("test 3");
unsigned int start = micros();
file.print("writing speed: ");
unsigned int speedtest = micros() - start;
file.print(speedtest);
file.close();
delay(10);
Serial.println("wrote!");
Serial.println();
delay(1000);
Serial.println("stress test...");
delay(10);
for (byte a = 10; a >= 1; a--) {
char fileName[12];
sprintf(fileName, "file%d.csv", a);
file = sd.open(fileName, FILE_WRITE); //create file
delay(100);
if (file) {
file.println("stress test");
} else {
delay(100);
Serial.print("stress test failed n#"); Serial.println(a);
}
delay(100);
file.close();
delay(20 * a);
}
Serial.println("completed!");
} else {
Serial.println("error opening file");
}
}
void newfile() {
fileNumber++;
sprintf(fileName, "log_%d.csv", fileNumber);
}
void loop() {}
ZMEMW16
Пн 10 апреля 2017 г., 22:55
@AG123
I2C (PB6, PB7) направляется в NRF довольно интересный, а также этот заголовок NRF может использоваться для подключения NRF
вот идет дождь
PB6 & PB7 используются в качестве выходов GPIO для NRF_CS и NRF_CE, добавление Альтернативный набор имеет PB8, используемый в качестве входа NRF_IRQ
небольшое солнце
I2C2 на PB10 & PB11 бесплатный
Я работаю над IOC Cubemx, который должен использовать для черного ветеринара, с этикетками (WIP)
Я выложу это, наверное, завтра.
Стивен
PB6 & PB7 используются в качестве выходов GPIO для NRF_CS и NRF_CE, добавление Альтернативный набор имеет PB8, используемый в качестве входа NRF_IRQ
небольшое солнце
I2C2 на PB10 & PB11 бесплатный
Я работаю над IOC Cubemx, который должен использовать для черного ветеринара, с этикетками (WIP)
Я выложу это, наверное, завтра.
Стивен
Палмерр
Вт 11 апреля 2017 г. 1:23
Хорошая работа над портом DFU!
Вариант из Ethernet 100 Мбит / с.глин. LAN8720 за 3 доллара.20 на eBay.
NRF SPI, а не I2C, поэтому для обмена требуются отдельные /CS -контакты. Например, SPI1 (или SPI3 как AF) уже разделен с NRF и в бортовой флэш -памяти.
Кстати @AG123, я потерял отслеживание, какую реализацию кода вы используете: Maple, Cube (новый STM32Duino) или Koduino?
Вы используете Arduino IDE или Eclipse и т. Д?
Ричард
Вариант из Ethernet 100 Мбит / с.глин. LAN8720 за 3 доллара.20 на eBay.
NRF SPI, а не I2C, поэтому для обмена требуются отдельные /CS -контакты. Например, SPI1 (или SPI3 как AF) уже разделен с NRF и в бортовой флэш -памяти.
Кстати @AG123, я потерял отслеживание, какую реализацию кода вы используете: Maple, Cube (новый STM32Duino) или Koduino?
Вы используете Arduino IDE или Eclipse и т. Д?
Ричард
ZMEMW16
Вт 11 апреля 2017 г. 1:41
@palmerr написал
NRF SPI, а не I2C, поэтому для обмена требуются отдельные /CS -контакты. Например, SPI1 (или SPI3 как AF) уже разделен с NRF и в бортовой флэш -памяти.
делится SPI SCK, мисо & Сигналы MOSI с несколькими устройствами и с отдельными линиями управления в порядке, почти ожидается.
Я был бы серьезно сомневаюсь в I2C с контрольными сигналами NRF24 и наоборот. это просто неправильно.
Стивен
Я был бы серьезно сомневаюсь в I2C с контрольными сигналами NRF24 и наоборот. это просто неправильно.
Стивен
Палмерр
Вт 11 апреля 2017 г. 2:21
Стивен,
Если вы говорите, что разделение булавок между SPI и I2C, будучи «просто неправильно», я от всего сердца согласен.
У меня нет проблем с тем, чтобы разделить другие устройства SPI с NRF на SPI2, однако.
Ричард
Если вы говорите, что разделение булавок между SPI и I2C, будучи «просто неправильно», я от всего сердца согласен.
У меня нет проблем с тем, чтобы разделить другие устройства SPI с NRF на SPI2, однако.
Ричард
ZMEMW16
Вт 11 апреля 2017 г. 3:02
Ричард,
Это мысль о попытке использовать протоколы шины I2C1 на линии управления CE/CS NRF24, для меня, поскольку PB8 также используется с IRQ NRF24, то это означает, что I2C1 эффективно заблокирован даже с использованием его альтернативного.
Прикрепление моего текущего SRP1.МОК
В основном это просто добавление метков и установление некоторых состояний GPIO.
Стивен
Это мысль о попытке использовать протоколы шины I2C1 на линии управления CE/CS NRF24, для меня, поскольку PB8 также используется с IRQ NRF24, то это означает, что I2C1 эффективно заблокирован даже с использованием его альтернативного.
Прикрепление моего текущего SRP1.МОК
В основном это просто добавление метков и установление некоторых состояний GPIO.
Стивен
Палмерр
Вт 11 апреля 2017 г. 5:43
Стивен,
Спасибо, я перевалыю их.
Согласился с PB8. PB6 всегда доступен в качестве альтернативного i2C1_SC для PB8, особенно когда UART1_TX (заголовок ISP) выделен на PA9.
Любые мысли о лучшем расположении цифровой пин -код Arduino (см. Предыдущий пост)? Просмотр электронных таблиц с параметрами распина.
Кстати: в XXX.МОК.txt - что такое MCU.Числа PINXX - они, кажется, не приравниваются к INS или схеме логической нумерации?
SDIO.Buswide = sdio_bus_wide_1b
и
SDIO.Widemode = sdio_bus_wide_4b
кажется странным.
Также твое дерево часов выглядит несколько. Моя, как в F4-1.PDF в Gitub.
My HSE + PLL управляет 168 МГц sysclk и приводит к APB1 = 42 МГц и т. Д.
Ваш SYSCLK на скорости 160 МГц приводит к APB1 на 16 МГц, что может не допустить высоких показателей передачи данных или переносной дискретизации на некоторых периферийных устройствах.
Ваш RTC.Включить выключен. Я использую LSE в качестве источника часов для RTC.
Ричард
Спасибо, я перевалыю их.
Согласился с PB8. PB6 всегда доступен в качестве альтернативного i2C1_SC для PB8, особенно когда UART1_TX (заголовок ISP) выделен на PA9.
Любые мысли о лучшем расположении цифровой пин -код Arduino (см. Предыдущий пост)? Просмотр электронных таблиц с параметрами распина.
Кстати: в XXX.МОК.txt - что такое MCU.Числа PINXX - они, кажется, не приравниваются к INS или схеме логической нумерации?
SDIO.Buswide = sdio_bus_wide_1b
и
SDIO.Widemode = sdio_bus_wide_4b
кажется странным.
Также твое дерево часов выглядит несколько. Моя, как в F4-1.PDF в Gitub.
My HSE + PLL управляет 168 МГц sysclk и приводит к APB1 = 42 МГц и т. Д.
Ваш SYSCLK на скорости 160 МГц приводит к APB1 на 16 МГц, что может не допустить высоких показателей передачи данных или переносной дискретизации на некоторых периферийных устройствах.
Ваш RTC.Включить выключен. Я использую LSE в качестве источника часов для RTC.
Ричард
ZMEMW16
Вт 11 апреля 2017 г. 7:57 утра
в каком -то конкретном порядке
Я подозреваю, что начал с STM32F407VET в качестве нового индивидуального проекта.
Я начинаю не любить графический интерфейс, нет объекта слияния
HSE/LSE
ISTRE сразу же в одном из моих испытаний, см. Выше
SDIO - настройка по умолчанию, ничего не видит по умолчанию
Установка ISTRE -ISTREN Режимы GPIO и начальные выходные состояния для LED0 & LED1 - изменение коэффициента мгновение марки/пространства, поэтому я знаю, что работает
HSE/LSE/RTC - я думал, что использовал кристалл для обоих. Посмотрел DIFF, чтобы копировать и переполнить вставку могут работать
MCU.PIN/RCC.XXX и т. Д. - это вставлено Cubemx, то, что я делаю для их изменения, неясно, единственное, что я сделал, это добавить метки пользователей, не уверен, что я настрою альтернативные (ы) SPI.
Мне не хватает действительно, действительно полезного Unicore-MX определяет GPIO [ABCDEF] для портов, GPION/GPIONN для бита.
PIN/PORT - я бы предложил 103VET в качестве разумной отправной точки, если использование сопоставления сопоставления по умолчанию на PA4-7 я бы определил SPI1_CLK как PA5, то SPI2_CLK как PB13 и т. Д., Если вы используете альтернатив, вы, вероятно, знаете и как Чтобы использовать порт/номер STD, мы все любим.
Кстати, вы можете запустить два окна Cubemx!
Мне интересно, может ли, может быть, ST сообщит нам, как генерируется/используется файл IOC - нет - нет вряд ли
Стивен
Я подозреваю, что начал с STM32F407VET в качестве нового индивидуального проекта.
Я начинаю не любить графический интерфейс, нет объекта слияния
HSE/LSE
ISTRE сразу же в одном из моих испытаний, см. Выше
SDIO - настройка по умолчанию, ничего не видит по умолчанию
Установка ISTRE -ISTREN Режимы GPIO и начальные выходные состояния для LED0 & LED1 - изменение коэффициента мгновение марки/пространства, поэтому я знаю, что работает
HSE/LSE/RTC - я думал, что использовал кристалл для обоих. Посмотрел DIFF, чтобы копировать и переполнить вставку могут работать
MCU.PIN/RCC.XXX и т. Д. - это вставлено Cubemx, то, что я делаю для их изменения, неясно, единственное, что я сделал, это добавить метки пользователей, не уверен, что я настрою альтернативные (ы) SPI.
Мне не хватает действительно, действительно полезного Unicore-MX определяет GPIO [ABCDEF] для портов, GPION/GPIONN для бита.
PIN/PORT - я бы предложил 103VET в качестве разумной отправной точки, если использование сопоставления сопоставления по умолчанию на PA4-7 я бы определил SPI1_CLK как PA5, то SPI2_CLK как PB13 и т. Д., Если вы используете альтернатив, вы, вероятно, знаете и как Чтобы использовать порт/номер STD, мы все любим.
Кстати, вы можете запустить два окна Cubemx!
Мне интересно, может ли, может быть, ST сообщит нам, как генерируется/используется файл IOC - нет - нет вряд ли
Стивен
AG123
Вт 11 апреля 2017 г. 10:24
Палмерр написал:Хорошая работа над портом DFU!
Вариант из Ethernet 100 Мбит / с.глин. LAN8720 за 3 доллара.20 на eBay.
NRF SPI, а не I2C, поэтому для обмена требуются отдельные /CS -контакты. Например, SPI1 (или SPI3 как AF) уже разделен с NRF и в бортовой флэш -памяти.
Кстати @AG123, я потерял отслеживание, какую реализацию кода вы используете: Maple, Cube (новый STM32Duino) или Koduino?
Вы используете Arduino IDE или Eclipse и т. Д?
Ричард
Вариант из Ethernet 100 Мбит / с.глин. LAN8720 за 3 доллара.20 на eBay.
NRF SPI, а не I2C, поэтому для обмена требуются отдельные /CS -контакты. Например, SPI1 (или SPI3 как AF) уже разделен с NRF и в бортовой флэш -памяти.
Кстати @AG123, я потерял отслеживание, какую реализацию кода вы используете: Maple, Cube (новый STM32Duino) или Koduino?
Вы используете Arduino IDE или Eclipse и т. Д?
Ричард
AG123
Вт 11 апреля 2017 г. 12:05
OT: Я думаю, что когда Роджер рядом, возможно, Роджер, возможно, может помочь «перенести» эту ветку в раздел «Доски STM32F4
Поскольку дискуссии казались в значительной степени F4
надеюсь, что это можно сделать удобно
Поскольку дискуссии казались в значительной степени F4
надеюсь, что это можно сделать удобно
Палмерр
Ср 12 апреля 2017 г. 12:20 утра
Мы могли бы сместить его там сейчас и просто ссылаться на этот поток в начальном посте.
AG123
Ср 12 апреля 2017 г. 16:09
О, на случай, если кто -то «пропустил» 2 появляющихся реализаций STM32Duino, которые могут работать на F4
STM32Generic
http: // www.STM32duino.com/viewtopic.PHP?F = 42&T = 1966
Святое ядро
http: // www.STM32duino.com/viewtopic.PHP?F = 48&T = 1943
STM32Generic
http: // www.STM32duino.com/viewtopic.PHP?F = 42&T = 1966
Святое ядро
http: // www.STM32duino.com/viewtopic.PHP?F = 48&T = 1943