Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автономный Контроллер Чпу (stm32f103)
Все о станках с ЧПУ > Станки с ЧПУ, Hobby CNC > Электронные компоненты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
AlexSFA
Исходники, кому интересно. Некоторые ошибки поправлены, какие нашел
Сообщение отредактировал mm.Mike - 2.6.2013, 3:37


Спасибо!
BosniaCNC
mmMike,
how I can turn off encoder in version 2? I have closed loop servo-driver with differential A and B signal. Can the encoder off in the editor with "//" comment line?
-----------------------------------
#include "limits.h"
//#include "scan.h"
//#include "encoder.h"

-----------------------------------
Greeting !
mm.Mike
Цитата(BosniaCNC @ 20.6.2013, 21:05) *
mmMike,
how I can turn off encoder in version 2? I have closed loop servo-driver with differential A and B signal. Can the encoder off in the editor with "//" comment line?
-----------------------------------
#include "limits.h"
//#include "scan.h"
//#include "encoder.h"

-----------------------------------
Greeting !


encoder.h
//#define HAS_ENCODER

mm.Mike
http://youtu.be/iq8M-esM4QQ

Не к месту, но захотелось показать, для чего в частности ЧПУ делал smile.gif :) Замучился бы руками все вырезать.
Все доделал. Опять скучно. Чем бы еще занятся.

Посылка с энкодерами через 3 месяца появилась по трекин году в России. На черепах везут, не иначе!
BosniaCNC
How to implemented joystick manual control?Sometimes it is necessary for the rapid shifting of the axis.
smile.gif
Anatol1
Цитата(mm.Mike @ 20.6.2013, 18:26) *
http://youtu.be/iq8M-esM4QQ

Не к месту, но захотелось показать, для чего в частности ЧПУ делал smile.gif :) Замучился бы руками все вырезать.
Все доделал. Опять скучно. Чем бы еще занятся.

Посылка с энкодерами через 3 месяца появилась по трекин году в России. На черепах везут, не иначе!

Моя посылка с платой и дисплеем шла 68 дней какими то хитрыми петлями - 3дня по китаю, 56дней до Брянска
4 дня кружила в Ростове и 8 дней гуляла по Таганрогу, а потом всё таки отдали.
Но радости мало, прислали, в общем то более дорогую вещь.
Дисплей V3, с тачскрином. А диск с докой сплошные кракозябры, ну ни одной буквы.
И вот теперь как собака на сене
mm.Mike
Цитата(BosniaCNC @ 21.6.2013, 5:05) *
How to implemented joystick manual control?Sometimes it is necessary for the rapid shifting of the axis.
smile.gif


I have no plan to use joystick. I used a keyboard (for my 300x200x120mm CNC)
BosniaCNC
Цитата(mm.Mike @ 21.6.2013, 17:13) *
I have no plan to use joystick. I used a keyboard (for my 300x200x120mm CNC)


Yes, it is easier to press the button!
rolleyes.gif
AlexSFA
Встретил странный баг: на некоторых наборах g-code программа останавливается (не зависает, а просто останавливается). При этом если продолжить выполнение (нажав на паузу и сняв с нее), то продолжает пилить, но со сбоем (реже что попало и куда попало). Пример такого файла здесь https://dl.dropboxusercontent.com/u/99058597/tiger03.ngc. Останавливается стабильно на одном и том же месте (на экране строки 3072, 3073). Есть идеи что это может быть?
mm.Mike
Цитата(AlexSFA @ 23.6.2013, 18:22) *
Встретил странный баг: на некоторых наборах g-code программа останавливается (не зависает, а просто останавливается). При этом если продолжить выполнение (нажав на паузу и сняв с нее), то продолжает пилить, но со сбоем (реже что попало и куда попало). Пример такого файла здесь https://dl.dropboxusercontent.com/u/99058597/tiger03.ngc. Останавливается стабильно на одном и том же месте (на экране строки 3072, 3073). Есть идеи что это может быть?

Версия 2 или начальна?

Если 1-я, то я то же с этим столкнулся и..
Цитата(mm.Mike @ 5.6.2013, 19:19) *
...
2. Странный глюк (gcc?). На некоторых данных в старом варианте fxyze[i] становилось = 0. Ооочень редко. один раз поймал. Но стал добавлять отладку и изменил выражение - глюк исчез. Но от чего так и не разобрался сразу, а потом и не вернулся к этому.
***** gcode_exec.c
// if(abs_dxyze[n] > 20) {
// for(i = 0; i < 4; i++) fxyze[i] = (uint32_t)((uint64_t)f * (uint64_t)abs_dxyze[i]/abs_dxyze[n]);
if(abs_dxyze[n] > 10) {
for(i = 0; i < 4; i++)
if(i != n) {
fxyze[i] = (uint32_t)(((uint64_t)f * (uint64_t)abs_dxyze[i])/abs_dxyze[n]) +1; //+1 for debug
}
}


Если не поможет - то не знаю. С другими проявлениями подобными не сталкивался. Хотя тот баг проявлялся по другому. Притормаживает (нулевая скорость все одно не допускается и заменяется на минимальную константную), а потом идет дальше но без всяких потерь координаты.

Если это не то, то завтра/послезавтра погоняю проверю. С другими типами глюков не сталкивался..



