[Libmaple] Black F407Vet6

Стивестронг
Ср 12 апреля 2017 г. 16:37
А Мастерская ветвь моего репо Содержит последние разработки для F4, поэтому я рекомендую использовать это, если кто -то хочет проверить его с помощью Arduino IDE или Platformio.
Поддерживаемые варианты платы: универсальный F4 (протестирован), Generic F4 Mini (проверенная), Disco F407 (компилированные, но не протестированные).

Некоторые основные информацию о доске можно найти на вики: http: // wiki.STM32duino.com/index.PHP?title = STM32F407

В настоящее время работает:
- GPIOS + LED TOGHLE
- USB Serial и Serial 1,2,3. Оценка USB -серийная скорость, Техас: ~ 800 Кбит / с
- SPI (1,2,3) с DMA (также для SD -карт с использованием новейших SDFAT LIB, изготовленных Greiman), расширенные функции DMA
- FSMC (адаптирован для проведения 16 -битных параллельных ЖК -дисплеев) http: // stm32duino.com/viewtopic.PHP?F = 39&T = 2298#P31037
- SDIO [не HAL реализация] (для карт SD с использованием последних SDFAT LIB, сделанных Greiman) http: // stm32duino.com/viewtopic.PHP?F = 39&t = 2215
- RTC - переработано, не нуждается в библиотеке дополнительного времени
- I2c (проволока) ViewTopic.PHP?F = 39&t = 2804&P = 37376#P37376
- поддерживает модули Ethernet на основе W5500 (см ViewTopic.PHP?f = 13&t = 503&P = 32063#P32063)
- ЦАП, см ViewTopic.PHP?F = 39&T = 1976&P = 41564#P41564
- АЦП, см http: // stm32duino.com/viewtopic.PHP?f = 3 ... 720#P42720
- Dcmi, см ViewTopic.PHP?F = 39&t = 3414&P = 43358#P43358
- Может, см.: http: // stm32duino.com/viewtopic.PHP?f = 3 ... 239#P49235

Тодо:
- Портировать новую (более быструю) версию SDIO от Victor (https: // github.com/rogerclarkmelbourne/ ... 2/pull/474)
- Проверьте на борту W25Q64 SPI Flash, возможно, добавьте Spiflash Lib в репо (откуда от?) https: // github.com/lowpowerlab/spiflash
- Проверьте/добавьте FPU (http: // stm32duino.com/viewtopic.PHP?F = 39&T = 2001, http: // stm32duino.com/viewtopic.PHP?f = 3 ... 048#P31040)
- Добавить поддержку для платы Seed Arch Max
- Добавить Ethernet lib (используется с помощью Seeed Arch Max Board)

Редактировать - 2018.10.02
- Добавлены расширенные функции SPI DMA, см ViewTopic.PHP?f = 15&t = 3415

Редактировать - 2018.09.12
- Рабочая банка, посмотрите: http: // stm32duino.com/viewtopic.PHP?f = 3 ... 239#P49235 (Спасибо @michael_i!)

Редактировать - 2018.03.19
- Протестировано АЦП, см.: http: // stm32duino.com/viewtopic.PHP?f = 3 ... 720#P42720

Редактировать - 2018.02.18
- Протестированный ЦАП, см.: ViewTopic.PHP?F = 39&T = 1976&P = 41564#P41564

Редактировать - 2018.01.16
- Добавлен i2c (проволока), см.: ViewTopic.PHP?F = 39&t = 2804&P = 37376#P37376

Редактировать - 2017.07.10
- RTC Lib переработана, чтобы быть независимыми от других библиотек времени. Включите пример наброска для чтения и установки времени RTC, а также как использовать временные элементы.
Его можно скачать отсюда: ViewTopic.PHP?F = 39&t = 775&P = 31218#P31218

Редактировать - 2017.06.18
- Реализованный SDIO [не HAL реализация] (для карт SD с использованием новейших SDFAT LIB, сделанных Greiman)
ViewTopic.PHP?F = 39&t = 2215

Редактировать - 2017.06.02

Загрузите под Windows в настоящее время только STLINK (V2).
Когда boot0 = "1" (3.3V) и boot1 = "0" (GND), чип распознается Win10 как «устройство STM в режиме DFU» (USB \ VID_0483&Pid_df11).
Тем не менее, не существует рабочего загрузчика DFU для Windows, но еще.

Комментарии & Предложения приветствуются в этой теме.
Любые сообщения об ошибках & PRS в GitHub, пожалуйста.

-------------------------------------------------------------------------------------
Всем привет,

Я знаю, что есть еще один Поток на вете6 & Zet6 Доски, Но есть не менее 2 типов смешанных плат, с частично различной информацией.
И есть много другой информации, распространяемой по другим темам, например эта общая реализация от Даниэффа.
Вики имеет некоторые основные вещи, тоже (спасибо, Палмер!).

Итак, сегодня я получил свою черную доску, и я имеет смысл открыть отдельную ветку только для Black Vet6 Poard. Название можно отредактировать позже, если это необходимо, а полезная и протестированная информация может быть добавлена ​​в Wiki.

Прежде всего, это текущая ситуация:
Оба светодиода мигают, но дескриптор устройства USB не удался (VID 0x000 PID 0x0002).
На последовательном порту (115200baud, 8n1) я получаю после каждого сброса: «ЖК -идентификатор: ffff»
Я могу связаться с зондом ST-Link, и я могу прочитать вспышку (я могу прикрепить здесь или к вики, если желать). Я предполагаю, что письмо также было бы возможно.

Теперь хотел бы начать с разработки SW.
Вопрос в том, как?

Я знаю, есть много альтернативных вариантов (официальное ядро ​​STM32, Start Otto Github, Koduino и так далее).
Но, честно говоря, мне очень нравится существующий репо arduino_stm32, и я хотел бы использовать это для моей будущей работы.
Я также знаю, это будет трудный путь. Но я думаю, с небольшими шагами я (мы?) может достичь отличных результатов.

Таким образом, будет ли Arduino_stm32 предоставить основную структуру и функциональность для мрачного примера?
Если кто -то уже попробовал это и имел успех, я буду признателен за короткое описание того, что и как делать.

Для начала я намерен использовать метод загрузки Stlink, так как USB DFU кажется не (пока не?) для работы.
Есть ли рабочий загрузчик для этой платы?

Даниэфф
Ср 12 апреля 2017 г., 17:30
Вариант Discovery_f407 в arduino_stm32 / stm32f4 может на самом деле мигать черным F407Vet на PA6, используя ST Link, так что я думаю, это хорошее начало?

victor_pv
Ср 12 апреля 2017 г., 17:35
Стив, ядро ​​совместим с F4, проблема в том, что совместимая часть была основана на Libmaple несколько лет назад и не была подведена до последних API Arduino API.
У меня есть доска F407, и пример светодиодного мигания работает нормально.
Большинство библиотек Libmaple адаптированы. Вам может потребоваться обновить такие вещи, как Stream и другие. Я бы подумал, что хорошее начало - запустить различие между ядрами F1 и F4, чтобы увидеть, что может быть полностью отсутствует со стороны F4.

Файлы библиотеки SPI были скопированы из F1 некоторое время назад после того, как мы добавили функции DMASEND и DMATRANSFER, но они не должны работать в F4, потому что контроллер DMA отличается, но мы могли бы переписать их для F1 и F4, используя DMATUBES Leaflabs добавлены в Libmaple, потому что этот API работает как на F1, так и на F4.

Это то, что сорвалось с моей головы о ядре F4.

AG123
Ср 12 апреля 2017 г. 18:11
Другое дело, я не слишком уверен, что мы могли бы объединить и распространять эти источники STM32_Duino в рамках набора источников STM32_duino. Но я вижу их в комплекте.глин. с затмением GNU ARM и т. Д

Я обнаружил, что внедрение Danieleff's STM32Generic Duino, основанная на HAL, имеет смысл, в частности, поскольку F4 меньше ограничена ресурсом по сравнению с кодами F1, скомпилированными для F4, может быть повторно скомпилировать, скажем, для F1, F2, F3, F4, F7, L4 и т. Д. (Только что на более ограниченном ресурсе F1 / F0 и т. Д., Двоиры могут оказаться «толстыми» и ест более SRAM - может быть ключевым отличием для головных набросков памяти)
http: // www.STM32duino.com/viewtopic.PHP?F = 42&T = 1966

Некоторые из кодов и инициализаторов, по -видимому, распространены, однако, я думаю, когда мы начинаем глубже копаться в «других периферийных устройствах».глин. USB, SPI, I2C, DMA и т. Д., Вещи могут начать расходиться, но я думаю, что у ST они обслуживают в HAL

В некотором смысле в STM32DUINO мы создаем «пользовательский HAL», а эскизы Arduino подключаются через API STM32DUINO ARDUINO / MAPLE

Или, возможно, мы должны, в конце концов, есть альтернативы

Пито
Ср 12 апреля 2017 г. 18:56
Я взял свой черный 407Zet6, установил F4Discovery в Arduino IDE, и он собрал Blink с двумя светодиодами на PF9 и PF10 Fine.
Мой jlink подключен к заголовку JTAG 20PIN, JFLASH вспыхнул (SWD) .bin ok (от 0x08000000).
И это мигает с 2 светодиодами ОК.
Добавлен сериал.println () (uart1 на Pins Pa9, Pa10), OK. Hello World from F407! Hello World from F407! Hello World from F407!

AG123
Ср 12 апреля 2017 г., 19:33
О, что эталон Whetstone должен быть аппаратным эталоном FPU, 16 двойной точкой MFLOPS! Вы установили Float Abi в качестве жестких инструкций FP, FPV4-SP-D16? : D

Пито
Ср 12 апреля 2017 г., 19:41
Я ничего не сделал, просто нажал кнопку :)
Вот этот:
Compile.jpg
Компиляция.JPG (8.05 киб) просмотрено 5743 раз

AG123
Ср 12 апреля 2017 г., 19:43
я понимаю : D
ОК, я выкопал тесту теста
http: // www.STM32duino.com/viewtopic.PHP?t = 76

Некоторые из старых записей казались: Кенджуцу писал:Просто ради интереса, вот некоторые Уэтстоун контрольные результаты для моего Nucleo F411RE и Синяя таблетка доска:
// mbed online - F411RE // Loops: 1000, Iterations: 1, Duration: 25 sec. // C Converted Double Precision Whetstones: 4.0 MIPS // gcc4mbed - F411RE // Loops: 1000, Iterations: 1, Duration: 17 sec. // C Converted Double Precision Whetstones: 5.9 MIPS // gcc4mbed - F103RE (Blue Pill) // Loops: 1000, Iterations: 1, Duration: 34 sec. // C Converted Double Precision Whetstones: 2.9 MIPS // STM32duino Blue Pill // Loops: 1000 Iterations: 1 Duration: 19838 millisec. // C Converted Double Precision Whetstones: 5.04 MIPS

Пито
Ср 12 апреля 2017 г. 20:11
И для больших и быстрых процессоров здесь большая математика :) : Black F407 Math Test by Pito 4/2017 x= 3444444444445555555555666666.6666677777777788888889 y= -56666666666677777777777788.888888888111111111112222 z=x+y= 3387777777778877777777888877.7777788896666677777767 3.387777777778878e+27 elapsed: 20 us z=x-y= 3501111111112233333333444455.5555566658888900000011 3.501111111112233e+27 elapsed: 15 us z=x*y= -1.9518518518528641975309276666666672819753092717704E+53 -1.951851851852864e+53 elapsed: 46 us z=x/y= -60.784313725497885428683223790246606967299291272272 -6.078431372549789e+01 elapsed: 162 us z=cos(0.7)= 0.76484218728448842625585999019186490926821055037373 7.648421872844884e-01 elapsed: 3843 us

Стивестронг
Ср 12 апреля 2017 г. 8:24 вечера
Ребята, пожалуйста, моей намерением была стартап, а не эталон.
Я даже не поднялся, чтобы пробить мгнуть...
Этот поток должен прояснить проблемы запуска, а не экспоненциальная часть значения плавающей запятой.
Я постараюсь установить доску Arduino на единственную доступную доску F4, а затем посмотрю, работает ли она на черном F4.

Пито
Ср 12 апреля 2017 г. 8:26 вечера
Стив, он должен работать так же на вете6.. Забудьте USB.
Ваши светодиоды в PA6, PA7.
Серийные булавки в PA9, PA10.
Самая большая проблема - найти .бин.
Стереть чип и загрузить мигание .Bin от 0x08000000..
Отсоедините свой флешер (Stlink?) Изменить: мягкое разъединение
Перезагрузить.
Это должно работать.

Стивестронг
Ср 12 апреля 2017 г., 21:03
Пито, спасибо, я подтверждаю: Blinky on Pa6/7 и сериал (USART1 на PA9/10) действительно работают, когда доска установлена ​​на дискотеку F4 в Arduino.
И... Мне даже не нужно отключать зонд Stlink, чтобы работать ;)

Далее я настрою новый вариант black_vet6 и сделаю некоторую настройку.

Пито
Ср 12 апреля 2017 г., 21:47
Это давно не хватало в F4
ViewTopic.PHP?F = 39&t = 1001&P = 12094&hilit = pwm+pito#p12046
Не уверен, что это уже добавлено..

Почему мы установили discovery_f407.build.core=maplediscovery_f407.build.extra_flags=-DMCU_STM32F406VG

victor_pv
Чт 13 апреля 2017 г. 3:09
Стивестронг написал:Ребята, пожалуйста, моей намерением была стартап, а не эталон.
Я даже не поднялся, чтобы пробить мгнуть...
Этот поток должен прояснить проблемы запуска, а не экспоненциальная часть значения плавающей запятой.
Я постараюсь установить доску Arduino на единственную доступную доску F4, а затем посмотрю, работает ли она на черном F4.

AG123
Чт 13 апреля 2017 г. 6:56 утра
нет необходимости в загрузке
1) Установите Boot0
2) *Просто нажмите сброс, не подойдет, вытащите USB -кабель и снова подключитесь * dmesg [ 5955.084223] usb 3-4: new full-speed USB device number 9 using xhci_hcd [ 5955.248859] usb 3-4: New USB device found, idVendor=0483, idProduct=df11 [ 5955.248861] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5955.248862] usb 3-4: Product: STM32 BOOTLOADER [ 5955.248863] usb 3-4: Manufacturer: STMicroelectronics [ 5955.248864] usb 3-4: SerialNumber: 338334803335

