Проблема Analogread ()

Томатл
Пт 22 января 2016 г., 8:56 вечера
Привет, ребята!

Когда я читаю одну аналоговую булавку, все выглядит нормально.
Но когда я пытаюсь читать булавки в последовательности, например:
void setup() { Serial.begin(115200); // Ignored by Maple. But needed by boards using hardware serial via a USB to Serial adaptor for (int i=0; i < 8; i++) pinMode(i, INPUT_ANALOG); delay (5000); } void loop() { for (int i=0; i < 8; i++) { Serial.print(analogRead(i), DEC); Serial.print(' '); } Serial.println(); }

Mrburnette
Сб 23 января 2016 г. 18:08
@Tomatlab:
Добро пожаловать.

Итак, я иду на «старую» мини -документацию Maple Leaflabs и предоставляю следующий эскиз, который работает, как я и ожидал:
/* hacked by Ray Burnette to loop through eight analog values A0 through A7 Board view: http://letsmakerobots.com/files/maplemini2.jpg Quote from old Maple Mini doc by Leaflabs "Maple Mini has an electrically isolated analog power plane with its own regulator, and a geometrically isolated ground plane, connected to the digital plane by an inductor. Its analog input pins, D3 — D11, are laid out to correspond with these analog planes, and our measurements indicate that they generally offer low noise ADC performance. However, analog performance may vary depending upon the activity of the other GPIOs. Consult the Maple Mini hardware design files for more details." */ int aValue ; int settlingmS = 5000; void setup() { // Configure the ADC pins for (int x =3; x < 12; x++) { pinMode(x, INPUT_ANALOG); } delay(settlingmS); } void loop() { for ( int analogInPin = 3; analogInPin < 12; analogInPin++) { // read the analog in value: aValue = analogRead(analogInPin); // print the results to the serial monitor: Serial.print("Analog pin#"); Serial.print(analogInPin); Serial.print("\t = "); Serial.println(aValue); } delay(settlingmS); } /* Sample console output: Analog pin#3 = 2009 Analog pin#4 = 2061 Analog pin#5 = 2077 Analog pin#6 = 2536 Analog pin#7 = 2678 Analog pin#8 = 2681 Analog pin#9 = 2697 Analog pin#10 = 2135 Analog pin#11 = 1984 */

Rogerclark
Сб 23 января 2016 г., 20:42
Я не добрался до ответа на оригинальный пост, но мне было интересно, можно ли использовать все булавки, которые вы использовали в качестве аналоговых выводов.

Я также не уверен, может ли у STM32 так много контактов одновременно в качестве аналоговых входов.

STM32 - это фантастически гибкое и мощное устройство, но некоторые комбинации конфигураций (на самом деле многие комбинации), вероятно, не будут работать из -за внутренних конфликтов шины в чипе.

Вам, вероятно, нужно скачать руководство по программированию RM0008 с сайта STMS и подробно рассмотреть, как это работает.

ZMEMW16
Сб 23 января 2016 г. 8:48 вечера
Интересно, является ли пост со ссылками на основную ST F1, F4 & F7 REF и PROG Руководства будут полезны?
6 ссылок?
Потянуть документы, чтобы быть локальными, может быть или не может быть разрешена или быть слишком разумной?

SRP

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

Я пошел на рейд, искал каждый из STMF1, STM32F4 и STM32F7; засел источник таблицы, который он дает вам из поиска.
ОК, может быть, излишний, потеряв STM32F100/101/102 и т. Д. И т. Д., PLS сохраните 107, так как у меня есть некоторые: D
Я добавлю это как Zip 4.5K, около 100 тыс. Несомненно.
STM32F1X.молния
(4.04 KIB) скачано 350 раз

Rogerclark
Сб 23 января 2016 г. 8:50 вечера
Вероятно, нужно сделать поток FAQ

Mrburnette
Сб 23 января 2016 г. 8:52 вечера
ZMEMW16 написал:Интересно, является ли пост со ссылками на основную ST F1, F4 & F7 REF и PROG Руководства будут полезны?
6 ссылок?
Потянуть документы, чтобы быть локальными, может быть или не может быть разрешена или быть слишком разумной?

SRP

Mrburnette
Сб 23 января 2016 г. 8:52 вечера
Думаю, мы могли бы также вставить мой аналоговый пример в примеры GitHub. Из всего, что я сделал, мне не удалось сделать один аналог.

Луча

Томатл
Сб 23 января 2016 г. 11:07
Хм... Я пробую это на STM "Maple Mini Clone" и "Blue Pill" - все работает ОК.
Если я нанесу какое -то напряжение на какой -то аналоговый штифт - я могу прочитать это напряжение на этом выводе. На количестве аналогового штифта в последовательности...
Но на Г.Д Если я попробую последовательное чтение, я получу два первых показания и одно и то же значение на аналоговом канале 0 и 1, а затем «Свернутые» показания.
На напряжении чтения PA0 применяется PA7
На напряжении чтения PA1 применительно на PA0
На напряжении чтения PA2 применяется PA1
и т. д...

И я потратил некоторое время, чтобы справиться с сопоставлением булавок, нумерацией и именованием, и я понимаю разницу между «Maple Mini», «Blue/Red Pill» и другими, я надеюсь :)

Rogerclark
Сб 23 января 2016 г. 11:14
Извини..

Вы используете GD32 или STM32 ?

Томатл
Сб 23 января 2016 г. 11:17
Это именно то, что все работает на STM, и на «GD» - не.
У меня есть "зоопарк" досок :)