mm.Mike
Цитата(AlexSFA @ 23.6.2013, 18:22) *
Встретил странный баг: на некоторых наборах g-code программа останавливается (не зависает, а просто останавливается). При этом если продолжить выполнение (нажав на паузу и сняв с нее), то продолжает пилить, но со сбоем (реже что попало и куда попало). Пример такого файла здесь https://dl.dropboxusercontent.com/u/99058597/tiger03.ngc. Останавливается стабильно на одном и том же месте (на экране строки 3072, 3073). Есть идеи что это может быть?

Заинтриговало.. Файл оказался маленький на 10 минут выполнения.
Только что закончил холостой прогон "по воздуху" морды зверя :)

У меня все сработало без сбоев и до конца. Прошивка сейчас загружена именно та, которую я выкладывал последней (V2) с ее настройками ускорений по умолчанию (и скомпиленным кодом энкодера)
Пришлось только строку с M7 удалить из g-code файла. Для чистоты эксперимента ничего не перекомпилял, а в текущей прошивке такую экзотику не предусмотрел (M7). Но удаление этой строки не должно было никак сказаться.

Так что увы.. наверное это наведенка, связанная с Вашей модификацией кода.
По симптомам, я бы предположил порчу стека или еще что..
На всякий случай уточню. Проц тот же? Если нет, то в файл stm32f103vbt6_rom.ld нужные изменения внесли?
flash (rx) : ORIGIN = 0x08000000, LENGTH = 512K
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
Если с этим все в порядке - тогда даже не знаю. Не получилось повторить.


Латунь пробуете? Я все не рискну.. Шпиндель жалко.
BosniaCNC
Цитата(AlexSFA @ 23.6.2013, 13:22) *
Встретил странный баг: на некоторых наборах g-code программа останавливается (не зависает, а просто останавливается). При этом если продолжить выполнение (нажав на паузу и сняв с нее), то продолжает пилить, но со сбоем (реже что попало и куда попало). Пример такого файла здесь https://dl.dropboxusercontent.com/u/99058597/tiger03.ngc. Останавливается стабильно на одном и том же месте (на экране строки 3072, 3073). Есть идеи что это может быть?


Нажмите для просмотра прикрепленного файла

Deleted "M7" and OK! Work time 00:11:12 .

rolleyes.gif
AlexSFA
Поддержку кода М7 я добавил, так что дело не в нем. Скачал V2. Собрал без изменений (только сигналы настроил под свою плату). Программа теперь не останавливается, но при подключении к станку иногда начинаются глюки в виде произвольных отклонений от траектории (в основном по оси Х). Из 5ти попыток успешно прошел всю программу только 3 раза. Еще есть глюк с экраном: иногда картинка съезжает (рассыпается). Лечится многократным ресетом. Контроллер такой http://www.aliexpress.com/snapshot/230708253.html

С железом станка все ровно, т.к. на ЕМС2 все отлично работает.
voha6
Цитата(AlexSFA @ 24.6.2013, 9:16) *
Поддержку кода М7 я добавил, так что дело не в нем. Скачал V2. Собрал без изменений (только сигналы настроил под свою плату). Программа теперь не останавливается, но при подключении к станку иногда начинаются глюки в виде произвольных отклонений от траектории (в основном по оси Х). Из 5ти попыток успешно прошел всю программу только 3 раза. Еще есть глюк с экраном: иногда картинка съезжает (рассыпается). Лечится многократным ресетом. Контроллер такой http://www.aliexpress.com/snapshot/230708253.html

С железом станка все ровно, т.к. на ЕМС2 все отлично работает.

Будь другом, выложи на какой-нибудь файлообменник содержимое CD диска, который шел с этим контроллером. Ко мне диск пришел коцнутый не читается.
mm.Mike
Цитата(AlexSFA @ 24.6.2013, 12:16) *
Поддержку кода М7 я добавил, так что дело не в нем. Скачал V2. Собрал без изменений (только сигналы настроил под свою плату). Программа теперь не останавливается, но при подключении к станку иногда начинаются глюки в виде произвольных отклонений от траектории (в основном по оси Х). Из 5ти попыток успешно прошел всю программу только 3 раза. Еще есть глюк с экраном: иногда картинка съезжает (рассыпается). Лечится многократным ресетом. Контроллер такой http://www.aliexpress.com/snapshot/230708253.html

С железом станка все ровно, т.к. на ЕМС2 все отлично работает.


Если несколько попыток дают разный результат, то это не программный глюк. Чай не Windows, а программа вообще без OS. Т.е. повторяемость в работе после вкл/выкл должна быть 100%.

Очень рекомендую проверить питание платы. У меня питание заведено от отдельного понижающей платы DC-DC c 24V в 3.3V c хорошим танаталовым конденсатором на выходе.
mm.Mike
STM32 довольно чувствительны к питанию.
Ни в коем случае нельзя запитывать от 5V платы с TB6560.
Та мало того, что линейный преобразователь стот (просто не потянет), так еще и такой уровень пульсаций, что не понятно как вообще все это работает.
Но TB6560 работает blink.gif

Не знаю, конечно какя у вас плата, но я, к примеру, сделал сразу:
- отдельное питание сразу 3.3 V (в обход стабилизатора на плате STM32)
- выкинул оптороны (поставил перемычки) на плате с TB6560

Проблем с нестабильностю нет. Фронты сигналов на входах TB6560 четкие и не завалены
AlexSFA
Цитата(voha6 @ 24.6.2013, 11:45) *
Будь другом, выложи на какой-нибудь файлообменник содержимое CD диска, который шел с этим контроллером. Ко мне диск пришел коцнутый не читается.