Стивестронг
Чт 13 апреля 2017 г., 7:28
Я могу подтвердить, boot0 = "1" и сброс поместит устройство в режим загрузчика, как и ожидалось.
На машине Win10 X64 обнаружено новое USB -устройство, сначала как «загрузчик STM32», а через некоторое время оно становится «устройством STM в режиме DFU».

Тем не менее, я думаю, что этот режим не практичен, так как пользователь должен изменить перемычку Boot0 по каждой загрузке.

Stlink более практичен, мне даже не нужно удалять провода подключения после загрузки нового программного обеспечения. Зонд Stlink переполняет устройство на лету (пробое с утилитой STM32 ST-Link).

Пито
Чт 13 апреля 2017 г., 7:46 утра
Мне пришлось установить Libusbk (Zadig), чтобы увидеть устройство (Win7 64b) с DFU-UTIL 0.9.
Я должен отключить и повторно встроить плагин USB, чтобы снова вспыхивать. Он мигает около 5 кб/с.
Я должен переустановить джампер для загрузки, чтобы запустить код. Может быть, есть команда DFU для запуска кода.
Он работает здесь, на Black Zet6, но кажется, что ST-Link/J-Link-лучшая альтернатива.

AG123
Чт 13 апреля 2017 г. 8:04
Я бы подумал для пользователей без отдельного ключа ST-Link, DFU, возможно, является хорошей заменой, так как для Boot0 простым способом является подключение двухстороннего (3 разъема) переключателя на месте i.эн. Выберите 0 или 1

Я думаю, что акции dfu-util v0.7 работает так же хорошо, просто что я собрал свой DFU-UTIL из Source
http: // dfu-util.Sourceforge.сеть/

И я подумал, что мы могли бы перенести загрузчик, который упростит установить эскиз. но это было бы менее «срочно», так как существует решение

Пито
Чт 13 апреля 2017 г. 8:12
Я думаю, что есть задачи с более высоким приоритетом - например, SPI и другие.. Я попытался собрать эскиз с SDFAT без успеха (ошибки компиляции SPI).

Стивестронг
Чт 13 апреля 2017 г. 8:15 утра
Пито написал:Я думаю, что есть задачи с более высоким приоритетом - например, SPI и другие.. Я попытался собрать эскиз с SDFAT без успеха (ошибки компиляции SPI).

Пито
Чт 13 апреля 2017 г. 8:22
Кстати, SDFAT поддерживает SDIO с Teensy..

AG123
Чт 13 апреля 2017 г. 8:35 утра
В ранней ветке о черном F407 {v, z} et6
http: // www.STM32duino.com/viewtopic.PHP?f = 3&T = 1941

Отмечено, что вспышка SPI на борту, возможно, может быть подключена к порту SPI1, предполагается, что SPI -вспышка будет исправлена ​​на PB3 SPI1_SCK, PB4 SPI1_MISO, PB5 SPI1_MOSI. Тем не менее, SPI1 и SPI3 делят этот порт, следовательно, мы могли бы настроить SPI3 на PB3-PB5, если действительно вспышка SPI жесткая к этому порту. SPI Flash CS тянут до 3.3V, что не может «отключить» это в программном обеспечении

Как отмечалось в ранней нити схемы: Для Vet6 светодиоды находятся на PA6 и PA7
http: // wiki.STM32duino.com/images/5/5c/ ... Эматический.PDF
В то время как на Zet6 светодиоды находятся на PF9 и PF10
http: // wiki.STM32duino.com/images/4/4f/ ... _SCH-1.PDF
Затем нам нужно найти другое место для настройки SPI1 на

Я думаю, что F4 обладает аппаратной поддержкой для SDIO, но мы могли бы оставить это как «улучшение», как мы могли бы буквально попытаться использовать аппаратный SDIO для этого, затем передачи могут достичь них >Скорость 10 Мбит / с, я думаю, что SDIO требуется больше контактов, чем 4 для SPI

Пито
Чт 13 апреля 2017 г. 8:56 утра
Первый шаг - составить Spix.. Он еще не компилируется. Тогда мы можем играть с продирками..
На Zet6 Flash /CS вытягивается через 10K до VCC и управляется PB14. Имейте в виду /CS обычно активно низко с устройствами памяти. Проводка /CS High отключит чип.
Вы можете подключить много устройств в SPI, при условии, что их /cselects разные.

Даниэфф
Чт 13 апреля 2017 г. 8:59 утра
AG123 написал: Затем нам нужно найти другое место для настройки SPI1 на

AG123
Чт 13 апреля 2017 г. 9:17 утра
Пито написал:Первый шаг - составить Spix.. Он еще не компилируется. Тогда мы можем играть с продирками..
На Zet6 Flash /CS вытягивается через 10K до VCC и управляется PB14. Имейте в виду /CS обычно активно низко с устройствами памяти. Проводка /CS High отключит чип.
Вы можете подключить много устройств в SPI, при условии, что их /cselects разные.

Пито
Чт 13 апреля 2017 г. 9:26 утра
Вот схема VET6 - PB0 управляет /cs (сигнал F_CS) вспышки, пока она тянут высотой 10 тыс.
http: // www.STM32duino.com/viewtopic.PHP ... 391#P17878

AG123
Чт 13 апреля 2017 г. 9:34
Теперь эта плата сделает хорошие часы, и она может менять фоновое изображение каждый час, если бы вам понравилось :ржу не могу:

ZMEMW16
Чт 13 апреля 2017 г. 10:41
Flash /CS - они переименовали сигнал, F_CS и его на Zet PB14, Vet PB0

Стивен

Стивестронг
Чт 13 апреля 2017 г. 18:10
Тем временем я сделал всестороннюю очистку проекта F4.

Как я думаю : mrgreen: ), дальнейшие разработки программного обеспечения могут быть продолжены в эта другая ветка от Виктора.

Промежуточные результаты могут быть по -прежнему опубликованы здесь, если это необходимо.

ZMEMW16
Чт 13 апреля 2017 г. 20:31
без сомнения в том месте :) Заменная тема является специфичной LIB_MAPLE?

Это экспортируемые файлы и отчеты моего srp4.МОК для черного STM407VE

Я считаю, что это довольно полное и соответствует схеме, только проблема в том, что я не знаю, как справиться с PB3.
Это TDO, а также то, что они называют SPI1_SCK (на самом деле Alternate SPI3)
I2C2 доступен.

Стивен

Стивестронг
Чт 13 апреля 2017 г. 20:48
Стивен, спасибо, но, честно говоря, я не знаю, что делать с этим файлом МОК.
Это также хороший документ PDF, но я все еще не понимаю, как это должно легко наша жизнь в этой структуре F4 на основе Libmaple.
Как я уже сказал, я уже переработал некоторые файлы, отображение PIN также немного разъясняется.
Может быть, в более позднем этапе я пойму, почему это будет использоваться.

AG123
Чт 13 апреля 2017 г., 21:51
Привет, Стивен,

Спасибо за то, что опубликовали это, PDF действительно является отображением PIN -кода?
В Сент -Корне есть небольшая дискуссия http: // www.STM32duino.com/viewtopic.PHP ... 256#P26256
о конфликтах PIN для PB3-PB5
и Даниэффел опубликовал свою точку зрения
http: // www.STM32duino.com/viewtopic.PHP ... = 10#p26147

в схеме
http: // wiki.STM32duino.com/images/5/5c/ ... Эматический.PDF
PB3-PB5 SPI1_SCK, SPI1_MISO, SPI1_MOSI разделяется на бортовой вспышке SPI и разъем NRF24 (следовательно, заголовок SPI1 находится в разъеме NRF24)
PB6, PB7 I2C1_CLK и I2C1_SDA также направляются в разъем NRF24 на NRF_CE или NRF_CS (следовательно, I2C1 можно найти и в разъеме NRF24) также) также можно найти в разъеме NRF24)

Если мы посмотрим на спецификации NRF24 NRF_CS - SPI Chip Select, а nrf_ce - это чип, активируя режим RX или TX
https: // www.Nordicsemi.com/chi/content/ ... n_v2_0.PDF
Следовательно, PB6, PB7 должен быть булавками GPIO, если на самом деле используется NRF24

Мы могли бы выбрать другие наборы булавок для i2c (e.глин. Pb10 i2c2_scl, bp11 i2c2_sda) и еще один для uart (e.глин. PA8 USART1_CK / PA9 USART1_TX, PA10_USART_RX), так как на STM32F407 {V, Z} E_BLACK есть большое количество пинов

А для аналоговых контактов мы могли бы просто выбрать PA1-PA6 в качестве их аналогов Arduino

ZMEMW16
Чт 13 апреля 2017 г. 22:10
@: AG123
Вам нужно использовать/просмотреть файл Cubemx IOC.

Не существует проблем с обменом часами и линиями данных на SPI, интерфейсы. Я почти уверен, что вы взяли/прочитали этикетки SPI1 как SPI3, то это имеет смысл. Даже штифта CPU перечисляет SPI3 :) На самом деле, если бы они пометили I2C2 как i2C1, это все равно было бы просто интерфейс I2C.

Я в замешательстве с PB3, как это TDO & Также SCK, это также штифт JTAG. Возможно, что запуск устанавливает отладон, так как SWD выпускает все контакты отладки Bar SWD_CLK & Swd_dat.

Кроме того. Мне пришлось играть с Cubemx и сделать довольно много, собирая FSMC, в основном Настройка альтернатив. Для меня это предполагает, что макет в значительной степени, как и первоначально разработан.
я
Эти альтернативы должны быть в качестве варианта платы, либо в эскизе, либо в ядре, я видел использование альтернатив в посте, используя Lib Maple.

Стивен

Стивестронг
Чт 13 апреля 2017 г., 22:23
Новый черный вариант F407VET6, добавленный к платам F4 в моем Repo Black F4 Вариант.
Также отправил пиар для Роджера.

AG123
Чт 13 апреля 2017 г., 22:31
Спасибо, Стивен,
Что касается PB3
Хотя я не слишком знаком с JTAG, PB3 - это jtdo / traceswo / spi3_sck / i2s3_ck / tim2_ch2 / spi1_sck / eventerout
Если я правильно понимаю, SWO в основном используется с SWD для отправки сообщений на хост, в значительной степени как серийная консоль (я.эн. печатные заявления)
В то время как SWD DEBUG в основном использует 3 PINS PA13 SWDIO, PA14 SWCLK и заземляющий штифт

Если бы мы могли обойтись с Debug SWD всего с 3 булавками, это означает, что у нас не было бы конфликта с PB3
И если необходимо для различных обстоятельств, мы, вероятно, могли бы использовать USB-сериал или UART для отправки консольных сообщений (печатных операторов) обратно на хост

согласован с заданиями SPI3 в PB3-PB5 (I.эн. Порт SPI по умолчанию для Arduino), а также казалось, что он может помочь уменьшить некоторые конфликты, в противном случае альтернативой MAP SPI является использование PA5-PA7 в качестве SPI1, и мы могли бы использовать это в качестве порта SPI по умолчанию для Arduin 'D перекрывайте некоторые из аналоговых контактов (если мы определим PA1-PA6 как аналоговые контакты Arduino)

Палмерр
Пт 14 апреля 2017 г. 8:58 утра
Всем привет,

Я делаю некоторую работу, чтобы увидеть, сможем ли мы гармонизировать черные платы F4Vet6 во всех потоках кода. У нас есть новый филиал STM32Duino F4, у Даниэффеффа есть код GenericStm32, и Avik's Koduino станет сильным.

Я только что обновил свою репо кучей обновленной информации для Black F4Vet6 (STM32Duino), включая обоснование распределения булавок (обсуждается с Даниэлем и другими) и некоторые сопоставления AF, которые, кажется, имеют смысл. Обоснование находится в электронной таблице Excel в папке /документы.

Единственное изменение в схеме заключается в том, что лучше отобразить NRF/Flash SPI с SPI3 вместо SPI1, чтобы SPI1 был доступен с полным набором NSS Pinse для SPI-DMA.

Репо https: // github.com/palmerr23/black-f407vet6-cube и построен в отношении базы кода F4 STM32DUINO "Cube" F4.

Рад слышать, есть ли доступно картирование макета / AF / AF, но также стремится к нам связать что -нибудь как можно скорее для этой платы.

Ричард

Стивестронг
Пт 14 апреля 2017 г. 9:44
Я сделал следующий вывод для черного F4: // Pins reserved for the on-board hardware #define FLASH_CS_PIN PB0 #define FLASH_CLK_PIN BOARD_SPI3_SCK_PIN // PB3 #define FLASH_DO_PIN BOARD_SPI3_MISO_PIN // PB4 #define FLASH_DI_PIN BOARD_SPI3_MOSI_PIN // PB5 #define NRF24_CLK_PIN BOARD_SPI3_SCK_PIN // PB3 #define NRF24_DO_PIN BOARD_SPI3_MISO_PIN // PB4 #define NRF24_DI_PIN BOARD_SPI3_MOSI_PIN // PB5 #define NRF24_CE_PIN PB6 #define NRF24_CS_PIN PB7 #define NRF24_IRQ_PIN PB8 // SD card, SDIO mode #define SD_DAT0 BOARD_SDIO_D0 // PC8 #define SD_DAT1 BOARD_SDIO_D1 // PC9 #define SD_DAT2 BOARD_SDIO_D2 // PC10 #define SD_DAT3 BOARD_SDIO_D3 // PC11 #define SD_CLK BOARD_SDIO_CK // PC12 #define SD_CMD BOARD_SDIO_CMD // PD2 // SD card, SPI mode, only usable with software SPI #define SD_DI BOARD_SDIO_CMD // PD2 #define SD_DO BOARD_SDIO_D0 // PC8 #define SD_CS BOARD_SDIO_D3 // PC11 #define SD_SCLK BOARD_SDIO_CK // PC12

Палмерр
Сб 15 апреля 2017 г. 1:17
Стив,

Это совпадает с моим чтением правильных разбив.

Мне придется доверять ваше суждение о распределении SPI-SDIO, так как это за пределами моего опыта!

Я сегодня работаю над диаграммой распиновки, как запрошено ранее в потоке.

Ричард

vitor_boss
Чт, 01 июня 2017 11:48
Этой плате не нужен загрузчик? Я не нашел никакого последовательного ответа.

Какой репо мне следует использовать для этой платы? Я только что получил это.

