Макбет
Пт 17 июня 2016 г., 13:35
Привет,
После прочтения 100 сообщений здесь я решил опубликовать свой собственный вопрос...
Я расположил 3 разных кленовых-клона-PCBS. Первые две доски запущены и работают. Но № 3 не сводит меня с ума, и я не могу найти ошибку.
Моя обычная процедура после пайки:
1) Flash Bootloader Generic_boot20_pa1.корзин с
После прочтения 100 сообщений здесь я решил опубликовать свой собственный вопрос...
Я расположил 3 разных кленовых-клона-PCBS. Первые две доски запущены и работают. Но № 3 не сводит меня с ума, и я не могу найти ошибку.
Моя обычная процедура после пайки:
1) Flash Bootloader Generic_boot20_pa1.корзин с
const byte ledPin=PB1;
boolean led;
void setup() {
pinMode(ledPin, OUTPUT);
// delay(1000);
}
void loop() {
long s;
int c=0;
long d;
bool broken=false;
while(!broken)
{
c++;
s=millis();
Serial.print("X");
d=millis()-s;
if (d >= 50)
{
broken=true;
}
// delay(100);
}
digitalWrite(ledPin,HIGH);
while(1)
{
Serial.println(c);
delay(500);
}
}
Ахулл
Пт 17 июня 2016 г. 15:18
У вас есть хрустальный генератор на доске? Осциллятор действительно делает что -нибудь?
На первый взгляд, похоже, что вы подключитесь и загружаете код OK, так что после загрузки кода происходит что-то странное, так что, возможно, внешний генератор не работает или не работает надежно, или штифты генератора повторно назначенный... или что -то вытаскивается, когда выписки распределяются... Какой именно код вы загружаете? * Точно ли * такая же работа кода составлена * точно так же на другой плате .. трудно отлаживать на основе предоставленной ограниченной информации. Как у вас есть boot0 и boot1 с перемычки? Вы правильно прошивали Bootloader2? Вы используете загрузчик?
На первый взгляд, похоже, что вы подключитесь и загружаете код OK, так что после загрузки кода происходит что-то странное, так что, возможно, внешний генератор не работает или не работает надежно, или штифты генератора повторно назначенный... или что -то вытаскивается, когда выписки распределяются... Какой именно код вы загружаете? * Точно ли * такая же работа кода составлена * точно так же на другой плате .. трудно отлаживать на основе предоставленной ограниченной информации. Как у вас есть boot0 и boot1 с перемычки? Вы правильно прошивали Bootloader2? Вы используете загрузчик?
Олли
Пт 17 июня 2016 г. 15:24
Моя рекомендация состоит в том, чтобы использовать бесплатный Embitz IDE вместе с устройством ST-Link для отладки SWD.
Другая альтернатива - посвятить некоторые булавки GPIO для внешнего отслеживания с помощью аварии или логического анализатора. На этом маршруте вы можете добавить ток для вашей платы для косвенных наблюдений.
Ура, Олли
Другая альтернатива - посвятить некоторые булавки GPIO для внешнего отслеживания с помощью аварии или логического анализатора. На этом маршруте вы можете добавить ток для вашей платы для косвенных наблюдений.
Ура, Олли
Mrburnette
Пт 17 июня 2016 г., 19:19
Ахулл написал:У вас есть хрустальный генератор на доске? Осциллятор действительно делает что -нибудь?
<...>
<...>
Rogerclark
Пт 17 июня 2016 г. 22:11
Были другие люди, сообщившие о подобных проблемах, но никто, кажется, не сработал, что происходит.
В другой ветке у кого -то были похожие проблемы, и он перекомпилировал загрузчик, используя старую версию GCC, и он, по -видимому, исправлял для них.
Но множество людей используют загрузчик, скомпилированный с GCC, упакованным с Arduino IDE, и у вас нет проблем.
Вы пытались стирать весь процессор. эн.g Использование программы USB -серийного адаптера и STS Flash Loader.
Я думаю, что STM32 поддерживает блокировку отдельных страниц Flash, поэтому есть вероятность, что у вашего процессора есть несколько страниц, заблокированных.
Кроме того, существует регистр параметров, который можно изменить с помощью программы Flash STM (или Stlink и т. Д.), И возможно, что один из других вариантов вызывает проблемы
В другой ветке у кого -то были похожие проблемы, и он перекомпилировал загрузчик, используя старую версию GCC, и он, по -видимому, исправлял для них.
Но множество людей используют загрузчик, скомпилированный с GCC, упакованным с Arduino IDE, и у вас нет проблем.
Вы пытались стирать весь процессор. эн.g Использование программы USB -серийного адаптера и STS Flash Loader.
Я думаю, что STM32 поддерживает блокировку отдельных страниц Flash, поэтому есть вероятность, что у вашего процессора есть несколько страниц, заблокированных.
Кроме того, существует регистр параметров, который можно изменить с помощью программы Flash STM (или Stlink и т. Д.), И возможно, что один из других вариантов вызывает проблемы
Макбет
Пн 20 июня 2016 г., 10:04
Спасибо за ваш вклад.
Я все еще в темноте...
Я проверил опционные биты, заблокированные страницы и т. Д... Кажется, все в порядке.
Я не думаю, что перекомпилирование загрузчика очень поможет. Bin-файл работает над моим другим дизайном.
Мысль о генераторе:
Я использую внешний генератор (XO53), подключенный к OSC_IN с OSC_OUT Left Unlired (HI-Z, как указано в спецификациях STM). Сигнал на OSC_IN выглядит нормально на прицеле (от 0,3 .. 3,2V). Я до сих пор не смотрел код загрузчика. Мне нужно изменить некоторые OSC-сеттинг?
Я не подумал, потому что загрузчик работает просто отлично на моих других досках (с тем же генератором). И загрузчик, кажется, работает, потому что он мигает светодиод (очень быстро после сброса, затем медленнее при 5 Гц).
Что я узнал, что я узнал:
У меня есть светодиод на PA1. Когда я использую generic_boot20_pa1.Бин, светодиод мигает, и я могу прошить свои программы через USB (но тогда они не начинаются).
Когда я использую одно из других двоичных файлов (e.глин. generic_boot20_pb7.bin) USB-Upload не работает (PB7 ни с чем не подключен). Почему???
У меня заканчиваются идеи. Может, я перенаправляю свою доску. У меня есть некоторые виды, очень близкие к булавкам STM, которые мне не нравятся. Но я хотел бы понять, что происходит первым
Я все еще в темноте...
Я проверил опционные биты, заблокированные страницы и т. Д... Кажется, все в порядке.
Я не думаю, что перекомпилирование загрузчика очень поможет. Bin-файл работает над моим другим дизайном.
Мысль о генераторе:
Я использую внешний генератор (XO53), подключенный к OSC_IN с OSC_OUT Left Unlired (HI-Z, как указано в спецификациях STM). Сигнал на OSC_IN выглядит нормально на прицеле (от 0,3 .. 3,2V). Я до сих пор не смотрел код загрузчика. Мне нужно изменить некоторые OSC-сеттинг?
Я не подумал, потому что загрузчик работает просто отлично на моих других досках (с тем же генератором). И загрузчик, кажется, работает, потому что он мигает светодиод (очень быстро после сброса, затем медленнее при 5 Гц).
Что я узнал, что я узнал:
У меня есть светодиод на PA1. Когда я использую generic_boot20_pa1.Бин, светодиод мигает, и я могу прошить свои программы через USB (но тогда они не начинаются).
Когда я использую одно из других двоичных файлов (e.глин. generic_boot20_pb7.bin) USB-Upload не работает (PB7 ни с чем не подключен). Почему???
У меня заканчиваются идеи. Может, я перенаправляю свою доску. У меня есть некоторые виды, очень близкие к булавкам STM, которые мне не нравятся. Но я хотел бы понять, что происходит первым
Rogerclark
Пн 20 июня 2016 г., 10:47
Какую частоту работают в ?
Макбет
Пн 20 июня 2016 г., 10:51
8.000 МГц
Rogerclark
Пн 20 июня 2016 г., 11:00 утра
Ммм
Вы пробовали загрузку с помощью USB на серийный.
Установите Boot0 на 1, убедитесь, что Boot1 не плавает высокой (потяните его низко)
Прикрепите USB к сериалу к USART1 TX и RX
Силовой цикл доска
Выберите STM32F103C8 и метод загрузки в качестве последовательного
Загрузите эскиз
Примечание. Если вы используете сериал.print () его следует отправлять через USART1, чтобы вы могли видеть сообщения отладки через USB в сериал
Вы пробовали загрузку с помощью USB на серийный.
Установите Boot0 на 1, убедитесь, что Boot1 не плавает высокой (потяните его низко)
Прикрепите USB к сериалу к USART1 TX и RX
Силовой цикл доска
Выберите STM32F103C8 и метод загрузки в качестве последовательного
Загрузите эскиз
Примечание. Если вы используете сериал.print () его следует отправлять через USART1, чтобы вы могли видеть сообщения отладки через USB в сериал
Макбет
Пн 20 июня 2016 г. 14:43
Хорошо. Мне пришлось сначала установить ваш Arduino Toolchain.
Когда я прошиваю простую программу без загрузчика (с «серийным»), доска работает. Я могу вспыхивать светодиоды и поговорить через USART. Большой!
Но мне нужен загрузчик, чтобы работать. Это все еще не работает, как раньше.
Я попробую еще раз
Когда я прошиваю простую программу без загрузчика (с «серийным»), доска работает. Я могу вспыхивать светодиоды и поговорить через USART. Большой!
Но мне нужен загрузчик, чтобы работать. Это все еще не работает, как раньше.
Я попробую еще раз
Макбет
Пн 20 июня 2016 г., 16:05
Просто чтобы убедиться...
Ваш "generic_boot20_pa1.bin "-bootloader ожидает, что пользовательский код будет на 0x8005000, справа?
Ваш "generic_boot20_pa1.bin "-bootloader ожидает, что пользовательский код будет на 0x8005000, справа?
Martinayotte
Пн 20 июня 2016 г. 16:53
Загрузчик 2.0 загружает эскизы на 0x8002000, (0x8005000 - оригинальный загрузочный загрузчик Leaflab)
См. VECT_TAB_ADDR в Arduino-1.6.5/hardware/arduino_stm32/stm32f1/щиты.текст.
А также в сценарии LD Arduino-1.6.5/armware/arduino_stm32/stm32f1/variants/maple_mini/ld/bootloader_20.лд
См. VECT_TAB_ADDR в Arduino-1.6.5/hardware/arduino_stm32/stm32f1/щиты.текст.
А также в сценарии LD Arduino-1.6.5/armware/arduino_stm32/stm32f1/variants/maple_mini/ld/bootloader_20.лд
Макбет
Пн 20 июня 2016 г., 19:19
Ну, я использую инструмент eClipse на коробке Linux.
Я пытался
Я пытался
// wait for serial monitor to be connected.
while (!(Serial.isConnected() && (Serial.getDTR() || Serial.getRTS())))
{
digitalWrite(33,!digitalRead(33));// Turn the LED from off to on, or on to off
delay(100); // fast blink
}
Макбет
Пн 20 июня 2016 г., 8:31 вечера
ОКОНЧАТЕЛЬНО!!
Я решил это. Конечно это было действительно просто. Но потом... Может быть, нет.
Глядя на конфигурацию.H В загрузчике я обнаружил, что кнопка определяется для каждой цели.
Я использовал target_generic_f103_pa1, который имеет PC14, определенную как кнопку.
Теперь мое оборудование использует подтягивание на PC14 (= D22 на Maple Rev3). Это пинает загрузчик в «вечный режим» каждый раз, когда начинается. Нет выхода!
Я должен был подумать об этом напрямую.
Мой быстрый& Грязный обходной путь: я определил кнопку в другом месте на булавке, который мне не нужен.
Было бы намного приятнее, если бы мы могли иметь общий #define has_button (например, has_maple_hardware).
Но это просто незначительная вещь, если смотреть на общую картину и отличную работу, которую вы здесь делаете! Большое спасибо за это!!
Я решил это. Конечно это было действительно просто. Но потом... Может быть, нет.
Глядя на конфигурацию.H В загрузчике я обнаружил, что кнопка определяется для каждой цели.
Я использовал target_generic_f103_pa1, который имеет PC14, определенную как кнопку.
Теперь мое оборудование использует подтягивание на PC14 (= D22 на Maple Rev3). Это пинает загрузчик в «вечный режим» каждый раз, когда начинается. Нет выхода!
Я должен был подумать об этом напрямую.
Мой быстрый& Грязный обходной путь: я определил кнопку в другом месте на булавке, который мне не нужен.
Было бы намного приятнее, если бы мы могли иметь общий #define has_button (например, has_maple_hardware).
Но это просто незначительная вещь, если смотреть на общую картину и отличную работу, которую вы здесь делаете! Большое спасибо за это!!
Rogerclark
Пн 20 июня 2016 г., 21:45
Кнопка для ввода вечного загрузчика определяется в загрузке, а не на эскизе, и вы можете изменить его или полностью удалить его
Если вы посмотрите в репо Bootloader в моей учетной записи GitHub, в конфигурации.h, все варианты MAKE TARGET определяются с использованием #IFDEFS
Одна или две цели не имеют определенных кнопок, и из того, что я помню, если он не определен, код предполагает, что кнопка нет
Просто сделайте свою новую цель Make и добавьте ее в конфигурацию.H и перекомпилируйте для вашей конкретной платы
Если вы посмотрите в репо Bootloader в моей учетной записи GitHub, в конфигурации.h, все варианты MAKE TARGET определяются с использованием #IFDEFS
Одна или две цели не имеют определенных кнопок, и из того, что я помню, если он не определен, код предполагает, что кнопка нет
Просто сделайте свою новую цель Make и добавьте ее в конфигурацию.H и перекомпилируйте для вашей конкретной платы
Макбет
Вт 21 июня 2016 г., 6:12
Спасибо за вашу помощь здесь!
Это то, что я сделал вчера вечером. Я скомпилировал свой собственный загрузчик с фиктивным штифтом.
Я постараюсь скомпилировать без определения кнопок сегодня. Но сейчас я счастлив.
Это то, что я сделал вчера вечером. Я скомпилировал свой собственный загрузчик с фиктивным штифтом.
Я постараюсь скомпилировать без определения кнопок сегодня. Но сейчас я счастлив.
Rogerclark
Вт 21 июня 2016 г., 7:03
Макбет написал:Спасибо за вашу помощь здесь!
Это то, что я сделал вчера вечером. Я скомпилировал свой собственный загрузчик с фиктивным штифтом.
Я постараюсь скомпилировать без определения кнопок сегодня. Но сейчас я счастлив.
Это то, что я сделал вчера вечером. Я скомпилировал свой собственный загрузчик с фиктивным штифтом.
Я постараюсь скомпилировать без определения кнопок сегодня. Но сейчас я счастлив.