Завтра выложу. Диск на работе. А во Владивостоке уже ночь :-)
AlexSFA
Цитата(AlexSFA @ 24.6.2013, 16:11) *
Завтра выложу. Диск на работе. А во Владивостоке уже ночь :-)


Лови ссылку на диск https://dl.dropboxusercontent.com/u/18655828/STM32%20KU.zip
voha6
Цитата(AlexSFA @ 25.6.2013, 2:37) *

Спасибо! Выручил.
BosniaCNC
Silencing the discussion! Overheated STM32 at the summer heat!
rolleyes.gif
kurikat
И все-таки какую же плату выбрать.
Есть вариант, такой же как у mm.Mike (именно v2.1) - http://www.aliexpress.com/item/Fighter-STM.../474620966.html , но продавец почему то один с такой платой, у остальных в большинстве случаев либо с меньшим количеством памяти, либо с 4 кнопками, хотя и их есть несколько версий.
Еще вычитал, что у других получилось заставить работать с этой прошивкой вот такую четырехкнопочную платку - http://www.aliexpress.com/item/Free-shippi.../629240543.html , но так и не понял - удалось завести с перенастройками или просто залив готовую прошивку?
Вобщем, стоит ли гоняться за четрыхкнопочными платами или взять проверенную mm.Mike v2.1 (кстати, еще не факт, что продавец пришлет именно v2.1).

mm.Mike писал, что у него питание заведено от отдельного понижающей платы DC-DC c 24V в 3.3V c хорошим танаталовым конденсатором на выходе.
Подойдет такой преобразователь? - http://www.aliexpress.com/item/LM2596-Step.../747815557.html
Хочу запитать эту плату с того же БП(27 вольт), что и остальная электроника станка. Или может какой другой посоветуете?
mm.Mike
Цитата(kurikat @ 14.7.2013, 5:46) *
И все-таки какую же плату выбрать.

Под любую другую плату нужно программу модифицировать под другие ножки. Если есть представление (хотя бы элементарные) о контроллерах и умение читать доки на английском это на 20-30 минут от силы.


Я сейчас занялся 3d принтером. И решил попробовать впихнуть прошивку в плату с STM32F103RBT6(валяется без дела).
Прошивка влезла (путем усекновения буфера под список файлов и пр.) и заработала (ну и по мелочи драйвер экрана и SD на 10 минут замены файлов).
Но вот только ножек у этого проца под клавиатуру и управления шаговиками не хватает. А переделывать управление на сенсорный экран - считаю очень неудобным в использовании.
Жду теперь ту же плату что и на станке. От добра добра не ищут...

Цитата(kurikat @ 14.7.2013, 5:46) *
mm.Mike писал, что у него питание заведено от отдельного понижающей платы DC-DC c 24V в 3.3V c хорошим танаталовым конденсатором на выходе.
Подойдет такой преобразователь? - http://www.aliexpress.com/item/LM2596-Step.../747815557.html
Хочу запитать эту плату с того же БП(27 вольт), что и остальная электроника станка. Или может какой другой посоветуете?

У меня сборка на макетной плате на мелкосхеме(там обвязка проста) LM2596-5. Кстати, ввел в заблуждение. У меня DC-DC c 24V в 5V (что под рукой было).
Только рекомендую вариант LM2596-5, а не LM2596-ADJ. Хотя.. разницы принципиальной нет. Меньше риск ошибки с выставлением вых напр.
LM2596-5 50 руб стоит в магазине радиодеталей.. смысл из китая заказывать.
А танаталовый конденсатор.. ну валялись еще советские из военной техники :) Наверное и обычне электролиты пойдут.
Так что, если лень самому спаять, то эта плата пойдет
kurikat
Цитата(mm.Mike @ 14.7.2013, 15:41) *
Под любую другую плату нужно программу модифицировать под другие ножки. Если есть представление (хотя бы элементарные) о контроллерах и умение читать доки на английском это на 20-30 минут от силы.

К сожалению ни с микроконтроллерами, ни с программированием на c/c++ дел не имел. Правда умею программировать на PHP на уровне несложных скриптов и работы с MySQL (народ пишет, что синтаксис у PHP и C/C++ похожи немного).

Цитата(mm.Mike @ 14.7.2013, 15:41) *
Меньше риск ошибки с выставлением вых напр.

В чем заключается риск? Подключил к БП, ткнул щупы в выходные клеммы и резистором выставил нужное напряжение.
Или я думаю неправильно? Может еще под нагрузкой придется калибровать Uвых?
С dc-dc преобразователями дел не имел.

З.Ы. Кстати. Посмотрел видео на ютубе про осциллограф - https://www.youtube.com/watch?v=JQhHKdDDgM0
Там же на ютубе ссылка на их сайт имеется. На сайте разработчик пишет, что исходники раздает свободно, но при обращении по мылу.
Как я понял из характеристик, это аналог DSO203. А DSO203 вроде бы сделан на STM32F103VCT6.
Интересно, прошивку от DSO203 в STM32F103VET6 можно залить(еще бы тачскрин приспособить)? Это же какая экономия получится: DSO203 стоит в Китае - 140$, а STM32F103VET6 - 37$
mm.Mike
Цитата(kurikat @ 14.7.2013, 19:34) *
К сожалению ни с микроконтроллерами, ни с программированием на c/c++ дел не имел. Правда умею программировать на PHP на уровне несложных скриптов и работы с MySQL (народ пишет, что синтаксис у PHP и C/C++ похожи немного).