ZMEMW16
Пт, 02 июня 2017 г. 12:20 утра
Стив,
Аппаратное обеспечение не отображается, как вы, возможно, ожидаете, Cubemx позволяет повторно отображать каждый интерфейс и где / где / разыскивается, если фактически вывод способен выполнять функцию E.глин. мисо или i2c SDA.
Вы можете изменить «интерфейс SPI1», чтобы фактически использовать контакты SPI3, I2C1 также перемещается, Cubemx генерирует код, так как ему говорят.
Вам необходимо увидеть различие, проведенное между ЦП -данных.
Самый простой способ увидеть отображение - использовать Cubemx и файл IOC для варианта. на самом деле вот как изучил кубик, хотя и слегка.
Я работаю над тем, что я использую метал, используя HAL и компиляции для себя, долго, если я возьму его медленную кривую, так что не так круто, как бы я не был на пенсии :-)
Извините, это плохо объяснено.

Стивен

Chismicro
Пт, 02 июня 2017 г., 4:06 утра
>Этой плате не нужен загрузчик? Я не нашел никакого последовательного ответа.
У моей платы не было загрузчика. Я использовал его с ST-Link-V2

>Какой репо мне следует использовать для этой платы? Я только что получил это.
Я использую STM32Generic и сделал примеры для этого.

AG123
Пт, 02 июня 2017 г., 7:30 утра
vitor_boss написал:Этой плате не нужен загрузчик? Я не нашел никакого последовательного ответа.

Какой репо мне следует использовать для этой платы? Я только что получил это.

vitor_boss
Пт, 02 июня 2017 г. 13:39
AG123 написал:...
Филиал разработки для Libmaple Core в настоящее время находится в репозитории Стива в филиале «Black F4»
https: // github.com/stevstrong/arduino_s ... F4_variant

другие
http: // www.STM32duino.com/viewtopic.PHP?F = 42&T = 1966

и ядро ​​от самого STM
http: // www.STM32duino.com/viewtopic.PHP?F = 48&t = 2098

Palmerr сделал ядро ​​STM для этой доски
https: // github.com/palmerr23/black-f407vet6-cube

AG123
Пт, 02 июня 2017 г. 13:57
Я работаю на более старой копии Libmaple F4 Dev, мне нужно «обновить» мою копию, но это сломает некоторые наброски, с которыми я вмешиваюсь в настоящее время. Следовательно, я бы высказался от Стива, чтобы ответить на ошибки. Я не слишком уверен в ошибках, не за исключением компиляции и пробую это.

Что касается ядра STM, попробуйте версию Palmerr, то это как бы адаптировано для Black Board STM32F407

STM32Generic, соответственно, получил немало разработчиков, сделанных для него недавно, E.глин. Некоторые материалы SDIO тестируются,
А Пито в последнее время достиг колоссальных 14 МБ за секунду на Сэмми класс 10. стоит проверить
http: // www.STM32duino.com/viewtopic.PHP ... 058#P28977

Стивестронг
Пт, 02 июня 2017 г. 15:16
Витор, спасибо, что нашли эту ошибку.
Пожалуйста, замените эту строку 6 в варианте.h by: #define digitalPinToBitMask(P) ( BIT(P&0x0F) )

vitor_boss
Пт, 02 июня 2017 г. 15:46
Стивестронг написал:Витор, спасибо, что нашли эту ошибку.
Пожалуйста, замените эту строку 6 в варианте.h by: #define digitalPinToBitMask(P) ( BIT(P&0x0F) )

Стивестронг
Пт, 02 июня 2017 г., 15:50
Извините, но я не могу следовать этим ошибкам.
Я только что проверил ветвь black_f4 и собрал эскиз Blink, без какой -либо ошибки/предупреждения.
Какой IDE вы используете?

Стивестронг
Пт, 02 июня 2017 г., 17:49
Для тех, кто хочет попробовать репозиторий Libmaple F4, я обновил первый порт в этой теме с новой информацией, пожалуйста, проверьте его.

vitor_boss
Пт, 02 июня 2017 г., 8:00 вечера
Стивестронг написал:Извините, но я не могу следовать этим ошибкам.
Я только что проверил ветвь black_f4 и собрал эскиз Blink, без какой -либо ошибки/предупреждения.
Какой IDE вы используете?

Стивестронг
Пт, 02 июня 2017 г., 8:42 вечера
Я обновил первое сообщение с информацией о загрузке.

Vitor, если у вас все еще есть проблемы, пожалуйста, опубликуйте здесь вывод сборки Arduino.
Какой набросок вы пытаетесь построить? Как я уже говорил, это хорошо для меня строится (на Win10 64B).

vitor_boss
Пт, 02 июня 2017 г., 21:07
Стивестронг написал:Я обновил первое сообщение с информацией о загрузке.

Vitor, если у вас все еще есть проблемы, пожалуйста, опубликуйте здесь вывод сборки Arduino.
Какой набросок вы пытаетесь построить? Как я уже говорил, это хорошо для меня строится (на Win10 64B).

Стивестронг
Пт, 02 июня 2017 г., 21:10
В Arduino IDE вы должны выбрать инструменты->Доски->«Общая серия STM32F407V», а после этого инструменты->Конфигурация USB->USB Serial (CDC), если вы хотите получить сериал над USB.

Стивестронг
Пт, 02 июня 2017 г., 21:15
Вы, конечно, не используете правильный программный пакет (филиал), потому что материал Hardwarespi вообще не должен существовать в моей последней версии...
Проверьте здесь: https: // github.com/stevstrong/arduino_s ... E/Libmaple
Пожалуйста, сделайте чистую установку (скачать & Выдержка) упомянутой ветви.

vitor_boss
Пт, 02 июня 2017 г., 21:27
Мой плохой, я сделал грязную установку, но я скачал из вашей главной филиала ранее

Последний вопрос: какая библиотека используется на платформе?

РЕДАКТИРОВАТЬ: Blink Sketch использует 11904 байт оперативной памяти, это правильно? Maple Mini использует 8K

vitor_boss
SAT 03 июня 2017 12:49
Использование последовательного платы и общего USB -серийного преобразователя с приложением «Demo» Flash Loader возможно, чтобы написать двоичные файлы на процессоре

vitor_boss
Вт
Стивестронг написал:Вы, конечно, не используете правильный программный пакет (филиал), потому что материал Hardwarespi вообще не должен существовать в моей последней версии...
Проверьте здесь: https: // github.com/stevstrong/arduino_s ... E/Libmaple
Пожалуйста, сделайте чистую установку (скачать & Выдержка) упомянутой ветви.

Стивестронг
Вторник 06 июня 2017 г. 9:35 вечера
В папке библиотеки уже есть работающая библиотека SPI DMA, способная SPI. https: // github.com/stevstrong/arduino_s ... ES/SPI/SRC

Акронис
Пт 16 июня 2017 г. 13:10
Привет.

IDE 1.8.2, у вас есть библиотека, установленная Stevestrong, имеет библиотеки для 16 -битного параллельного дисплея и https: // github.com/stevstrong/adafruit_ ... 6bit_stm32 https: // github.com/stevstrong/arduino_s ... F4_variant . Пример Graphisctest. ошибка

In file included from C:\Users\VIC\ Documents\Arduino\\libraries Adafruit_TFTLCD_16bit_STM32-master\examples\graphicstest\graphicstest.ino:7:0: C:\Users\VIC\Documents\Arduino\libraries\Adafruit_TFTLCD_16bit_STM32-master\src/Adafruit_TFTLCD_16bit_STM32.h in the void writeCommand function '(uint16_t)': C:\Users\VIC\Documents\Arduino\libraries\Adafruit_TFTLCD_16bit_STM32-master\src/Adafruit_TFTLCD_16bit_STM32.h:64:22: error: 'fsmcCommand' was not declared in this area #define lcdCommand (*fsmcCommand) ^ C:\Users\Виктор\Documents\Arduino\libraries\Adafruit_TFTLCD_16bit_STM32-master\src/Adafruit_TFTLCD_16bit_STM32.h:68:27 note: in expansion of macro 'lcdCommand' #define writeCmd(d) { lcdCommand = d; } //(l&0x00FF); } ^ C:\Users\VIC\Documents\Arduino\libraries\Adafruit_TFTLCD_16bit_STM32-master\src/Adafruit_TFTLCD_16bit_STM32.h:200:2 note: in expansion of macro writeCmd" writeCmd ();

Стивестронг
Пт 16 июня 2017 г. 13:14
Пожалуйста, проверьте самый первый пост этого потока, написано, чтобы использовать другую филиал, generic_f4, который содержит последние разработки, также поддержку FSMC, которую филиал Black_f4 не включает.

Акронис
Пт 16 июня 2017 г. 13:29
набор . ошибка
C: \ users \ 51fb ~ 1 \ appdata \ local \ temp \ arduino_modified_sketch_882808 \ graphicstest.INO: 1: 28: фатальная ошибка: Libmaple/FCSM.H: нет такого файла или каталога

#включать <Libmaple/FCSM.час>

Стивестронг
Пт 16 июня 2017 г. 13:38
Вам не нужно дополнительно включать заголовок FSMC в эскиз, потому что он выполняется автоматически в «ADAFRIT_TFTLCD_16BIT_STM32.Файл заголовка H ", строка 56.

И, пожалуйста, сделайте чистую извлечение загруженных ZIP -файлов (как Adafruit 16 -битный параллельный Lib, и Generic_f4 Branch), удалите любые существующие предыдущие файлы/папки.

Акронис
Пт 16 июня 2017 г. 13:47
Я сделал это .
Библиотека только сейчас установлена.
#включать <Libmaple/FSMC.час> больше не предписано

#включать <Libmaple/FCSM.час> ???? Истинное имя ???
FSMC.час ???

Стивестронг
Пт 16 июня 2017 г. 14:41
Извините, но все еще не ясно, что вы собираетесь делать с FSMC.H или FCSM.час

Как я уже сказал, вам не нужно включать какой -либо дополнительный файл заголовка, графический тест должен исходить из коробки с активированным FSMC.
Если вы хотите отключить его, прокомментируйте Строка 15 файла заголовка Graphics LIB.

Акронис
Пт 16 июня 2017 г. 15:07
Большой !
Это сработало !
Супер !
Спасибо !

Акронис
Пт 16 июня 2017 г. 15:17
Расскажите еще больше, пожалуйста, где загрузить рабочий пример для SD-карты Generic_f4 Branch Of My Repo

Стивестронг
Пт 16 июня 2017 г. 15:30
Рад, что это сработало.

Примеры SDFAT доступны в оригинальном справочнике SDFAT Source Bill Greiman на GitHub, пожалуйста, найдите его и загрузите, затем поместите его в папку библиотеки рабочего каталога Arduino.

В настоящее время только интерфейс SPI работает с SD-картами, вам нужно выбрать один порт SPI и подключить к нему дополнительный модуль SD-карты.
Для этого, пожалуйста, проверьте справку SDFAT, она предоставляет информацию, как использовать ее с STM32.

Использование слота SD-карты в борту SD-карты возможно только при использовании интерфейса SDIO.
Который в настоящее время находится на этапе оценки, в основном работает очень стабильно, но мне нужно сделать больше тестов, чтобы убедиться, что он работает при любых обстоятельствах.

Акронис
Пт 16 июня 2017 г. 15:33
Мне интересно, это набор SD-слот SD-карты.
Мы ожидаем от вас информации о тестировании

Акронис
Пт 16 июня 2017 г. 15:35
И скажите мне, какую библиотеку лучше использовать для работы с часами (RTC) этой платой ?

Стивестронг
Пт 16 июня 2017 г. 15:37
Акронис написал:И скажите мне, какую библиотеку лучше использовать для работы с часами (RTC) этой платой ?

Стивестронг
Солнце 18 июня 2017 г. 18:36
Общий репозиторий F4 был обновлен с помощью файлов, связанных с SDIO, см http: // www.STM32duino.com/viewtopic.PHP?F = 39&t = 2215.

Акронис
Вт, 04 июля 2017 г. 8:17 утра
Привет.

Ваша библиотека на STM32F407VET6 замечательно ! Теперь я работаю, отображается и SD -карта (SDIO)!!!

Но я не могу иметь дело с внутренним RTC для этой доски.
Пожалуйста, приведите простой рабочий пример для этой доски.

Мне действительно нужно время и дата для моего проекта.

Стивестронг
Втюл 04 июля 2017 г. 8:29 утра
Я еще не имел дело с RTC, но это может быть моей следующей целью, так как у черной платы F4 есть батарея ячейки на борту.

Вы можете проверить эту библиотеку уже в репозитории:
https: // github.com/rogerclarkmelbourne/ ... es/rtclock

Некоторые примеры можно найти здесь:
https: // github.com/rogerclarkmelbourne/ ... К/примеры

Акронис
Втюж 04 июля 2017 г. 8:44
Большой !
Я буду ждать ваших новостей о Black F4 RTC Board на борту.

Библиотека уже в репозитории, и я постараюсь проверить.

Стивестронг
Вт
Тем временем я удалил ветвь generic_f4, чтобы в главной ветви были последние разработки. Я тоже обновил первый пост.

vitor_boss
Чт, 6 июля 2017 г., 5:17 утра
Чтобы FPU нуждается в нескольких вещах. Вставьте это на Start_c.в #if (__ARM_PCS==1 || __ARM_PCS_VFP==1) //using FP on code? #if defined (__FP_FAST_FMAF) //mfloat-abi=hard or mfloat-abi=softfp #warning enabling harware fpu __asm volatile ( " ldr.w r0, =0xE000ED88 \n" /* The FPU enable bits are in the CPACR. */ " ldr r1, [r0] \n" /* read CAPCR */ " orr r1, r1, #( 0xf << 20 )\n" /* Set bits 20-23 to enable CP10 and CP11 coprocessors */ " str r1, [r0] \n" /* Write back the modified value to the CPACR */ " dsb \n" /* wait for store to complete */ " isb" /* reset pipeline now the FPU is enabled */ ); #else #warning software or no floating point #endif #endif

vitor_boss
Чт, 6 июля 2017 г., 5:42
В Arduino Word (H, L) отсутствует макрос (H, L);
Просто вставьте эти линии на Wirish_math.час на линии 36 #include

Акронис
Чт, 6 июля 2017 г., 9:03
Привет.
Можете ли вы показать пример для RTC в вашей библиотеке