Mrburnette
Сб 23 января 2016 г. 11:45 вечера
Tomatlab написал:Это именно то, что все работает на STM, и на «GD» - не.
У меня есть "зоопарк" досок :)

Rogerclark
Солнце 24 января 2016 г. 12:01
Ммм

Предполагается, что GD совместим с STM32, но я не проверял все функциональные возможности

Определенно есть некоторые различия, но я не знал о каких -либо вещах, связанных с АЦП.

Это может быть оборудование доски, это проблема, вы можете опубликовать ссылку на свою доску

Томатл
Солнце 24 января 2016 г., 11:44
Моя доска GD32
Любой цифровой чтение/запись работает правильно, а также один аналоговый канал тоже один аналоговый канал. Это аналоговая проблема MUX, IMO.

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

Rogerclark
Солнце 24 января 2016 г., 21:23
Я постараюсь запустить ваш эскиз сегодня вечером.

КСТАТИ. На форуме есть отдельная ветка для GD32, так как он, похоже, имеет некоторые различия с STM32

Мне не удалось работать SPI, когда я подключил его к дисплею ILI9341.
Но это может быть просто проблема проводки.

КСТАТИ. Afik, только 4 человека на этом форуме имеют доску GD32, включая меня и вас.

Томатл
Пн 25 января 2016 г., 7:58 утра
Rogerclark написал:Я постараюсь запустить ваш эскиз сегодня вечером.

Rogerclark
Пн 25 января 2016 г., 22:26
Спасибо за тестирование SPI

Я рад, что у меня только что была ошибка проводки.

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

Мне нужно выяснить, какой PIN -код, если таковые имеются, я назначил в качестве вечного загрузчика включить PIN -код на GD32



Так что мне нужно будет вернуться к вам, когда это сработает

Пса. Я даже не знаю, смогу ли я загрузить на Maple Mini :-(

Rogerclark
Вт 26 января 2016 г. 3:22 утра
Я попробовал эскиз на GD32 и попытался вытащить каждый булавку в GND, индивидуально, и это было хорошо.

Странное, однако, что для чтения PA0 (PIN 0) я должен подключить GND к PA7, а PIN 1 - PA0 PIN 2 - PA1 и т. Д., I.E все это сдвинулось по собственному.

Я посмотрел на карту штифтов, и номер канала АЦП определяется правильно, я.E -канал 0 - это PA0, но это не то, что читает код.

Я не пробовал это на красной таблетке, чтобы увидеть, имеет ли у нее такой же эффект или даже на Maple Mini, обращаясь к PIN.E PA0

Код, который читает АЦП, довольно прост
adc_reg_map *regs = dev->regs; adc_set_reg_seqlen(dev, 1); regs->SQR3 = channel; regs->CR2 |= ADC_CR2_SWSTART; while (!(regs->SR & ADC_SR_EOC)) ; return (uint16)(regs->DR & ADC_DR_DATA);

Томатл
Вторник 26 января 2016 г. 13:37
Спасибо, Роджер!
Я также постараюсь провести несколько экспериментов.
Тем временем для меня еще не очень важно. Но я думаю, что эта проблема должна быть как -то очищена, ИМО.

Я играл с библиотекой Modbus, которая была предоставлена ​​Андре Сарменто, записывая значение из аналоговых входов в регистры Modbus в цикле.
И все работает совершенство на Arduino mini & Причитание, STM32 Maple Mini & Синие таблетки со стилем кода ардуиноиса, но с GD Board я получаю это «удивление» :)

Мне нравится стиль ардуиноиса для портативности и единообразия кода.
У меня есть идея построить несколько датчиков и приводов для небольшой домашней автоматизации, как и в промышленных распределенных системах. На различных платформах, в зависимости от нагрузки.

Rogerclark
Вторник 26 января 2016 г., 19:54
Привет, томатлаб

К сожалению, есть странная проблема на моем GD32. USB -сброс не работает на моем новом компьютере.

Я попробовал Old Core I5 ​​PC и GD32 сбрасывает шину USB, но на новой машине Core i7 (Skylake Chipset) она не сбрасывает USB.

Я попробовал различные подтягивающие резисторы на PA12, в том числе 1.5, 1K и 2K, но это не имело никакого значения.

Я попробовал общую плату STM32F103V, которая имеет 1.5K подтягивание на USB, на моей новой машине, и это работало нормально.

Я думаю, что, возможно, GD32 не нажимает на PA12 надолго на долгое время. Мне нужно будет восстановить загрузчик с более длинной задержкой и попробую еще раз

Где купить gd32f103