Мне кажется, что особо ничего сложного в переназначении ног проца нет.. Синтаксис у всех языков программирования похож в обчщем (в очень общем :)))

Цитата(kurikat @ 14.7.2013, 19:34) *
В чем заключается риск? Подключил к БП, ткнул щупы в выходные клеммы и резистором выставил нужное напряжение.
Или я думаю неправильно? Может еще под нагрузкой придется калибровать Uвых?
С dc-dc преобразователями дел не имел.

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


Цитата(kurikat @ 14.7.2013, 19:34) *
З.Ы. Кстати. Посмотрел видео на ютубе про осциллограф - https://www.youtube.com/watch?v=JQhHKdDDgM0
Как я понял, это аналог DSO203. А DSO203 вроде бы сделан на STM32F103VCT6.
Интересно, прошивку от DSO203 в STM32F103VET6 можно залить(еще бы тачскрин приспособить)? Это же какая экономия получится: DSO203 стоит в Китае - 140$, а STM32F103VET6 - 37$

А в этом ролике автор внешний АЦП пользует. А он как бы не дороже чем все остальное вместе взятое (на эту частоту). Да и хрен достанеш нормальный АЦП. Знаю.. проходил все это когда с металлоискателями баловался.

В DSO же используется ADC(АЦП) самого контроллера. А это только фактически до 100-150кГц.
$140 - это оборзели. Я себе такой "пробник" осцилографический (удобен однако) за $80 брал.
А если аналог собирать, то это еще к $37 +МИНИМУМ $30-40 на рассыпуху (ОУ и пр. + корпус+разъем+кабель+аккумулятор).
Знаю :)) Делал металлоискатель с цифровой обработкой сигнала. Тот же осцилограф в одном из режимов.

kurikat
Цитата(mm.Mike @ 14.7.2013, 17:28) *
$140 - это оборзели. Я себе такой "пробник" осцилографический (удобен однако) за $80 брал.

За 80$ Вы наверное DSO201 брали, у него характеристики поскромнее будут, чем у DSO203.

Спасибо за ответы, ушел трясти продавца на Али, чтобы он мне гарантировал выслать плату именно v2.1.
mm.Mike
Цитата(kurikat @ 14.7.2013, 20:39) *
За 80$ Вы наверное DSO201 брали, у него характеристики поскромнее будут, чем у DSO203.

Спасибо за ответы, ушел трясти продавца на Али, чтобы он мне гарантировал выслать плату именно v2.1.

Да именно старое (еще opensource как кода, так и схемы) АЦП 103-й серии. 12бит, 1MSPS - честный пробник на звуковую частоту.

DSO203 с его 40MSPS AD9288 - это не то ни се. 8 бит разрешения.. Хотя, если нет нормального осциллографа...

С e-bay:
5. The AD9288-40 Overclocking to achieve 72M+72M sampling frequency, so that the maximum single-channel sampling rate up to 144M.
6. Analog channel circuit using unity gain> 150MHz op amp, so the actual 30MHz analog bandwidth is expected to do more.

Ох блин китайцы... А кто то и за характеристики примет :) 30Мгц.. 144MSPS.
Типа как нормальный цифровой осцил за $2000... biggrin.gif
Хотя напрямую откровенно не врут, а просто не вдаются в детали, а в результате аж глаз режет, когда читаешь!
kurikat
Откровенно врут только неопытные китайцы.
Те, кто давно торгует - врут умеючи.
Заказал, китаец пишет, что мамой клянется пришлет именно v2.1.

З.Ы. Хотя странный китаец, у нас пол одиннадцатого вечера, значит у них пол третьего ночи.
Круглосуточная техподдержка, видимо.
Molchyn
Цитата(mm.Mike @ 14.7.2013, 15:41) *
Я сейчас занялся 3d принтером. И решил попробовать впихнуть прошивку в плату с STM32F103RBT6(валяется без дела).
Прошивка влезла (путем усекновения буфера под список файлов и пр.) и заработала (ну и по мелочи драйвер экрана и SD на 10 минут замены файлов).

Очень интересно посмотреть на код (у меня тоже есть такая )
Кстати, на кикстартере есть немало проэктов 3д принтеров, которые успешно развиваются.
Например:
RigidBot
ili
Booccaneer
mm.Mike
Цитата(Molchyn @ 14.8.2013, 14:34) *
Очень интересно посмотреть на код (у меня тоже есть такая )

Код сдесь же (ранее выкладывал). Под эту плату только буфер под список файлов урезал и все влезло.
Но ножек на ней очень мало свободных. Т.е. вообще мало.

Цитата(Molchyn @ 14.8.2013, 14:34) *
Кстати, на кикстартере есть немало проэктов 3д принтеров, которые успешно развиваются.


Меня не интересует 3D принтер как результат :) Иначе бы просто купил.

Только процесс... biggrin.gif

Выложу промежуточный результат в новой теме.
Alexey-73
Доброго времени Всем...

Прочитал данную ветку возникло ряд вопросов
Извиняюсь если это глупые вопросы но все же...

1.Как данное устройство приобретается на Е-вау?
2.Как данное устройство настраивается через какую программу или внутри самого устройства?
3.Если выходные сигналы S\D то можно любой контроллер повесить L297-298 или какое то предпочтение есть?
4.Можно ли этой системой управлять двигатели постояного тока если есть энкодер?
5.Какие сложности могут возникнуть для новичка?Если человек начинает заниматься в первые