Если я подключу библиотеку #include <Rtclock.час> ошибка
Содействие отсутствует в библиотеках C: \ users \ admin \ Documents \ arduino \ ardware \ arduino_stm32-master \ stm32f4 \ libraries \ rtclock

vitor_boss
Пт, 07 июля 2017 г. 1:36 утра
https: // github.com/marzogh/spiflash
Эта LIB работает на STM32GENERIERIER, с твоей, мне не повезло.

РЕДАКТИРОВАТЬ: EEPROM по умолчанию - W25Q16, я должен заменить мой, потому что был возвращен неправильным числам, теперь W25Q64.

Стивестронг
Пн 10 июля 2017 г., 17:15
Первая публикация обновлена ​​с помощью следующей информации:

Редактировать - 2017.07.10
RTC Lib переработана, чтобы быть независимыми от других библиотек времени. Протестировано на доске BALCK F4V. Включает пример наброска для установки времени RTC.

Акронис
Вт 11 июля 2017 г. 6:29
Я добавил к концу библиотеки файлов.Свойства String Saveninger = и ошибка отсутствует «Содействие» из библиотеки исчезла. Библиотека подключена нормально.
Можно ли добавить в вашу библиотеку ?

Акронис
Вт 11 июля 2017 г. 7:14 утра
Rtclock rtc;
time_t tt;
tm_t tm;
int HH; // час


RTC.getTime (TM);
HH = TM.час();
Ошибка: выражение не может быть использовано в качестве функции

Неправильно сделал.
HH = TM.час;

Так что правильно и работает !
Спасибо !

Акронис
Вт 11 июля 2017 г. 8:26 утра
Скажите, пожалуйста, будь то в библиотеке, автобус IIS ?

Стивестронг
Вт 11 июля 2017 г. 8:31
[Акронис - Вторник 11 июля 2017 г. 7:14 утра] - RTC.getTime (TM);
HH = TM.час();
Таким образом, вы получаете временные элементы в виде переменных в структуре TM.
В качестве альтернативы вы можете использовать: rtc.getTime(tm); hh = tm.hour; // or hh = rtc.hour(); // pay attention to the object "rtc" instead structure "tm"

Акронис
Вт 11 июля 2017 г. 8:34 утра
Хорошо !

Большое спасибо ! Мой проект прекрасно работает благодаря вам !!!
Остается только для того, чтобы дождаться реализации i2c

Акронис
Ср. 12 июля 2017 г. 9:20 утра
Привет.
Подсказка, пожалуйста, могу я использовать Freertos 9.0.0 с вашей библиотекой ?

Стивестронг
Ср. 12 июля 2017 г. 9:28
[Акронис - Ср. 12 июля 2017 г. 9:20] - Привет.
Подсказка, пожалуйста, могу я использовать Freertos 9.0.0 с вашей библиотекой ?
Я не знаю, я никогда не использовал и не проверял это.
Вы можете попробовать, но я не могу оказать вам поддержку в этом случае.

Акронис
Ср. 12 июля 2017 г. 9:30
Хорошо.
Я попробую написать здесь.

Акронис
Ср. 19 июля 2017 г. 7:10
Привет, Стивестронг !

Мне нужно подключить модуль считывателя RFID RDM6300-UART с вашей библиотекой для STM32F407 Black.
Как вы можете попытаться сделать ?

https: // ru.aliexpress.com/item/1-set-12 ... 2.4.2.Иметь

Стивестронг
Ср. 19 июля 2017 г. 8:21
Мы можем обсудить об этом, если вы найдете библиотеку для этого модуля.
Если модуль использует SPI, он должен закончиться из коробки.

Я только что понял, что он использует нормальный последовательный RX/TX. Так что это должно работать с одним из серийных интерфейсов.
https: // github.com/garfield38/rdm6300/t ... ER/Arduino

Акронис
Ср. 19 июля 2017 г. 8:40
Эта библиотека использует #include <Softwareserial.час>.
Softwareserial работает только на STM32F103.
STM32F407VET6 на программном обеспечении дает ошибку.

Стивестронг
Ср. 19 июля 2017 г. 8:44
Просто прокомментируйте строку "//#включить <Softwareserial.час>".
Используйте Serial1, 2 или 3 в коде.
Вы можете вставить: #define SoftwareSerial Serial1 // or Serial2, or Serial3

Акронис
Ср. 19 июля 2017 г. 9:04
Где читать, какие булавки соответствуют серийному 1 ?

Стивестронг
Ср. 19 июля 2017 г. 9:07
Проверьте вики: http: // wiki.STM32duino.com/index.PHP?title = STM32F407

Акронис
Ср. 19 июля 2017 г. 9:12
PB7 - RX1
PB6 - TX1

Хорошо ?

Стивестронг
Ср. 19 июля 2017 г. 9:23
Пожалуйста, проверьте здесь булавки USART: https: // github.com/rogerclarkmelbourne/ ... 407 В.H#162

Акронис
Чт 20 июля 2017 г., 4:58 утра
Serial1 - RX PIN PA10

Большое спасибо !
Он работал через физический серийный порт (Serial1) !

Акронис
Пт 21 июля 2017 г., 4:22 утра
Привет, Стивестронг.

Расскажите, как ваша бизнес -интеграция W5500 Библиотека ?
Как только вы сможете попробовать ?