За ранее благодарен с уважением Алексей
kurikat
Итак.
Приехал ко мне сегодня это контроллер.
Я заказывал именно такой же, как у mm.Mike - с надписью на плате Board v2.1, чтобы не ковыряться в настройках, а просто скомпилировать и залить прошивку.
Воткнул я в него прилагаемый usb кабель, второй конец воткнул в системник, посмотрел на демку.
Далее:
- создал папку C:\eclipse
- распаковал туда архивы, представленные в первом посту - http://www.cnczone.ru/forums/index.php?s=&...ost&p=34792
- далее открыл c:\eclipse\eclipse_arm\eclipse.exe, понял что ничего не понимаю, закрыл, стал читать ветку внимательнее на предмет наступания на мои грабли
- нашел то, что можно скомпилировать из командной строки, для этого делаем следующее
- прописываем в PATH путь до файла make.exe, для этого (в Windows 7) правой кнопкой мыши жмем на "Компьютер" - "Свойства" - "Дополнительные параметры системы" - "Переменные среды" - Во втором окошке с надписью "Системные переменные" крутим ползунок до "Path", тыкаем в него, потом жмем "Изменить" и в окошке "Значение переменной" в конце всех имеющихся там значений добавляем
Код
;c:\eclipse\bin\
(точку с запятой перед диском C нужно ставит обязательно, ибо это есть разделитель)
- далее жмем везде "ОК" и перезагружаем компьютер, чтобы изменения пришли в силу
- потом распаковываем в папку c:\eclipse\cnc_workspace\cnc\ и заменяем старые файлы содержимым из этого архива - http://www.cnczone.ru/forums/index.php?s=&...ost&p=36892
- далее тычем в пуск и в окошке пишем cmd, откроется командная строка
- в ней пишем cd c:\ потом cd c:\eclipse\cnc_workspace\cnc\ далее пишем make и, если все сделано правильно, то начнется компиляция

А вот дальше надо это дело заливать в контроллер, но как это делать - я не знаю.
Подскажите, я же в свою очередь буду описывать процесс пошагово здесь же, чтобы такие как я могли пошагово, следуя инструкции, довести до ума начатое.
У меня есть в наличии USB - UART, но, честно говоря, не хотелось бы возиться с проводами, может этот контроллер возможно прошить используя microSD?
Molchyn
Нашел умельцы уже продают на STM32 пульты для станков Новая версия USB пульта с 2,8"-дисплеем ShuttleRU_STM32
oikuz
Цитата(Molchyn @ 20.8.2013, 22:51) *
Нашел умельцы уже продают на STM32 пульты для станков Новая версия USB пульта с 2,8"-дисплеем ShuttleRU_STM32

К автономному управлению эти пульты не имеют отношения. Работают они совместно с МАСН, а работают прекрасно!
mm.Mike
Цитата(kurikat @ 21.8.2013, 0:31) *
А вот дальше надо это дело заливать в контроллер, но как это делать - я не знаю.
Подскажите, я же в свою очередь буду описывать процесс пошагово здесь же, чтобы такие как я могли пошагово, следуя инструкции, довести до ума начатое.
У меня есть в наличии USB - UART, но, честно говоря, не хотелось бы возиться с проводами, может этот контроллер возможно прошить используя microSD?


Прошивка выполняется через USART1 встроенным загрузчиком контроллера. На данной плате это DB9 разъем (подключить нуль модемным кабелем к COM порту компа или переходнику USB-COM).

Загрузка программой "Flash Loader Demo" (ссылку на нее я приводил). Программа от STMicroelectronic.
Перевод в режим загрузки на данной плате - перед подачей питания убрать перемычку boot (активирует встроенный загрузчик).

В принципе, все просто. Основной недостаток этой платы - USART1 разведен как RS232.. Неудобно с проводами. На других платах USB-COM сразу на плате разведен. Зачем они так сделали..=?

Других способов залить что то во флеш контроллера "с завода" нет. (про JTAG умолчу :))

В принципе, по заливке софта в STM32F103 информации в русскоязычном инете - море.
kurikat
Продолжаю описание своих мытарств.
Посмотрев на задние разъемы своей материнской платы, увидел, что в наличие имеется встроенный COM-порт.
Покопавшись в интернете, понял что нужен обычный нуль-модемный кабель(ну с этим мы уже сталкивались в 1996 году, когда паяли оный для игры друг с другом в Duke Nukem 3D).
Порывшись в закромах, кабеля естественно не нашел, зато нашел шариковую мышку с оным разъемом и переходник com-ps/2.
Раскурочил их и припаял по этой схеме - http://sputniktv.in.ua/images/stories/kabel.jpg
Снял джампер, находящийся возле USB разъема. На плате Board v2.1 он один с надписью jp1(так что не промахнетесь).
Подсоединил все кабеля к плате.
Если на LCD экране ничего не происходит и не моргает синий светодиод, значит все ОК, плата перешла в режим прошивки.
Скачал программу Flash loader demonstrator
Запустил, выбрал COM1(у вас он может быть другим).
Жмем Next.
Если все соединено правильно, то программа перейдет к следующему окну, где будет написано "Target is readable. Please click "Next" to proceed" и указан объем памяти. Next.
Следующее окно покажет нам карту флеш-памяти, доступной для прошивки.
Снова Next и попадаем в окно, где нужно выбрать файл прошивки.
В ”Download to Device” выбираем тип файла .hex и выбираем скомпилированный нами файл: c:\eclipse\cnc_workspace\cnc\out\image.hex
Проверяем, чтобы напротив ”Erase necessary pages” стояла точка. Жмем Next.
Ждем, пока надпись ”Downloading data (проценты) ” сменится на такую: Download operation finished successfully.
Всё, прошивка закончена, жмете Close.
Отключаете питание и нуль-модемный кабель от платы.
Возвращаете на место джампер, подключаете питание и наслаждаетесь крансым окошком, которое гласит, что нет SD карты.
Выключаем питание, вставляем карту, подключаем питание и видим, что компьютер начинает устанавливать драйвера, по окончании которых мы увидим, что добавился новый диск.
Закидываем на карту .cnc файлы с английскими названиеями, так как названия файлов на русском языке будут отображаться кракозябрами.
На дисплее платы будет отображаться синее окошко со списком файлов на карте и списком кнопок и их обозначений(цвета интерфейса как в Norton Commandere).
Пока все.
Теперь осталось спаять кабеля.
Покопавшись в своих закромах нашел ide шлейф 40-жильный, он прекрасно подошел к 40-штырьковому разъему, находящемуся на нижней плате.
Теперь осталось припаять к этому кабелю 16 кнопочную клавиатуру(которая еще ко мне не приехала из Китая) и DB25 разъем.

Схему распайки где брать?

P.S. Нашел в файле c:\eclipse\cnc_workspace\cnc\src\application\global.h в разделе Keyboard строки с GPIO_Pin_цифра. На плате 40 пиновый разъем вроде так и называется.
Клавиатуру вроде понял как подсоединять: будут задействованы разъемы 1,2,3,4,5,6(меня только смутило то, что некоторые разъемы повторяются), а DB25 как?
Контроллер у меня 4 канальный на TB6560
mm.Mike
Цитата(kurikat @ 21.8.2013, 23:06) *
Схему распайки где брать?

P.S. Нашел в файле c:\eclipse\cnc_workspace\cnc\src\application\global.h в разделе Keyboard строки с GPIO_Pin_цифра. На плате 40 пиновый разъем вроде так и называется.
Клавиатуру вроде понял как подсоединять: будут задействованы разъемы 1,2,3,4,5,6(меня только смутило то, что некоторые разъемы повторяются), а DB25 как?


Правильно смотрите. Поскольку платы бывают разные и порты можно в исходниках подменять на другие (свободные), то схему я не делал. И без нее все просто.
//----- keyboard ----------------------------------------
/// 0: 1: 2: 3:
//0: 1 2 3 A
//1: 4 5 6 B
//2: 7 8 9 C
//3: * 0 # D
#define COL0_PORT GPIOE
#define COL0_PIN GPIO_Pin_2

Сигнальный вход/выход проца определяется двумя #define - Имя порта(A,B,C,...) номером PIN порта.
Смотрим на схему платы и видим что PE2 выведен на XS5 3-ю ножку 40-ножечного разъема. Втыкаем нужный провод шлейфа в 3-ю дырку разъема.
И т.д.

Все так же и для остального. 4-й канал можно не подключать. Все одно 4-ю ось не делал до конца.
wampir79
доброго времени суток! давно слежу за темой, автору большой поклон за проделаную работу!
поскольку я совсем новичек в stm32 и в програмировании есть пара вопросов:
1. имееться плата stm32f4discovery - возможно ли перенести проэкт на нее?
2. насколько это осуществимо в моем случае (установил CooCox, разбираюсь) an.gif
3. может найдетсь добрая душа на форуме и выложит готовый проэкт для stm32f4discovery? ak.gif
если discovery не годится, то подойдет ли такой вариант: http://www.aliexpress.com/item/Fighter-STM...oogtrans(en|ru)
начал разбираться с програмированием только ради этого проэкта...
спасибо за терпение и понимание.
kurikat
Цитата(mm.Mike @ 22.8.2013, 4:19) *
Сигнальный вход/выход проца определяется двумя #define - Имя порта(A,B,C,...) номером PIN порта.
Смотрим на схему платы и видим что PE2 выведен на XS5 3-ю ножку 40-ножечного разъема. Втыкаем нужный провод шлейфа в 3-ю дырку разъема.

Помоему я запутался.
Давайте на примере. Начнем с клавиатуры.
Вот настройки клавиатуры из global.h:
Код
//----- keyboard ----------------------------------------
///   0: 1: 2: 3:
//0:  1  2  3  A
//1:  4  5  6  B
//2:  7  8  9  C
//3:  *  0  #  D
#define COL0_PORT GPIOE
#define COL0_PIN GPIO_Pin_2
#define COL1_PORT GPIOE
#define COL1_PIN GPIO_Pin_3
#define COL2_PORT GPIOE
#define COL2_PIN GPIO_Pin_4
#define COL3_PORT GPIOE
#define COL3_PIN GPIO_Pin_5

#define ROW0_PORT GPIOE
#define ROW0_PIN GPIO_Pin_6
#define ROW1_PORT GPIOC
#define ROW1_PIN GPIO_Pin_1
#define ROW2_PORT GPIOC
#define ROW2_PIN GPIO_Pin_2
#define ROW3_PORT GPIOC
#define ROW3_PIN GPIO_Pin_3