Стивестронг
Сб 29 июля 2017 г. 9:34
Была добавлена ​​поддержка модулей Ethernet на основе W5500 (см http: // www.STM32duino.com/viewtopic.PHP ... 063#P32063).

Акронис
Сб 14 октября 2017 г. 9:36 вечера
Привет, Стивен.

Выполнять проект, в котором мне нужен быстрый АЦП.
Взял пример кода https: // github.com/arpruss/stm32scope-e ... /объем.Ино .

Он составлен на доске STM32F1* Great.

Но плата STM32F407VET6 Ошибка
error: cannot convert 'const adc_dev' to 'const adc_dev*' for argument '1' to 'void adc_set_sample_rate(const adc_dev*, adc_smp_rate)' adc_set_sample_rate(ADC1, ADC_SMPR_1_5); // ADC_SMPR_13_5, ADC_SMPR_1_5

Стивестронг
Солнце 15 октября 2017 г. 8:31
Я думаю, для F4 вы должны использовать: adc_set_sample_rate(&ADC1, ADC_SMPR_1_5);

Акронис
Солнце 15 октября 2017 г. 12:43
Стивен, спасибо.

Эта ошибка исчезла, но была другая

dc_read: 412: ошибка: базовый операнд '->'Имеет не указанный тип' const adc_dev '

на линии

DataPoints [j+1] = ADC2->регс->Доктор & Adc_dr_data;


void fetch() { // const adc_dev *dev = PIN_MAP[analogInPin].adc_device; int channel = PIN_MAP[analogInPin].adc_channel; adc_set_sample_rate(&ADC1, ADC_SMPR_1_5); // ADC_SMPR_13_5, ADC_SMPR_1_5 adc_set_sample_rate(&ADC2, ADC_SMPR_1_5); // ADC_SMPR_13_5, ADC_SMPR_1_5 adc_set_reg_seqlen(&ADC1, 1); adc_set_reg_seqlen(&ADC2, 1); ADC1->regs->SQR3 = channel; ADC2->regs->SQR3 = channel; ADC1->regs->CR1 |= 0x70000; // ADC_CR1_FASTINT; ADC1->regs->CR2 |= ADC_CR2_CONT | ADC_CR2_SWSTART; ADC2->regs->CR2 |= ADC_CR2_CONT | ADC_CR2_SWSTART; ADC2->regs->CR1 |= 0x70000; // ADC_CR1_FASTINT; nvic_globalirq_disable(); // uint32_t t = micros(); // .584 uS for (int j = 0; j < maxSamples ; j+=2 ) { while (!(ADC1->regs->SR & ADC_SR_EOC)) ; dataPoints[j] = ADC1->regs->DR & ADC_DR_DATA; while (!(ADC2->regs->SR & ADC_SR_EOC)) ; dataPoints[j+1] = ADC2->regs->DR & ADC_DR_DATA; } nvic_globalirq_enable(); }

Стивестронг
Солнце 15 октября 2017 г. 16:10
О, хорошо, я вижу вашу точку зрения, есть много мест, которые используют АЦП в качестве указателя, а не как адрес структуры.
Идеальным решением будет изменение модуля ADC F4, чтобы быть совместимым с F1.
До тех пор вы можете заменить ADCX на (&ADCX).

Акронис
Солнце 15 октября 2017 г. 11:32
Привет, Стивен !

Я тебя слышу.
Вы проделали отличную работу, добавив поддержку STM32F4.
Я действительно надеюсь, что вы сможете добавить поддержку АЦП на этой доске.

Акронис
Чт 19 октября 2017 г. 11:37
Привет, Стивен

Переписать весь код в &ADCX, но ошибка сохраняется



DataPoints [j+1] = &ADC2->регс->Доктор & Adc_dr_data;

базовый операнд->'Имеет не указанный тип' const adc_dev '


В этой строке исправьте код ?

Стивестронг
Чт 19 октября 2017 г. 12:13
Правильно используйте кронштейны: dataPoints[j+1] = (&ADC2)->regs->DR & ADC_DR_DATA;

Акронис
Пт 20 октября 2017 г. 11:54
Привет, Стивен.

Я смог сделать, как ты мне сказал.
Ошибка больше не существует.

Но АЦП работает неправильно, значения постоянно прыгают (с учетом изменений).
Я попытался подключить штифт ADC к GND и VCC, значения все еще варьируются в широком диапазоне.
Попробовал использование Analogread () все одинаковое - значение значения от нижнего до верхнего предела.

Почему не АЦП ?
Это возможно, чтобы решить ?

Стивестронг
Пт 20 октября 2017 г. 12:01
[Акронис - Пт 20 октября 2017 г. 11:54] - Это возможно, чтобы решить ?
Очень вероятно, что его можно решить.
Просто необходимое время отсутствует...

Акронис
Пт 20 октября 2017 г. 12:05
Спасибо за огромную работу.
Ты так много сделал !!!
Вы, наверное, только ADC !
Мы будем ждать быстрого решения.

Еще раз спасибо.

Акронис
Пн 23 октября 2017 г. 15:06
Stevestrong Большое спасибо за помощь !
Это работало на другой сосне !

Акронис
Ср. 8 ноября 2017 г. 12:35
Привет, Стивен.
Нет, если вам удалось адаптировать I2C для этой доски?

Стивестронг
Ср. 8 ноября 2017 г. 13:15
Не для этой платы, но, возможно, для общего мини -миниму.
Только время отсутствует...

Акронис
Ср. 8 ноября 2017 г. 13:54
Эх...

У меня не хватает i2c, чтобы подключить различные датчики к плате STM32F4 Black....

Вы потрясающие !
Я надеюсь, что вы в конечном итоге сделаете !
Спасибо !


Спасибо вам, у меня есть много вещей, связанных с этими платами: ADC, RTC, Display (FCSM LCD-16BIT), Ethernet (W5500), SD-карта (SDIO), NRF24L01, датчики на SPI и других...

есть только i2c.....

Стивестронг
Вт 14 ноября 2017 г., 19:55
Короткое обновление: мне удалось реализовать обнаружение состояния последовательного соединения USB, так что это while(!Serial);

Rogerclark
Вторник 14 ноября 2017 г. 20:07
[Стивестронг - Вт 14 ноября 2017 г., 19:55] - Короткое обновление: мне удалось реализовать обнаружение состояния последовательного соединения USB, так что это while(!Serial);

Стивестронг
Вторник 14 ноября 2017 г. 20:13
Как вы знаете, я не могу сделать чистые PR, но я попробую это.
Разве ты не можешь просто слиться с моего патча?

Rogerclark
Вторник 14 ноября 2017 г. 20:18
Не беспокойся

Я постараюсь объединить патч

Стивестронг
Вт 21 ноября 2017 г. 9:24
[Акронис - Ср. 8 ноября 2017 г. 13:54] - Спасибо вам, у меня есть много вещей, связанных с этими платами: ADC, RTC, Display (FCSM LCD-16BIT), Ethernet (W5500), SD-карта (SDIO), NRF24L01, датчики на SPI и других...

есть только i2c.....
I2c (проволока) наконец -то работает, см http: // stm32duino.com/viewtopic.PHP?f = 3 ... 379#P37376

Акронис
Сб 25 ноября 2017 г. 9:32 утра
I2c (проволока) наконец -то работает УХ ТЫ !
СУПЕР !!!

Стив - большое спасибо !

Ореховый
Вт 16 января 2018 г. 13:01
У меня есть черная доска Zgt6... И у меня тоже эта проблема... Порт COM не отображается при подключении к USB, настройка Boot0 High Поместите его в режим DFU.

Тем не менее, основная проблема, с которой я сталкиваюсь, заключается в том, что да, это то, что это способ загрузки прошивки, когда вы делаете множество отладки и постоянной повторной загрузки...

Как нужно использовать серийный монитор для чтения показаний моей отладки, если чип не выполняет виртуальный COM -порт?

Должен ли я просто придерживаться использования аппаратного сериала и USB -серийного адаптера? Если это так, могу ли я загрузить прошивку через это?

Стивестронг
Вторник 16 января 2018 г. 13:15
Если вы используете Roger's или My Repo, в Arduino IDE у вас есть варианты для функции USB, вы можете выбрать между:
- USB неактивно (к сожалению на первом месте),
- USB Serial (CDC), или
- USB MSC (не реализован).
Пожалуйста, проверьте свой вариант.
Я обычно включаю USB -сериал и загружаю со STLINK, а не USB DFU, я считаю, что снова переключите джампер Boot1 в разные позиции.
И Stlink не работает как серийный интерфейс USB, вам нужен дополнительный USB -кабель между сокетом Micro USB и ПК.

В любом случае, если вы отлаживаете с Stlink, USB -сериал, скорее всего, не будет работать, когда вы остановите программу, USB -протокол чувствителен на перерывах до 20 мс и остановит интерфейсную связь.

Ореховый
Вт 16 января 2018 г. 15:15
У меня есть черная доска, а не открытие STM... Могу ли я использовать ядро ​​Discovery 407 тогда?

Стивестронг
Вт 16 января 2018 г. 15:28
Вы можете попробовать «Generic F407Ve Series», но, как гласит имя, это версия ветеринара, а не ZGT, означает другой размер вспышки/ОЗУ и закрепление платы.
Но вы можете создать новый вариант платы, если хотите.

michael_l
Вт 16 января 2018 г. 15:47
Я хотел бы попробовать это ядро ​​с "Blue F407Vet6", который имеет резонатор 25 МГц. Стив, мне интересно, знаете ли вы, какие изменения необходимы для работы резонатора 25 МГц ?

Изображение

Изображение

Стивестронг
Вторник 16 января 2018 г. 15:50
Это универсальный Mini F407, см. Здесь: http: // stm32duino.com/viewtopic.PHP?F = 39&t = 2804.

Выберите «Generic STM32F407V Mini Series» в селекторе меню Arduino IDE. :)

Это работает только с моим репо: https: // github.com/stevstrong/arduino_stm32

Мэнни
Солнце 21 января 2018 г. 11:09
Загрузил свой репо Стив и не может получить серийный USB для работы или узнавать, используя Mini STM32F407.

Вольф
Ср 24 января 2018 г. 9:54
Всем привет,

Спасибо за всю работу, которую вы проделали для этой доски. Я уже некоторое время использую STMF103CBT6 и собирался «обмениваться» на что-то с большим количеством RAM, нашел эту доску на eBay... А теперь я здесь.

Я заметил, что был пост для портации W5500, поэтому сегодня утром я недавно скачал arduino_stm32 и ethernet_stm32, а затем попробовал этот набросок:
#include SPIClass mSpi(1); void setup() { Serial.begin(115200); delay(500); Serial.print("initialising ethernet... "); Ethernet.init(mSpi, PA4); Serial.println("done"); uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05}; Serial.print("initialising ethernet with DHCP... "); if (Ethernet.begin(mac) == 0) { Serial.println("failed"); } else { Serial.println(" DHCP assigned IP "); Serial.println(Ethernet.localIP()); } }

Стивестронг
Ср 24 января 2018 г. 10:21
Спасибо за указание на эту проблему, я только что добавил, что макрос /ядер/maple/libmaple/gpio.час.
Пожалуйста, проверьте это еще раз.

Дэнниф
Ср 24 января 2018 г. 14:18

Какие изменения необходимы для работы резонатора 25 МГц ?
Пройдите код и найдите HSE_VALUE. Его можно изменить в коде или через препроцессор IDE - ST не согласуется с этим.

Вы также можете просмотреть настройки PLL, чтобы убедиться, что вы не превысили ее максимальную частоту.

Кстати, они действительно использовали резонатор, а не кристалл? Позор им, если так.

Вольф
Ср 24 января 2018 г. 15:07
Спасибо за указание на эту проблему, я только что добавил, что макрос/ядра/maple/libmaple/gpio.час.
Пожалуйста, проверьте это еще раз.
Спасибо за быстрый ответ, я только что сделал свежую загрузку, и теперь он компилируется.

Конечно, это больше ничего не делает, ха, но я новичок в W5500, поэтому я позабочусь о том, чтобы все было настроено правильно.

С уважением.

Стивестронг
Ср 24 января 2018 г. 15:23
Вы могли бы начать с Пример WebClient моего W5500 LIB, Использование вашего собственного экземпляра SPI.
Убедитесь, что ваш маршрутизатор поддерживает DHCP и разрешает новые соединения.
Кроме того, имейте в виду, что никакие MAC -адреса не являются действительными, поэтому маршрутизатор может отказаться от соединения на основе этого недействительного.

Вольф
Ср 24 января 2018 г. 15:51
Вы можете начать с примера WebClient моего W5500 LIB, используя свой собственный экземпляр SPI.
Убедитесь, что ваш маршрутизатор поддерживает DHCP и разрешает новые соединения.
Кроме того, имейте в виду, что никакие MAC -адреса не являются действительными, поэтому маршрутизатор может отказаться от соединения на основе этого недействительного.
Спасибо, Стив.

Мой главный проект в прошлом году включал панели рождественских огней на окнах. Панели светодиодов WS2812B контролировались с помощью модулей STM32F103 (C8T6), и ПК отправил управляющую информацию через WiFi в ESP8266, который затем передал данные в STM32F103 через сериал. (9 панелей светодиодов с 5 ESP8266->STM32F103 модули.)

Это сработало очень хорошо, но в этом году я хочу сделать больше, а 20 -килограммовая оперативная память на STM32F103 стала чем -то вроде ограничения.

Поэтому я хотел доски, у которой было больше оперативной памяти, но было все еще легко программировать, предпочтительно от Arduino Ide. Я использовал STMCube + IAR.

Этот черный F407Vet6 выглядит как очень многообещающая замена, и поэтому это также может быть хорошим временем для рассмотрения удаления Wi -Fi ESP8266 и подключить F407 непосредственно к локальной сети. Отсюда мой интерес.

Я посмотрю на ваше предложение. Поскольку я новичок в W5500, я думаю, что, возможно, вернусь к ООН, заставьте это работать с W5500, а затем перейти к F407VE, возможно, через F103...

Стивестронг
Чт 25 января 2018 г. 9:16 утра
W5500 Lib должен работать с моим репо, проверить Пример веб -клиента.

Вольф
Чт 25 января 2018 г., 11:02
Привет снова,

Во -первых, модуль W5500 отлично работает с библиотекой Uno и Ethernet, поэтому я знаю, что соединения PIN являются правильными, а модуль функционирует.

Во -вторых, я запустил это, чтобы проверить распределение PIN -код SPI:
#include #include void setup() { Serial.begin(115200); delay(500); Serial.println("SPI default"); Serial.print("nss: "); Serial.print(SPI.nssPin()); Serial.print(" sck: "); Serial.print(SPI.sckPin()); Serial.print(" miso: "); Serial.print(SPI.misoPin()); Serial.print(" mosi: "); Serial.println(SPI.mosiPin()); Serial.print("nss: "); Serial.print(PA15); Serial.print(" sck: "); Serial.print(PB3); Serial.print(" miso: "); Serial.print(PB4); Serial.print(" mosi: "); Serial.println(PB5); SPI.setModule(1); Serial.println("SPI 1"); Serial.print("nss: "); Serial.print(SPI.nssPin()); Serial.print(" sck: "); Serial.print(SPI.sckPin()); Serial.print(" miso: "); Serial.print(SPI.misoPin()); Serial.print(" mosi: "); Serial.println(SPI.mosiPin()); Serial.print("nss: "); Serial.print(PA4); Serial.print(" sck: "); Serial.print(PA5); Serial.print(" miso: "); Serial.print(PA6); Serial.print(" mosi: "); Serial.println(PA7); SPI.setModule(2); Serial.println("SPI 2"); Serial.print("nss: "); Serial.print(SPI.nssPin()); Serial.print(" sck: "); Serial.print(SPI.sckPin()); Serial.print(" miso: "); Serial.print(SPI.misoPin()); Serial.print(" mosi: "); Serial.println(SPI.mosiPin()); Serial.print("nss: "); Serial.print(PB12); Serial.print(" sck: "); Serial.print(PB13); Serial.print(" miso: "); Serial.print(PB14); Serial.print(" mosi: "); Serial.println(PB15); SPI.setModule(3); Serial.println("SPI 3"); Serial.print("nss: "); Serial.print(SPI.nssPin()); Serial.print(" sck: "); Serial.print(SPI.sckPin()); Serial.print(" miso: "); Serial.print(SPI.misoPin()); Serial.print(" mosi: "); Serial.println(SPI.mosiPin()); Serial.print("nss: "); Serial.print(PA15); Serial.print(" sck: "); Serial.print(PB3); Serial.print(" miso: "); Serial.print(PB4); Serial.print(" mosi: "); Serial.println(PB5);

ZMEMW16
Чт 25 января 2018 г., 11:20 утра
PB4 на схеме переходит на вспышку и только гнездо NRF24, только!
Вам, возможно, придется играть с переизданием их.
Стивен

Стивестронг
Чт 25 января 2018 12:42
PB4 отмечен на схеме как PB4/TRST (Заголовок JTAG) и как Spi1_miso (подключено к Flash и NRF24).
PB4 - это spi3_miso, а не spi1_miso. Следовательно, SPI1 должен на самом деле означать (BE) SPI3. Я думаю, что у нас уже была дискуссия об этом в более раннее время.
Пинаты SPI3 перекрываются с альтернативной конфигурацией SPI1, но декларированный экземпляр SPI по умолчанию 3, встроенный с вашим тестом PIN.
Это не сразу терпит неудачу Что это значит?
Эскиз будет висеть, когда соединения неверны.

Я проверю это снова.

Вольф
Чт 25 января 2018 13:45
Спасибо, ребята, теперь я нашел PB4 в интерфейсе NRF, я буду тестировать на SPI3.

Вольф
Чт 25 января 2018 г. 14:38
Стив, может быть, извинения.

Я протестировал SPI3 с теми же результатами, но затем я снова все проверил и понял, что чип на моем модуле Ethernet - это W5100, а не W5500. Это был неиспользованный, который у меня был в ящике, я, должно быть, запутался в том, что это было.

Приносим извинения, если это имеет значение.

Стивестронг
Чт 25 января 2018 г. 14:49
Не беспокойся.
Я просто думал, что еще может быть не так в вашем случае, потому что все работает для меня :)
Но теперь это ясно.
OTOH, моя либерация ограничена W5500, другие варианты не поддерживаются.

W5500 более мощный, чем W5100, и имеет такую ​​же цену, поэтому он стоит его иметь.

Вольф
Чт 25 января 2018 г. 15:39
OTOH, моя либерация ограничена W5500, другие варианты не поддерживаются. Хороший! Теперь мы знаем, в чем проблема!

Я только что заказал 2 x w5500. Если бы я заказал только 1, это было бы неисправно! :ржу не могу:

Извините, что потратил время.

Вольф
Ср 14 февраля 2018 г. 8:02
Привет снова,

Я немного расследовал ШИМ. Согласно STM32Cubemx, доступно 32 штифта-шрифта, и с небольшим количеством джиггерди я получил их все работы.

Изображение

На приведенном выше изображении показаны распределения выводов для каждого таймера.
Окраска показывает частоту по умолчанию при использовании pwmwrite. Таймеры 1, 8, 9, 10 & 11 прикреплены к ABP2, который работает на уровне 84 МГц, а остальные прикреплены к APB1, который работает на уровне 42 МГц, при использовании pwmwrite, счет, от нуля до 65535, и поэтому частота должна составлять 84 000 000 /65536 для таймеров на APB1 и 42 000 000 /42 000 /55536. 65536 для таймеров на APB2. Приравнивают к 1282 Гц и 641 Гц соответственно, которые удивительно близки к измеренным значениям (или полное совпадение).

Изображение

На приведенном выше изображении показаны те булавки, которые работают, не изменяя ничего (я в основном устанавливаю различную частоту для каждого таймера, установив значение прескалера и ARR, а затем устанавливаю различный рабочее цикл для каждого канала, поэтому у каждого PWN был уникальная подпись).

(Обратите внимание, что PB4 доступен через штифт «правый нижний» интерфейса NRF24L01, принимая J-Tag в качестве «верхней части» платы.)

Во -первых, я думаю, что есть немного путаницы в PA5 (таймер 2 канала 1), так как это появляется в разных местах, как PA15. Если PA15 действительно альтернатива, я не смог бы заставить его работать. Однако после изменения деталей в arduino_stm32 \ stm32f4 \ variants \ generic_f407v \ pin_map.C от PA15 до PA5 Пять вошла в жизнь.

Точно так же записи для PB10, PB11 и выводов для таймеров TIM10 - TIM14 просто отсутствовали в PIN_MAP.c, после добавления таймера и канала для каждого из этих булавок, они все тоже начали работать.

Конечно, я не знаю, будет ли добавление в эти записи отрицательно повлиять на что -либо еще.

С уважением...

Стивестронг
Ср 14 февраля 2018 г., 17:00
Вы можете сделать пиар?

PA15 зарезервирован для SPI3 NSS.
Таймер 2 CH 1 не отображается на PA5, чтобы позволить использовать в качестве SPI1 SCK.
В том же контексте PB10 и PB11 зарезервированы для (SPI2_SCK или I2C2_SCL или UASRT3_TX) и (I2C2_SDA или USART3_RX), соответственно.

Таким образом, таймер 2 получил более низкий PRIO по сравнению с I2C2/USART3, потому что на других булавках есть множество других таймеров.
То же самое относится и к другим булавкам, которые вы упомянули, в пользу SPI, I2C и USART.
Посмотрите на generic_f407v.h для зарезервированных булавок и для чего они зарезервированы.

Чтобы активировать Timer2_CH1 на PA15, PA15 должен быть отображен с соответствующей альтернативной функцией AF1, которая не выполнена в текущей версии репо.
Вы можете использовать функцию gpio_set_af_mode (), используя мой репо. gpio_set_af_mode(PA15, GPIO_AFMODE_TIM1_2);

Вольф
Чт 15 февраля 2018 г. 8:39 утра
Спасибо за объяснение, Стив.

Я не ожидал, что вы что -то измените, я просто хотел объяснить, что делать, чтобы получить все 32 канала ШИМ, работающих на всех, кто хотел знать, потому что у меня есть проект, который планирует использовать их все.

Кроме того, мои модули W5500 прибыли вчера, и поздно вечером я получил 407VE, подключенный к локальной сети, так что еще раз спасибо за вашу работу.

Акронис
Солнце 18 февраля 2018 12:27
Стив

Расскажите, пожалуйста, как делать калибровку ADC ?
int channel = PIN_MAP[analogInPin].adc_channel; adc_set_sample_rate(&ADC1, ADC_SMPR_1_5); adc_set_reg_seqlen(&ADC1, 1); (&ADC1)->regs->SQR3 = channel; (&ADC1)->regs->CR1 |= 0x70000; (&ADC1)->regs->CR2 |= ADC_CR2_CONT | ADC_CR2_SWSTART;

Стивестронг
Солнце 18 февраля 2018 12:43
Вы не должны и не можете калибровать АЦП F4.

Акронис
Солнце 18 февраля 2018 12:52
ХОРОШО. Спасибо.

Стивестронг
Солнце 18 февраля 2018 г., 21:08
Мне нужен был простой генератор волн, поэтому я подумал, почему бы не использовать ЦАП моей платы F4.

Результатом является эскиз, который генерирует либо синусоидальную волну (с использованием таблицы поиска), либо треугольной волны (используя внутренний генератор волн чипа F4).
Настраивается с некоторыми определениями в начале эскиза.

По-прежнему, мой репо дает необходимые функции полезности.

Пито
Пн 19 февраля 2018 г. 12:28
Любой пример для одновременной регулярной выборки ADC (2 ADC Sample канал в одно и то же время, сканирование канала - отключено сканирование) отключено)?

Стивестронг
Пн 19 февраля 2018 г., 7:54 утра
Да, ADC является следующим в повестке дня, теперь, когда у меня есть эталонный сигнал от ЦАП на выборку ;)

Стивестронг
Вт 20 февраля 2018 г., 19:54
Это еще один пример генерации формы волны Используя DMA сейчас.
Этот пример позволяет настроить выходную частоту (и амплитуду в случае внутреннего генератора треугольника).
Пример синусоидальной волны имеет 210 образцов и 8 -битного разрешения, с 3.3vpp.
Сгенерированная частота 20 кГц довольно точная, а сигнал имеет хорошую форму ;)

Теперь следующий шаг - ADC.

vitor_boss
Пт 23 февраля 2018 г. 1:01
[Стивестронг - Вт 20 февраля 2018 г., 19:54] - Это еще один пример генерации формы волны Используя DMA сейчас.
Этот пример позволяет настроить выходную частоту (и амплитуду в случае внутреннего генератора треугольника).
Пример синусоидальной волны имеет 210 образцов и 8 -битного разрешения, с 3.3vpp.
Сгенерированная частота 20 кГц довольно точная, а сигнал имеет хорошую форму ;)

Теперь следующий шаг - ADC.
Очень хороший код, я не квалифицированный программист, как вы, ребята, но у меня есть идея уменьшить #ifdefs #elif GEN_WAVE==TRIANGLE #if WAVE_AMP==3 const int WAVE_RES = 8192; #elif WAVE_AMP==2 const int WAVE_RES = 4096; #elif WAVE_AMP==1 const int WAVE_RES = 2048; #endif #endif

Стивестронг
Пт 23 февраля 2018 г. 8:34 утра
Да, это имеет смысл.

Робка
SAT 03 марта 2018 г., 17:29
У меня есть длинный бездействующий проект, который я хотел бы завершить (2+ года бездействует). Он был построен на плате F103, но не мог быть завершен из -за ограниченной оперативной памяти (только максимум 64K для досок, которые я мог найти) и медленной производительности плавания.

Я случайно обнаружил его внизу моей кучи, и я просматриваю, я вижу, что доски F4 сейчас дешевые, и есть поддержка STM32Duino для F4... так что я мог бы закончить это в конце концов :)

Единственное, что я смущен, - это то, что у F4, кажется, есть сложная карта памяти, с 112K + 16K + 64K, последняя память CCM, а не DMA включено. Если бы я использовал другой набор инструментов, я знаю, что мог бы использовать правильные распределители памяти и использовать всю эту память. Как насчет инструментов STM32duino?

Я быстро посмотрел здесь https: // github.com/stevstrong/arduino_s ... Eric_f407v и кажется определяется и RAM (128K), так и CCRAM (64K), но не уверены, как они доступны

Если бы у меня была доска, было бы легко проверить... Но прежде чем я заказываю (и подождите медленную лодку из Китая), может ли кто -нибудь здесь, пожалуйста, помогите мне понять, сколько бесплатной оперативной памяти я могу разумно ожидать от моего кода?

Кстати: будет ли этот код работать на вашем филиале? https: // github.com/mpflaga/arduino-memo ... Ryfree.CPP

vitor_boss
Сб 3 марта 2018 г., 17:38
Да, код Freeram работает, также некоторые парни разрабатывают плату F405 с совместимой с плановой распиновкой, возможно, можно заменить только F1 для F4.

ViewTopic.PHP?F = 19&T = 2633&начало = 580

Робка
Сб 3 марта 2018 г., 21:26
Спасибо за подтверждение кода Freeram Works Works... Но так как у меня нет доски F4, я надеялся, что кто -то сможет сказать мне, сколько бесплатной барана я могу получить с одной из досок F4 ;) (Все они имеют одинаковое количество оперативной памяти, меняются только вспышка и булавки)

И это выглядит так, как будто eBay/Aliexpress F407 Доски-самые дешевые, которые вы можете получить, в размере 10 долларов США... STM32F405 не дешевле, на самом деле стоит дороже. F411 имеет меньше оперативной памяти, более медленной и одиночной (медленной) АЦП, поэтому не сработает для меня, даже если дешевле. Люблю видеть открытое аппаратное и меньшие форм -факторы, но для моего проекта это не критично. Поскольку я даже не знаю, будет ли это когда -нибудь сработать, может и пойти дешево. Но, честно говоря, я не уверен, что вижу смысл для пособия по заказу платы F405 или F411, учитывая, где находится рынок на

Стивестронг
Солнце 04 марта 2018 г. 8:23 утра
В моем репо, стек был сопоставлен с CCMRAM, и пример, как на карту ваших переменных есть один из USB -буферов. Поиск кода для этого.
Но CCMRAM не может быть использован с DMA, как и остальная часть ОЗУ.

Что касается выбора платы, я считаю, что Generic Vet6 Mini дает очень хорошую отправную точку, включая слот для карт SD и I2C Flash на борту.
Если вам не нужны эти дополнительные часы HW, любой более простой «универсальный» тип сделает это, например, в другом посте (название «Discovery»).

Стивестронг
Солнце 04 марта 2018 г. 8:45 утра
[Пито - Пн 19 февраля 2018 г. 12:28] - Любой пример для одновременной регулярной выборки ADC (2 ADC Sample канал в одно и то же время, сканирование канала - отключено сканирование) отключено)?
Вы не можете иметь этого, см. Примечание в RM0090 Глава 13.9.2.

Робка
Солнце 04 марта 2018 г., 16:55
[Стивестронг - Sun 04, 2018 8:23] - В моем репо, стек был сопоставлен с CCMRAM, и пример, как на карту ваших переменных есть один из USB -буферов. Поиск кода для этого.
Но CCMRAM не может быть использован с DMA, как и остальная часть ОЗУ.

Что касается выбора платы, я считаю, что Generic Vet6 Mini дает очень хорошую отправную точку, включая слот для карт SD и I2C Flash на борту.
Если вам не нужны эти дополнительные кусочки HW, любой более простой «универсальный» тип сделает это, например, в другом посте (названный «Dicovery»).
Это здорово, спасибо. Я думал, что видел стек, нанесенный на карман, это было очень умно с вами, так как он освобождает больше пользовательского ОЗУ. Не заметил USB, что также является отличной идеей. И да, я понимаю ограничения CCRAM (и я буду в значительной степени полагаться на DMA для части кода ADC), с другой

Таким образом, я должен быть, по сути, использовать в своем коде более 128 КБ ОЗУ, как только я выясню, как выделить некоторые переменные на CCRAM. Даже (в теории) преобразовать мои каналы АЦП почти в ОЗУ почти 128 КБ с использованием DMA и наполнение каждой другой переменной в CCRAM. Потрясающий :)

victor_pv
Вт, 06 марта 2018 г., 3:04
Есть 2 возможных подхода к CCM RAM:
  • Вы можете поместить все в него по умолчанию и указать, когда вы хотите использовать обычную оперативную память с атрибутом.
  • Или вы можете поместить все в обычную оперативную память и только поместить вещи в CCMRAM с атрибутом.
Я верю, что мы обсуждали это в некоторых темах и PRS, и решили лучше оставить обычную оперативную память по умолчанию, поскольку на этом нет ограничений (для DMA или запустить код на нем) и использовать CCM RAM только тогда, когда атрибут атрибут используется.
В этом ветке есть некоторые детали:
http: // stm32duino.com/viewtopic.PHP?f = 5 ... CCM#P32607

Стив наверняка знает, является ли атрибут, который он сохранил, является тем, что мы обсуждали в этой теме, __CCMRAM__, если это так, вам нужно только объявить переменные с этим атрибутом, чтобы поместить их в CCM RAM, я.E: uint16_t __CCMRAM__ buffer[256];

Робка
Вт, 06 марта 2018 г., 6:27
Спасибо за дополнительную информацию. Да, я посмотрел на код, как это было предложено Стивом, и с настройками по умолчанию вы можете использовать __CCRAM__ для распределения переменных в CCRAM. Имеет смысл использовать обычную оперативную память в качестве по умолчанию, поскольку люди могут захотеть использовать DMA, а в любом случае нормальная оперативная память в два раза больше, чем CCRAM. Даже в случае USB есть IFDEF, чтобы положить буферы в нормальную оперативную память, если используется DMA.

Определенно приятно иметь возможность решить, где хранятся переменные, и если скорость является проблемой, CCRAM следует использовать преимущественно для чего -либо, не зависимого от DMA. Но я все еще считаю, что использование нормальной оперативной памяти в качестве дефолта безопаснее, иначе люди сталкиваются с проблемами с библиотеками/кодом, полагаемыми на DMA, и было бы очень трудно устранить устранение неполадок

Поскольку я использую ADC с DMA, как минимум буферы, используемые конверсией A/D

На данный момент я уверен, что стоит начать экспериментировать с доской F407. Просто нужно будет ждать медленной лодки из Китая, чтобы добраться сюда с моей доской :)

victor_pv
Вт, 06 марта 2018 г. 8:46 утра
Еще один совет. Нормальная оперативная операция разбивается в 2 блоках с отдельным доступом к шине.
Если вам нужна Ultimate Performance, когда вы выполняете 2 вещи в обычной оперативной памяти одновременно (передачи 2DMA или 1 доступ к процессору), вы можете сделать то же самое, что и с CCMRAM и создать отдельную область для верхних 16 КБ ОЗУ, Таким образом, вы можете направить компилятор, чтобы поместить там буфер, и знать, что DMA может получить доступ к этой области одновременно, процессор или другой канал DMA включают другую нормальную область ОЗУ без каких -либо киосков.
Я считаю, что именно поэтому STM разработала обычную оперативную память в 2 отдельных блоках.
Вы также можете поместить какой -то код в этом верхнем регионе и могли бы выполнить, не подвергаясь затронутую доступом к оперативной памяти, если весь другой доступ пойдет на другие блоки.

Робка
Вторник 06 марта 2018 г., 17:20
Это объясняет, почему 128K ОЗУ обычно описывается как 112K+16K... Мне было интересно, что сделало этот 16 -километровый блок «особенным», и теперь я знаю :)

Спасибо за информацию. К счастью, мои потребности довольно просты: высокоскоростный DMA ADC в буфер (4 канала), затем обработайте буфер в виде одной высокоскоростной задачи, последовательно. Как таковой, я не думаю, что мой код будет очень выиграть от вырубки лишних перфуд. Я вижу, как это выиграло бы, если бы я использовал обработку в реальном времени и круглый буфер ADC, обрабатывая буфер ADC, в то время как передача DMA активен

Стивестронг
Пн 19 марта 2018 г. 14:49
Короткая информация.

АЦП была переработана и продлена библиотекой, см этот патч, что потребовалось для изменения довольно много файлов.
Экземпляры устройства ADC перемещаются на Flash, в то время как таблицы ISR хранятся в ОЗУ.
Это необходимо для изменения таблицы PIN_MAP, которая теперь содержит индекс для устройства ADC вместо его адреса.
Надеюсь, что это больше ничего не сломало ... :?

Существует 3 примера: многоканальный не-DMA, одноканальный DMA и многоканальный DMA, обе версии DMA с использованием одного буфера (однако, разделение на две.

РЕДАКТИРОВАТЬ
Я просто понял, что двойной режим АЦП не покрывается ни одним примером, я тоже сделаю пример для этого тоже.

Акронис
Вт 20 марта 2018 12:28
Привет, Стив !




Я обновил вашу последнюю библиотеку, и код, который я работал, дает такую ​​ошибку adc_set_sample_rate (&ADC1, ADC_SMPR_1_5); 'Adc_smpr_1_5' не было объявлено в этой области



Если проект #include "sdiof4.час"
по ошибке:
C: \ users \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f4 \ libraries \ spi \ src \ spi.CPP: 116: 28: ошибка: неверное преобразование из 'const dma_dev*' в 'dma_dev*' [-fpermissive]

_Settings [0].spidmadev = dma2;

Как это исправить ?

Стивестронг
Вторник 20 марта 2018 г. 14:16
Последования:
- использовать: adc_set_sampling_time(ADC1, ADC_SMPR_144); // 1 µs sampling+conversion time

Акронис
Вт 20 марта 2018 г. 15:17
Эта ошибка при подключении "SDIOF4.H "остался


C: \ users \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f4 \ libraries \ spi \ src \ spi.CPP: 116: 28: ошибка: неверное преобразование из 'const dma_dev*' в 'dma_dev*' [-fpermissive]

_Settings [0].spidmadev = dma2;

victor_pv
Вторник 20 марта 2018 г., 16:20
[Акронис - Вт 20 марта 2018 г. 15:17] - Эта ошибка при подключении "SDIOF4.H "остался


C: \ users \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f4 \ libraries \ spi \ src \ spi.CPP: 116: 28: ошибка: неверное преобразование из 'const dma_dev*' в 'dma_dev*' [-fpermissive]

_Settings [0].spidmadev = dma2;
Пытаться:

_Settings [0].spidmadev = (dma_dev*) dma2;

Или на самом деле, не должно быть ли строка 141, вместо этого?
dma_dev * const spidmadev;

Стивестронг
Вт 20 марта 2018 г., 16:31
Я только что зарегистрировал исправление для параметра недействительного преобразования в функциях, связанных с SPI DMA.

Однако ошибка в SPI.CPP: 116: 28: должен был быть исправлен моим первым предложением.
Я только что проверил текущий репо и теперь не получил ошибки.
Пожалуйста, восстановите весь проект после того, как вы вытащите последнюю версию.

Акронис
Вторник 20 марта 2018 г. 11:25
Привет, Стив !

Сегодня обновил библиотеку и проверил - теперь ошибка не дает !
Большой!
Спасибо!

da_user
Пт 23 марта 2018 г., 21:18
Привет,
У меня есть несколько линкеров-проблений, компилируя с "Visualmicro". Я думаю, что это сработало несколько дней назад, но я попробовал некоторые другие ядра, и теперь я хотел бы использовать это, потому что мне нужен RTC.

Компилятор-выпуск, для «голого минимального» эскиза: Compiling 'STM32F407_Test' for 'Generic STM32F407V series' rccF4.c: In function SetupClock72MHz rccF4.c: 264:3: warning: this 'while' clause does not guard... [-Wmisleading-indentation] while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL) ^~~~~ rccF4.c:265: note ...this statement, but the latter is misleadingly indented as if it is guarded by the while rccF4.c: In function SetupClock120MHz rccF4.c: 355:3: warning: this 'while' clause does not guard... [-Wmisleading-indentation] while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL) ^~~~~ rccF4.c:356: note ...this statement, but the latter is misleadingly indented as if it is guarded by the while rccF4.c: In function SetupClock168MHz rccF4.c: 456:3: warning: this 'while' clause does not guard... [-Wmisleading-indentation] while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL) ^~~~~ rccF4.c:457: note ...this statement, but the latter is misleadingly indented as if it is guarded by the while rccF4.c: In function rcc_clk_init2 rccF4.c: 554:5: warning: this 'while' clause does not guard... [-Wmisleading-indentation] while ((RCC->CFGR & RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL) ^~~~~ rccF4.c:555: note ...this statement, but the latter is misleadingly indented as if it is guarded by the while arm-none-eabi-g++*: error: C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test\Arduino_STM32-master_generic_f407v\Debug\core\libmaple\syscalls.c.o: No such file or directory Error linking for board Generic STM32F407V series Build failed for project 'STM32F407_Test'

Стивестронг
Пт 23 марта 2018 г., 22:33
Проблемы с другими средами, чем Arduino IDE, в основном сокращается до вариантов платформы.TXT и доски.текст.
Просто сравните сообщения Arduino Build (Verbose) с сообщениями VM, и вы увидите разницу, которая объяснит основную причину, и, таким образом, вы получите подсказку, как решить свою проблему.

Кстати, предупреждение о [-wmisleading-indentation] для ()... Я думаю, что я решил с последним коммитом.

Акронис
Сб 24 марта 2018 г., 7:09
Привет, Стив!

Я обновил вашу библиотеку до последнего.
timer.pause(); timer.setPeriod(500); timer.setChannel1Mode(TIMER_OUTPUT_COMPARE); timer.setCompare(TIMER_CH1, 1); timer.attachCompare1Interrupt(timer_interrrupts); timer.refresh(); timer.resume();

Стивестронг
Сб 24 марта 2018 г. 8:31
Это связано с функциями, отмеченными как устаревшие в оригинальной документации Leaflabs: http: // docs.Leaflabs.com/static.Leaflab ... кататорность
Я сделал шаг, чтобы удалить их из моего репо.
Извините, если я столкнулся с этим.

Поэтому, пожалуйста, используйте вместо этого рекомендуемые функции по данной ссылке.
Значение: timer.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); timer.attachInterrupt(TIMER_CH1, timer_interrrupts);