COL - это строки, ROW - это колонки.
GPIO_Pin_2 - это второй штырек на 40 штырьковом разъеме, GPIO_Pin_6 - шестой штырек и т.д.
Если я правильно понял, то чтобы подключить клавишу 1, нужно воткнуть провода от нее во 2 и 6 штырек на 40 штырьковом коннекторе.
Чтобы подключить клавишу 2, нужно воткнуть 2 и 1
Чтобы подключить клавишу 3, нужно воткнуть 2 и 2
Чтобы подключить клавишу А, нужно воткнуть 2 и 3
Чтобы подключить клавишу 4, нужно воткнуть 3 и 2
Фигня какая-то получается.

А уж с DB25 вообще ничего не понятно. Кто такие M0, M1, M2, M3 ?
mm.Mike
Цитата(kurikat @ 22.8.2013, 13:52) *
Помоему я запутался.


Действительно.. smile.gif

Цитата(kurikat @ 22.8.2013, 13:52) *
GPIO_Pin_2 - это второй штырек на 40 штырьковом разъеме, GPIO_Pin_6 - шестой штырек и т.д.
Если я правильно понял, то чтобы подключить клавишу 1, нужно воткнуть провода от нее во 2 и 6 штырек на 40 штырьковом коннекторе.
Чтобы подключить клавишу 2, нужно воткнуть 2 и 1
Чтобы подключить клавишу 3, нужно воткнуть 2 и 2
Чтобы подключить клавишу А, нужно воткнуть 2 и 3
Чтобы подключить клавишу 4, нужно воткнуть 3 и 2
Фигня какая-то получается.

А уж с DB25 вообще ничего не понятно. Кто такие M0, M1, M2, M3 ?


Вы схемы читать умеете? Схема платы.. Я же вроде бы объяснил..
#define COL0_PORT GPIOE
#define COL0_PIN GPIO_Pin_2
Это не 2 я ножка разъема, а PE2 вывод процессора. Который по схеме выведен на 3-ю ножку разъема

Примеры:
#define COL1_PORT GPIOE
#define COL1_PIN GPIO_Pin_3
Это PE3, выведенный на 4-ю ногу разъема

#define ROW1_PORT GPIOC
#define ROW1_PIN GPIO_Pin_1
Это PC1, выведенный на 9-ю ногу..

M0, M1, M2 - сигналы для 3-х шаговых двигателей (DIR,STEP,ENABLE)

--------------------------
Если и эта информация не поможет, то уж простите... я пас.
Схему приложил, хотя ее обычно китайцы с платой присылают на CD
mm.Mike
Цитата(wampir79 @ 22.8.2013, 9:26) *
поскольку я совсем новичек в stm32 и в програмировании есть пара вопросов:
1. имееться плата stm32f4discovery - возможно ли перенести проэкт на нее?
2. насколько это осуществимо в моем случае (установил CooCox, разбираюсь) an.gif
3. может найдетсь добрая душа на форуме и выложит готовый проэкт для stm32f4discovery? ak.gif
если discovery не годится, то подойдет ли такой вариант: http://www.aliexpress.com/item/Fighter-STM...oogtrans(en|ru)
начал разбираться с програмированием только ради этого проэкта...
спасибо за терпение и понимание.


1.При большом желании можно под любую плату пересобрать. Но лично мне бы было бы лень к stm32f4discovery экран прикручивать..
Возится еще... стоимость платы с интегрированным экраном как полбака в мою машину smile.gif или один раз продуктов купить smile.gif

2.Судя по всему это та плата, под которую я изначально и делал.

kurikat
Цитата(mm.Mike @ 22.8.2013, 16:14) *
Вы схемы читать умеете? Схема платы.. Я же вроде бы объяснил..

Вот пока пример не привели, я так и не понимал, что и куда. Сейчас понятнее стало.
Подсоединил 40 пиновый шлейф, позамыкал нужные проводки вместо кнопок, вроде все совпадает.
Ушел курочить старую ISA плату ввода-вывода на предмет штекера DB25.
Цитата(mm.Mike @ 22.8.2013, 16:14) *
Схему приложил, хотя ее обычно китайцы с платой присылают на CD

Диска китаец не прислал, да и сидюк помер уже как полгода, служит заглушкой в системнике smile.gif .
Спасибо за схему.
fessit
Доброго времени суток!
Занялся и я повторением этой замечательной конструкции, посему имеются вопросы:
1. Правильно я понимаю что с помощью global.h можно определить любому выводу платы любой сигнал?
2. Как правильно выполнить подтяжку выводов лимитов - к +5 или +3,3?

Хочу сделать конструкцию в виде пульта, т.е сделать плату с кнопками и разъемами питания и ЛПТ на которую сверху ставится плата STM. Для этого разъем нужно перепаять на нижнюю сторону платы... wacko.gif

3. Нужен ли буфер между STM и разъемом ЛПТ при подключении длинным кабелем (ок. 1,5м), и что можете порекомендовать в качестве оного (244?)?

PS. Плата как http://www.aliexpress.com/item/Fighter-STM.../474620966.html
wampir79
Цитата(mm.Mike @ 22.8.2013, 15:22) *
1.При большом желании можно под любую плату пересобрать. Но лично мне бы было бы лень к stm32f4discovery экран прикручивать..
Возится еще... стоимость платы с интегрированным экраном как полбака в мою машину smile.gif или один раз продуктов купить smile.gif

2.Судя по всему это та плата, под которую я изначально и делал.


Вы правы! сосредоточился я на этой плате....
скажите эта http://www.aliexpress.com/item/2-8-touch-t...1092681571.html подойдет?
или нужно пересобирать прошивку?
kurikat
Цитата(fessit @ 22.8.2013, 21:12) *
2. Как правильно выполнить подтяжку выводов лимитов - к +5 или +3,3?


Вот бы их вовсе отключить, а то моргают как светомузыка.
kurikat
Цитата(wampir79 @ 22.8.2013, 22:16) *
скажите эта http://www.aliexpress.com/item/Fighter-STM...oogtrans(en|ru) подойдет?
или нужно пересобирать прошивку?


Собственно, он Вам уже ответил:
Цитата(mm.Mike @ 22.8.2013, 16:22) *
2.Судя по всему это та плата, под которую я изначально и делал.


Я заказывал у этого продавца, правда тогда еще была бесплатная доставка. Плата точно такая же, как у mm.Mike.
Заливается прошивка на ура, по крайней мере мне ничего переконфигурировать не пришлось.
Вот только полностью проверить не могу: кнопки еще не приехали и из-за лимитов Gcode не стартует(надо либо подтягивать, либо вообще отключить их).
mm.Mike
Цитата(kurikat @ 23.8.2013, 1:27) *
Вот только полностью проверить не могу: кнопки еще не приехали и из-за лимитов Gcode не стартует(надо либо подтягивать, либо вообще отключить их).


Так отключить не долго...
inline uint8_t limitX_chk(void) { return !(XPORT->IDR & XPIN); }
inline uint8_t limitY_chk(void) { return !(YPORT->IDR & YPIN); }
inline uint8_t limitZ_chk(void) { return !(ZPORT->IDR & ZPIN); }

inline uint8_t limitX_chk(void) { return FALSE; } //return !(XPORT->IDR & XPIN); }
inline uint8_t limitY_chk(void) { return FALSE; } //return !(YPORT->IDR & YPIN); }
inline uint8_t limitZ_chk(void) { return FALSE; } //return !(ZPORT->IDR & ZPIN); }


Вот только как то выяснил, что у меня по Y микрик не правильно стоял (не срабатывал). Большая деталь была, на грани максимального размера и чуть ошибся с выставлением 0. Как он с размаху въехал в конец ШВП и заорал! Думал сломается что.
Пусть уж будут лимиты biggrin.gif
Хотя из запросто в одну линию и на один вход можно свести
mm.Mike
Цитата(wampir79 @ 23.8.2013, 1:16) *
Вы правы! сосредоточился я на этой плате....
скажите эта http://www.aliexpress.com/item/2-8-touch-t...1092681571.html подойдет?
или нужно пересобирать прошивку?


Под любую другую плату нужно разбираться со свободными и выведенными на разъем ножками проца и естественно менять прошивку.
Что, с одной стороны тривиально... но только когда понимаешь что делаешь.
Я ее (прошивку) даже в STM32F103RBT6 запихнуть сумел. Вот только ножек свободных там очень мало.
mm.Mike
Цитата(fessit @ 23.8.2013, 0:12) *
1. Правильно я понимаю что с помощью global.h можно определить любому выводу платы любой сигнал?

В целом -да. Но мне кажется, что сам вопрос выдает отсутствие специфичных знаний. Так что - скорее нет :) Не любой и не всегда и..
Не обижайтесь...

Цитата(fessit @ 23.8.2013, 0:12) *
2. Как правильно выполнить подтяжку выводов лимитов - к +5 или +3,3?


Поддтяжка только к 3.3В! 5-10кОм
Но гораздо проще включить внутреннюю подтяжку
void limits_init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

вместо GPIO_Mode_IN_FLOATING указать нужную.. (GPIO_Mode_IPD -down, GPIO_Mode_IPU - up)

это у меня внешняя подтяжка.. ну так получилось в процессе. Но внешняя подтяжка в принципе лишняя.


Цитата(fessit @ 23.8.2013, 0:12) *
3. Нужен ли буфер между STM и разъемом ЛПТ при подключении длинным кабелем (ок. 1,5м), и что можете порекомендовать в качестве оного (244?)?


Трудно сказать. У меня всего 20 см шлейф без буфера сразу от выходов STM. Проблем нет.
Но оптроны на плате драйверов в канале STEP заменил перемычками (на одной из фоток в этой теме это отчетливо видно).

В принципе, частоты не большие и в плате драйверов 74hc14 стоит на входе. Так что вполне может нормально заработать и без буфера. Сразу от 3.3В выхода на длинном кабеле

wampir79
Цитата(mm.Mike @ 23.8.2013, 4:06) *
Под любую другую плату нужно разбираться со свободными и выведенными на разъем ножками проца и естественно менять прошивку.
Что, с одной стороны тривиально... но только когда понимаешь что делаешь.
Я ее (прошивку) даже в STM32F103RBT6 запихнуть сумел. Вот только ножек свободных там очень мало.


Спасибо за ответ! буду заказывать и пробовать.
fessit
Цитата(mm.Mike @ 23.8.2013, 4:29) *
В целом -да. Но мне кажется, что сам вопрос выдает отсутствие специфичных знаний. Так что - скорее нет :) Не любой и не всегда и..
Не обижайтесь...


Да какие обиды! В STM я даже не чайник а так - свисток от чайника, потому и спросил - хотел вывести клавиатуру на нижний ряд контактов а входы/выходы на верхний чтоб плату проще разводить, а раз так, то будем вертеть дорожки... wacko.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.