Акронис
Сб 24 марта 2018 г. 8:57 утра
Стив, спасибо!

Так что все в порядке !

Акронис
Сб 24 марта 2018 12:42
Стив
Расскажите, пожалуйста, как установить конфигурации параметров ?
Например, serial_8o2

Сериал.начинать (скорость, конфигурация)

Стивестронг
Сб 24 марта 2018 13:07
В настоящее время вы можете использовать только Serial.begin(baud_rate);

Акронис
Сб 24 марта 2018 13:09
Хорошо.
Спасибо

Стивестронг
Сб 24 марта 2018 13:39
До этого вы могли бы использовать прямые функции USART (снова проверьте мое репо): void usart_set_parity(usart_dev *dev, uint16_t odd); // odd: 0=even, 1=odd void usart_set_stop_bits(usart_dev *dev, uint16_t stop_bits); // stop_bis: 0=1bit, 1=0.5bits, 2=2bits, 3=1.5bits

Акронис
Сб 24 марта 2018 г., 13:51
Стив !
Ты работаешь невероятно быстро !!!
Ваш великий специалист !!!

Я благодарю вас за вашу помощь !

da_user
Сб 24 марта 2018 г., 22:36
Проблемы с другими средами, чем Arduino IDE, в основном сокращается до вариантов платформы.TXT и доски.текст.
Просто сравните сообщения Arduino Build (Verbose) с сообщениями VM, и вы увидите разницу, которая объяснит основную причину, и, таким образом, вы получите подсказку, как решить свою проблему.

Кстати, предупреждение о [-wmisleading-indentation] для ()... Я думаю, что я решил с последним коммитом.
Привет,
Для примечаний:
Я вчера скачал файлы. Сегодня я скачал их недавно несколько минут назад, и заметки исчезли!? Понятия не имею.

Также понятия не имею, что делать с словесными сообщениями : шок:
То, что из Arduino IDE ясно длиннее, чем у Visualmicro: 141 VS. 30 строк.
В том, что у Visiualmicro это, вероятно, будет интересно с линии 24: Linking it all together ... "C:\Users\user\AppData\Local\arduino15\packages\STM32\tools\arm-none-eabi-gcc\6-2017-q2-update/bin/arm-none-eabi-g++" -Os -Wl,--gc-sections -mcpu=cortex-m4 "-TD:\Eigene Dateien\Eigene Dokumente\Arduino\hardware\Arduino_STM32\STM32F4\variants\generic_f407v/ld/jtag.ld" "-Wl,-Map,C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug/STM32F407_Test2.ino.map" "-LD:\Eigene Dateien\Eigene Dokumente\Arduino\hardware\Arduino_STM32\STM32F4\variants\generic_f407v/ld" -specs=nosys.specs -specs=nano.specs -o "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug/STM32F407_Test2.ino.elf" "-LC:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug" -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug/core/libmaple/syscalls.c.o" "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\STM32F407_Test2.cpp.o" "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\variant\generic_f407v.cpp.o" "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\variant\pin_map.c.o" "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\core.a" -Wl,--end-group arm-none-eabi-g++*: error: C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\core\libmaple\syscalls.c.o: No such file or directory Error linking for board Generic STM32F407V series Build failed for project 'STM32F407_Test2'

Стивестронг
Солнце 25 марта 2018 г. 8:53 утра
Вы должны заставить виртуальную машину восстановить всю цель.
Сначала убедитесь, что Syscalls.C можно найти в папке:
Arduino_stm32 \ stm32f4 \ cores \ maple \ libmaple

В Time Time Arduino выводит этот файл в свой собственный Temp/Core/Libmaple/Polder. Поэтому, пожалуйста, проверьте, содержит ли это ваша выводная папка
Arduino_stm32_generic_f407v \ debug \ core \ libmaple \ syscalls.в.о

da_user
Солнце 25 марта 2018 г. 15:45
Привет,
Спасибо за помощь ;-)
Сначала убедитесь, что Syscalls.C можно найти в папке:
Arduino_stm32 \ stm32f4 \ cores \ maple \ libmaple
Вы имеете в виду в \ ardware \?
Да, есть ли.
Вы должны заставить виртуальную машину восстановить всю цель. Сделанный.
В Time Time Arduino выводит этот файл в свой собственный Temp/Core/Libmaple/Polder. Таким образом, есть один многословный массаж:
"C:\Users\user\AppData\Local\arduino15\packages\STM32\tools\arm-none-eabi-gcc\6-2017-q2-update/bin/arm-none-eabi-ar" rcs "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\core.a" "C:\Users\user\AppData\Local\Temp\VMBuilds\STM32F407_Test2\Arduino_STM32_generic_f407v\Debug\core\syscalls.c.o"

Стивестронг
Солнце 25 марта 2018 г., 16:51
[da_user - Солнце 25 марта 2018 г. 15:45] - Но нет \ core \ libmaple \ Directory. Виртуальная машина поиск не в том DIR или поместите файл в неправильный DIR.
Ну, пожалуйста, проверьте это самостоятельно, извините, но я не могу помочь вам с виртуальной машиной, у меня вообще нет опыта.
Я знаю, что в Eclipse вы должны проверить настройки каталога проекта и настроить его, чтобы быть идентичным, как это обрабатывается Arduino IDE.

da_user
Солнце 25 марта 2018 г., 17:48
Ну, пожалуйста, проверьте это самостоятельно, извините, но я не могу помочь вам с виртуальной машиной, у меня вообще нет опыта. Без проблем. Ты очень помог!
Вы говорите, что в основном проблемы - это варианты платформы.TXT и доски.текст? Ну, STM32_Generic пробегает, может быть, я нашел правильную разницу. И я спрошу на форуме виртуальной машины.
И последний выход: тестирование кода Visual Studio ;-)

Еще раз: спасибо за вашу помощь!

Стивестронг
Солнце 25 марта 2018 г., 17:54
[da_user - Солнце 25 марта 2018 г., 17:48] - Вы говорите, что в основном проблемы - это варианты платформы.TXT и доски.текст?
Неа. Они решение ;)

da_user
Пт 30 марта 2018 г., 16:12
[Стивестронг - Солнце 25 марта 2018 г., 17:54] - Неа. Они решение ;)
Да, они!
VM не может помочь: http: // www.Visualmicro.com/форумы/yabb. ... 1522079538

Но я посмотрел на свой собственный. Я изменил arduino_stm32 \ stm32f4 \ plattform.TXT LINE 78 TO: recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/core/syscalls.c.o" {object_files} "{archive_file_path}" -Wl,--end-group

Мадиас
Вт 24 апреля 2018 г., 21:21
Хорошо, мой черный F407Vet6 прибыл, чтобы я также мог играть с ним:
Я использую Core Steve Core (скачано 18-04-24)
Моя первая попытка - разговор о библиотеке «наш» ILI9341 F1:
Первая ошибка была - более или менее - легко: C:\Users\Administrator\Documents\Arduino\hardware\Arduino_STM32_18_03_06\STM32F4\libraries\Adafruit_ILI9341_STM\Adafruit_ILI9341_STM.cpp:69:13: error: invalid conversion from 'volatile uint32* {aka volatile unsigned int*}' to 'volatile uint32_t* {aka volatile long unsigned int*}' [-fpermissive] csport = portSetRegister(_cs);

Стивестронг
Вт 24 апреля 2018 г., 21:28
Используйте spi_data_size_8bit

Мадиас
Вт 24 апреля 2018 г., 21:35
[Стивестронг - Вт 24 апреля 2018 г., 21:28] - Используйте spi_data_size_8bit
Спасибо, Стив!
Как мы говорим в немецком языке "Ден Вальд Вор Лаутер Баумен Нихт Мехр Сеэн" (что -то вроде «пропустить лес по деревьям»)...Компиляция теперь в порядке (с предупреждениями) результаты будут последующие результаты!

Мадиас
Вт 24 апреля 2018 г., 22:07
Просто для записей:
Первый тест отрицательный.
Нет вывода экрана и где -то вешает (просто быстрый тест на последовательную отладку).
Мне нужно копать дальше. Может быть, библиотека слишком много оптимизирована STM32F1, возможно, я возвращаюсь к более ранней версии без всего DMA, пока не нашел критический код.

Rogerclark
Вт 24 апреля 2018 г., 22:22
Матиас

Я думаю, это хорошо, что в разных странах есть такая же фраза

Это’S что -то вроде

“Я не мог видеть дерево, для деревьев”

Это означает, что я не мог видеть дерево из -за деревьев, скрывающих его.

То же, что и на немецком языке ;-)

Мадиас
Ср 25 апреля 2018 г., 6:57
Ядро: Libmaple Steve F4
Хорошо, какой -то дальнейший прогресс:
«Старая» библиотека работает.
Одна проблема, которую я обнаружил: определения булавок SPI находятся на альтернативных выводах

Так что для SPI1:
SCK1 и MOSI1 включены: PA5 и PA7, а также
(Альтернативная) PB3, PB5

Нашел это в generic_f407v.час
#define BOARD_NR_SPI 3 #define BOARD_SPI1_NSS_PIN PA4 #define BOARD_SPI1_SCK_PIN PA5 #define BOARD_SPI1_MISO_PIN PA6 #define BOARD_SPI1_MOSI_PIN PA7 #define BOARD_SPI1A_NSS_PIN PA15 #define BOARD_SPI1A_SCK_PIN PB3 #define BOARD_SPI1A_MISO_PIN PB4 #define BOARD_SPI1A_MOSI_PIN PB5

Мадиас
Ср 25 апреля 2018 г. 8:32
Странная вещь (для дальнейших исследований):
отключение //#define SPI1_ALTERNATE_CONFIG 1 // use alternate SPI1 on SPI3 pins

Стивестронг
Ср 25 апреля 2018 г. 8:35 утра
Матиас, я смог использовать ILI9341 на этой плате, когда я тестировал DCMI вместе с камерой OV7670.
Я сделал это в SPI.H Потому что мне нужны были 42 МГц -часы на PB3, чтобы достичь ~ 26 кадров в секунду, см. Мой проект, прикрепленный здесь: http: // stm32duino.com/viewtopic.PHP?F = 39&T = 3414#P43358, и по крайней мере один из PA5-7 зарезервирован для DCMI.
Вы тестируете эскиз GraphicStest?

Мадиас
Ср 25 апреля 2018 г. 8:38
Стив: Точно, я использую графический тест.
Работа над (маленькой модифицированной) библиотекой «старой» (#include »adafruit_ili9341.H ») работает без проблем на альтернативных булавках SPI, но не на стандартном SPI1

Новая библиотека DMA вылетает после рисования белых блоков

Стивестронг
Ср 25 апреля 2018 г. 8:41
Вы действительно уверены, что это DMA, который падает?
Проверьте ILI9341 LIB по ссылке выше.
Тем временем я дважды проверю графический тест.

Мадиас
Ср 25 апреля 2018 г. 9:24
Стив, я проверю это сегодня вечером с твоей библиотекой! Действительно странная вещь - это больше, что стандартный порт SPI1 без альтернативы не работает . Протестировано Wirh A Basic Code SPI.

Стивестронг
Ср 25 апреля 2018 г. 9:31
Имейте в виду, что экземпляр SPI по умолчанию, объявленный в SPI.CPP - это SPI (3) (из -за этих разъемов на некоторые дополнительные доски).
Так Spi.написать () попытаться написать на SPI3.

Мадиас
Ср 25 апреля 2018 г., 18:27
[Стивестронг - Ср 25 апреля 2018 г. 8:41] - Вы действительно уверены, что это DMA, который падает?
Проверьте ILI9341 LIB по ссылке выше.
Тем временем я дважды проверю графический тест.
Стив: Даже с вашей библиотекой одинаковые симптомы: сбои через некоторое время (та же конфигурация, что и со стандартной библиотекой не DMA)

Мадиас
Ср 25 апреля 2018 г. 20:46
Хорошо, некоторые обновления!
Даже без владения OV7670 я попробовал ваш код, и экран работает.
Таким образом, должна быть проблема с некоторыми функциями в библиотеке ILI9341, чтобы MCU сбой. Я попробую основные функции, чтобы определить проблему.
Редактировать обновления:
Я снизил частоту (как, Safe, так и FREQ) до 1200000, также используя самые короткие кабели перемычки, которые у меня есть, взял еще один дисплей ILI9341, но без изменений.
Я вставил: tft.setRotation(1); // rotate 90° for landscape tft.setAddrWindow(0, 0, screen_h, screen_w);

Стивестронг
Ср 25 апреля 2018 г., 21:42
Я только что проверил график.Ино из прикрепленной ILI9341 LIB на SPI1 моей черной доски F4, и он работает с моим репо.

Хорошо, некоторые группы пикселей отображаются неправильно в двух прямоугольных тестах, но самое главное, что он не видит.
ILI9341 Test! Display Power Mode: 0x9C MADCTL Mode: 0x48 Pixel Format: 0x5 Image Format: 0x9C Self Diagnostic: 0xC0 Read single pixel test ------------------------------ Write pixel: 0x1234 Read pixel: 0x1234 Read multiple pixel test ------------------------------ Write pixels: 0x1234, 0x5678, 0x9012, 0x3456 Benchmark Time (microseconds) Screen fill 142065 Text 20827 Lines 91022 Horiz/Vert Lines 16827 Rectangles (outline) 12483 Rectangles (filled) 4718 Circles (filled) 66692 Circles (outline) 69433 Triangles (outline) 24135 Triangles (filled) 114242 Rounded rects (outline) 30803 Rounded rects (filled) 341549 Done!

Мадиас
Ср 25 апреля 2018 г., 22:13
<Освободи>
Странная вещь.
Я снова скачал ваш репо, установил связующуюся пробел ILI-LIB, те же результаты.
Какой adafruit_gfx вы используете (тот, который без _as) - Получение некоторых пропущенных ошибок (ОК, я отключил строку, потому что нам не нужен i2c)
Вы выбираете этот порт из IDE?
"GenericStm32f407v Series" - USB Serial (CDC)?
Я также проверил «мини», но это сразу же сбоя.
Безусловно, я использую эту доску:
https: // www.aliexpress.com/item/free-sh ... 84907.HTML

Мадиас
Ср 25 апреля 2018 г., 22:18
Хорошо, я использовал graphictest_stm32, теперь я использовал графикт.Ино с #define TFT_CS PA1 #define TFT_DC PA2 #define TFT_RST PA3

Робка
Пн 14 мая 2018 г., 22:57
Я чувствую себя глупо...

Обновление: все, что мне нужно было сделать, это использовать этот путь вместо этого: C: \ arduino-1.8.5 \ Portable \ Packages \ STM32DUINO \ HARDWAWARE \ STM32F4 \ 2018.5.11, как и ядра плат F1


Я пытаюсь получить такую ​​общую доску F4 для работы https: // www.eBay.com/itm/stm32f4discove ... 2366085094

Я установил новую копию Arduino 1.8.5, установил пакет платы SAM, затем добавил http: // dan.тонуть.org/stm32duino/package ... индекс.json к предпочтениям и установили платы F1.

Мне сказали, что https: // github.com/stevstrong/arduino_stm32/ Это лучшее ядро ​​для использования для моей платы, поэтому я загрузил ZIP-файл этого проекта, а затем скопировал только папку STM32F4 под C: \ arduino-1.8.5 \ Portable \ Packages \ STM32DUINO \ HARDWARE \ STM32F4, как я это делал в прошлом менеджера предварительных плат (в то время я скопировал как STM32F1, так и другие ядра вручную из файла ZIP). И я использую портативную установку Arduino, отсюда и путь

Теперь под досками я вижу доски Юнь и Формулы, но ни одна из досок F4. Что мне не хватает? Нужно ли мне отредактировать какой -то файл, чтобы Arduino распознал каталог STM32F4 как действительный?

Робка
Вторник 15 мая 2018 г. 12:19
Еще один вопрос, извините

Все еще пытаюсь заставить мою доску F4 работать. Я успешно собрал мигание и загрузил его на свою доску (https: // www.eBay.com/itm/stm32f4discove ... 2366085094) Использование Stlink. Все работает хорошо

Теперь я хотел использовать USB -порт, поэтому я установил «USB Serial (CDC)» и загрузчик STM32DUINO, но он всегда терпит неудачу с:
C:\arduino-1.8.5\portable\packages\stm32duino\tools\stm32tools\2018.5.11/win/maple_upload.bat COM16 2 1EAF:0003 C:\Users\Roberto\AppData\Local\Temp\arduino_build_80506/BlinkF4.ino.bin {upload.dfuse_addr} java.lang.UnsupportedClassVersionError: CliTemplate/CliMain : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: CliTemplate.CliMain. Program will exit. Exception in thread "main"

Rogerclark
Вторник 15 мая 2018 г. 12:31
Загрузка загрузчика работает только на F1, у нас нет загрузчика для F4, поскольку это совершенно другой MCU

Таким образом, загрузки F4 только через stlink

Я не знаю, как вы пытаетесь сделать загрузчик загрузчика на F4, если вы не делаете ее вручную, поскольку это не вариант в меню в IDE именно потому, что это не возможно

Робка
Вторник 15 мая 2018 г., 2:22
[Rogerclark - Вторник 15 мая 2018 г. 12:31] - Загрузка загрузчика работает только на F1, у нас нет загрузчика для F4, поскольку это совершенно другой MCU

Таким образом, загрузки F4 только через stlink

Я не знаю, как вы пытаетесь сделать загрузчик загрузчика на F4, если вы не делаете ее вручную, поскольку это не вариант в меню в IDE именно потому, что это не возможно
Получил, спасибо. Я думаю, я смутился этим ViewTopic.PHP?t = 1215 и предположил, что было как -то возможно мигать через USB с использованием dfuse... Определенно может использовать STLINK, USB был бы более удобным, учитывая, как настраивается моя доска (и не уверен, как я получил опцию IDE, я, должно быть, испортил, играя с конфигурацией)

Я также думал, что постоянная работа над вариантом dfuse ViewTopic.PHP?f = 3&t = 2508

Таким образом, USB на F4 можно использовать только в качестве USBERIAL, верно?

Rogerclark
Вторник 15 мая 2018 г. 5:43 утра
F4 Внутренний загрузчик - это dfuse

Но это не использует те же драйверы, что и F1 DFU или та же версия DFU util

Вам нужен драйвер и версия DFU, которая поддерживает DFUSE (собственные расширения STM)


Я думаю, что несколько человек пытались использовать его, но если у вас есть Stlink, это будет намного проще

Робка
Вторник 15 мая 2018 г. 22:56
Да, это имеет смысл. DFUSE также потребует перемещающихся прыгунов, так что не так хорошо, как я изначально думал

Знаете ли вы, что STLINK мелькает с помощью зонда Black Magic, можно использовать для вспышки, как Stlink от Arduino IDE? У меня есть только один stlink (другой на пути из Китая), и я не хочу мигать, пока я уверен. Было бы неплохо иметь возможность использовать один ключ для программы, отладка и получать последовательную связь

В противном случае я использую 2 Stlinks, один с оригинальной прошивкой для вспышки, другой с BMP для отладки (и, да, я знаю, что могу использовать OpenOcd с Stlink, но BMP, похоже, предлагает гораздо больше с нативным GDB). Или я мог бы перейти к Eclipse с CDT Arduino, что, как я думаю, позволяет использовать BMP

Rogerclark
Ср 16 мая 2018 г. 12:01
Я думаю, что есть версия BMP, которая создана для работы на ключевых ключах (используя их распину), однако вы должны посмотреть на репонирование Blacksphere GitHub или на их форуме с друтком и т. Д., Чтобы узнать, кто его написал и где его скачать или или Как это построить.

AG123
Сб 19 мая 2018 г., 18:44
[Робка - Вторник 15 мая 2018 г. 12:19] - Еще один вопрос, извините

Все еще пытаюсь заставить мою доску F4 работать. Я успешно собрал мигание и загрузил его на свою доску (https: // www.eBay.com/itm/stm32f4discove ... 2366085094) Использование Stlink. Все работает хорошо

Теперь я хотел использовать USB -порт, поэтому я установил «USB Serial (CDC)» и загрузчик STM32DUINO, но он всегда терпит неудачу с:
C:\arduino-1.8.5\portable\packages\stm32duino\tools\stm32tools\2018.5.11/win/maple_upload.bat COM16 2 1EAF:0003 C:\Users\Roberto\AppData\Local\Temp\arduino_build_80506/BlinkF4.ino.bin {upload.dfuse_addr} java.lang.UnsupportedClassVersionError: CliTemplate/CliMain : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: CliTemplate.CliMain. Program will exit. Exception in thread "main"

Pokemon99
Чт 24 мая 2018 12:47
Привет, я попробовал данную карту, и резервный регистр не работает для меня. Я пытаюсь

bkp_enable_writes ();
bkp_write (5, 0x5);
bkp_disable_writes ();
bkp_read (5) возвращает 0.

Любой регистр возвращает 0

Стивестронг
Чт 24 мая 2018 г., 13:19
Функции, которые вы упомянули, не должны работать для F4, резервные режимеры неправильно отображаются.

Pokemon99
Чт 24 мая 2018 г., 13:29
Я видел это в комментарии, но для F4 в комментарии не указан
/**
* @file libmaple/include/libmaple/bkp.час
* @brief Backup Register Support (только STM32F1).
*/
от F4
/**
* @file bkp.час
* @Brief Backup Register Support.
*/
Есть ли другая функция, которая позволяет использовать эти регистры?

Стивестронг
Чт 24 мая 2018 г., 13:33
Не то чтобы я знаю.

Но вы можете сделать запрос на привлечение, который решает вашу проблему.

Вассилис
Пт 22 июня 2018 г., 16:55
Сегодня я отправил запрос на привлечение, который исправляет граничный адрес резервного копирования
https: // github.com/rogerclarkmelbourne/ ... 79AD2B2721

Теперь резервное копирование Ram работает на STM32F407

Pokemon99
Пн 25 июня 2018 г., 5:52 утра
Спасибо!

michael_l
Чт 30 августа 2018 г. 8:29
Любой шанс вы можете добавить новый вариант: синий STM32407VET6 плата с 25 МГц ? Я мог бы также попытаться выяснить это, однако я не уверен, какие изменения и где нужно. Я могу проверить это

Стивестронг
Чт 30 августа 2018 г. 10:35 утра
Вариант generic_f407v_mini использует уже 25 МГц xtal частоту, проверьте платы.txt file.

michael_l
Чт 30 августа 2018 г., 10:59
Потрясающе, спасибо! Я попробую.

Еще один вопрос о том, как водитель может. Любая вероятность, которая может быть интегрирована (на основе работы других на этом форуме для STM32F103) в F4 ? Я был бы рад попробовать, но мне нужно некоторое руководство о том, как к нему подойти, и я могу проверить это также.

Я предполагаю, что первый интересный вопрос заключается в том, что может работать аппаратное обеспечение в F4 (одно мне достаточно) работать вместе с USB -сериалом ?

Стивестронг
Четверг 30 августа 2018 г. 15:06
Я не мог найти никаких ограничений в руководствах F4 в отношении одновременного использования USB и Can Can.

Тем не менее, я никогда не работал с CAN, и у меня нет HW, чтобы проверить, так что вы сами с этим, извините.

michael_l
Вторник 04 сентября 2018 г., 17:07
[Стивестронг - Четверг 30 августа 2018 г. 15:06] - Я не мог найти никаких ограничений в руководствах F4 в отношении одновременного использования USB и Can Can.

Тем не менее, я никогда не работал с CAN, и у меня нет HW, чтобы проверить, так что вы сами с этим, извините.
ОК, спасибо за информацию. Я сделаю это в ближайшем будущем !

michael_l
Вторник 04 сентября 2018 г., 19:29
[michael_l - Вторник 04 сентября 2018 г., 17:07] -
[Стивестронг - Четверг 30 августа 2018 г. 15:06] - Я не мог найти никаких ограничений в руководствах F4 в отношении одновременного использования USB и Can Can.

Тем не менее, я никогда не работал с CAN, и у меня нет HW, чтобы проверить, так что вы сами с этим, извините.
ОК, спасибо за информацию. Я сделаю это в ближайшем будущем !
Stevestrong: Нужна помощь в адаптации этой функции:

* @brief Set CAN to GPIO mapping */ CAN_STATUS can_gpio_map(CAN_Port* CANx, CAN_GPIO_MAP map_mode) { //rcc_clk_enable(RCC_AFIO); status = CAN_INIT_FAILED; if( CANx == CAN1_BASE) { switch(map_mode) { case CAN_GPIO_PB8_PB9: rcc_clk_enable(RCC_GPIOB); afio_remap(AFIO_MAPR_CAN_REMAP_PB8_PB9); gpio_set_mode(GPIOB, 8, GPIO_INPUT_FLOATING); gpio_set_mode(GPIOB, 9, GPIO_AF_OUTPUT_PP); break; #if NR_GPIO_PORTS >= 4 case CAN_GPIO_PD0_PD1: rcc_clk_enable(RCC_GPIOD); afio_remap(AFIO_MAPR_CAN_REMAP_PD0_PD1); gpio_set_mode(GPIOD, 0, GPIO_INPUT_FLOATING); gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP); break; #endif default: return status; } status = CAN_OK; } return status; }

Стивестронг
Вторник 04 сентября 2018 г., 21:51
Поместите PB8 в качестве первого параметра. Вторым будет режим GPIO.

Стивестронг
Ср. 05 сентября 2018 г., 7:31
@michael_i, я думаю, было бы иметь смысл открыть новую ветку, чтобы поддержать вас при разработке банки. Так что, пожалуйста, откройте новую тему в этой группе.

Стивестронг
Ср 12 сентября 2018 г. 13:02
Кан теперь работает, см http: // stm32duino.com/viewtopic.PHP?f = 3 ... 239#P49235 (Спасибо @michael_i!)

[Решен] FSMC LCD на STM32F407VET