Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Программирование STM8

Вс окт 22, 2023 16:59:03

Дык а настройках терминалки выбрано hex. Установить ASCII - и будет сыпать текстом.

Re: Программирование STM8

Вс окт 22, 2023 19:13:40

проверку того, что данные отправлены в нужной последовательности?

Ну, в самом простом варианте : буфер данных, представляющий собой массив, отправляется согласно индексу...

Код:
if (UART1_SR_TXE==1)
{
   if (i == array_length)
   {
      // передача завершена
   }
   else
   {
      UART1_DR = res[i++];
   }
}


осталось разобраться, как сторона приёма поймёт, что передача завершена.

Re: Программирование STM8

Вс окт 22, 2023 20:08:08

попробуйте писать код в Arduino IDE

А в чем разница? Почему вы думаете, что там будет проще писать?
В самом начале, я стоял перед выбором среды программирования. Рассматривал Arduino IDE. Установил ее на компьютер, и пытался что-то написать. Честно сказать мне не очень понравилось. :( В первую очередь, наверное, потому что она оказалась очень тяжелой для моего компьютера(долго запускается, долго компилирует). А сейчас уже побаиваюсь на что-то другое переходить(боюсь запутаться).
Дык а настройках терминалки выбрано hex. Установить ASCII - и будет сыпать текстом.

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

А это тоже нужно учитывать?... :shock: Да, с передачей данных никогда не работал...

Re: Программирование STM8

Вс окт 22, 2023 20:26:20

ну а откуда приёмнику знать, сколько и что передаст и передал передатчик? Даже если строго договорились, что два байта. Например, приёмник получил байт, потом ещё байт. Где гарантия, что передатчик отправил весь буфер из двух байтов, а не сначала первый байт, потом что-то не заладилось, и он снова отправил первый байт?

Re: Программирование STM8

Вс окт 22, 2023 20:28:12

Потому что там писать программный код ... легко. Сделали все макроси, функции и т.д. для использования неспециалистами. Близко к "человеческому мышлению". Просто используйте. (Правда, создается неправильное представление, что все дано :) ).

Напр. задача: напрежение ADC pin 0 -> в Serial - 1 строка кода. (код не пробовал, могут быть неточности).
Спойлер
Код:
#include "Arduino.h"
#include "Serial.h"

// RX (D15) -> TX
// TX (D14) -> RX
// A0 - analog input

void setup(void) {
  Serial_begin(9600);
}

void loop (void) {
  Serial_print_u(analogRead(0));
  Serial_println();

  delay(200);
}

Установите Arduino IDE v1.8.19. Со ArduinoIDE v2.x.x не работаю по этой причине: медленно загружается.

Re: Программирование STM8

Вт окт 24, 2023 00:06:31

Установите Arduino IDE v1.8.19.

Да, v1.8.19 работает шустрее v2.x.x.
И таки да, писать там кажется попроще(почитал документацию). Но с STM8 там могут возникнуть проблемы, из-за того что не все библиотеки адаптированы, насколько я понял.
Кстати, с UART у меня и там возникли проблемы. :) Стандартный пример AnalogReadSerial не скомпилировался. Компилятор выдал ошибку.
C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino:16: error 25: Structure/Union expected left of '.->'
C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino:24: error 25: Structure/Union expected left of '.->'

Код:
/*
  AnalogReadSerial

  Reads an analog input on pin 0, prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/AnalogReadSerial
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A3);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

СпойлерВесь лог компилятора:
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\User\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\User\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\User\Documents\Arduino\libraries -fqbn=sduino:stm8:stm8sblue -vid-pid=1A86_5523 -ide-version=10819 -build-path C:\Windows\TEMP\arduino_build_795011 -warnings=all -build-cache C:\Windows\TEMP\arduino_cache_888067 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.STM8Tools.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.STM8Tools-2019.02.05.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.sdcc.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -prefs=runtime.tools.sdcc-build.10738.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -verbose C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\User\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\User\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\User\Documents\Arduino\libraries -fqbn=sduino:stm8:stm8sblue -vid-pid=1A86_5523 -ide-version=10819 -build-path C:\Windows\TEMP\arduino_build_795011 -warnings=all -build-cache C:\Windows\TEMP\arduino_cache_888067 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.STM8Tools.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.STM8Tools-2019.02.05.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.sdcc.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -prefs=runtime.tools.sdcc-build.10738.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -verbose C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino

Using board 'stm8sblue' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2

Using core 'sduino' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2

Detecting libraries used...
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/win/busybox" ash "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/wrapper/sdcc.sh" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/bin/sdcc" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp" nul re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\cores\\sduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\variants\\standard" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/include"

Generating function prototypes...

"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/win/busybox" ash "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/wrapper/sdcc.sh" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/bin/sdcc" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp" "C:\\Windows\\TEMP\\arduino_build_795011\\preproc\\ctags_target_for_gcc_minus_e.cpp" re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\cores\\sduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\variants\\standard" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/include"

C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp C:\Windows\TEMP\arduino_build_795011\preproc\ctags_target_for_gcc_minus_e.cpp re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include

Mark re12:C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp -o C:\Windows\TEMP\arduino_build_795011\preproc\ctags_target_for_gcc_minus_e.cpp

cpp gefunden

"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Windows\\TEMP\\arduino_build_795011\\preproc\\ctags_target_for_gcc_minus_e.cpp"

Компиляция скетча...

"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/win/busybox" ash "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/wrapper/sdcc.sh" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/bin/sdcc" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp.o" re2 -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -Wp-Wall -V -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\cores\\sduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\variants\\standard" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/include"

C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.o re2 -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -Wp-Wall -V -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include

Mark re2:C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -Wp-Wall -V -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp -o C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.o

cpp gefunden

+ C:\Users\User\AppData\Local\ARDUIN~1\packages\sduino\tools\sdcc\BUILD~1.107/bin\sdcpp.exe -nostdinc -Wall -std=c11 -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -Wall -D"STM8S103" -D"F_CPU=16000000L" -D"ARDUINO=10819" -D"ARDUINO_STM8S_BLUE" -D"ARDUINO_ARCH_STM8" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include" -obj-ext=.rel -MMD C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.d -MT C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.o -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_8_3 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=8 -D__SDCC_VERSION_PATCH=3 -D__SDCC_REVISION=10738 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin\..\include\stm8" -isystem "C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin\..\include" "C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.c"

C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino:16: error 25: Structure/Union expected left of '.->'

C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino:24: error 25: Structure/Union expected left of '.->'

exit status 1

Ошибка компиляции для платы STM8S103F3 Breakout Board.

Re: Программирование STM8

Вт окт 24, 2023 03:46:46

я бы забыл всю эту ардуино.
Поставить IAR и учиться изначально хорошему.

Re: Программирование STM8

Вт окт 24, 2023 08:53:09

Тестировал на реальном устройстве. Изменил только 0 на PIN_A0. Код работает.
Код:
#include "Arduino.h"
#include "Serial.h"

// RX (D15) -> TX
// TX (D14) -> RX
// A0 - analog input

void setup(void) {
  Serial_begin(9600);
}

void loop (void) {
  Serial_print_u(analogRead(PIN_A0));
  Serial_println();

  delay(200);
}


Добавьте аппаратную поддержку Arduino IDE в STM8 из предыдущих сообщений. Перепишите код, скомпилируйте. Запишите полученный hex файл программатором. Получаете вольтметр на А0 (PC4) к UART. С внешним адаптером RX/TX на CH340G к D14/D15. Мне потребовалось ~10 минут.

Изображение
Вложения
sketch_oct24a.zip
(3.98 KiB) Скачиваний: 32

Re: Программирование STM8

Чт окт 26, 2023 21:21:40

Добавьте аппаратную поддержку Arduino IDE в STM8

Да вроде все сделал, как сказано в инструкции, но почему-то не работает. Причем, пример Blink компилируется заливается в контроллер и работает в нем.
Ну да ладно. Думаю, что не буду распыляться и менять коней на переправе. Если начал писать в IAR, то в нем и продолжу. С предыдущими трудностями справился и с будущими, надеюсь справлюсь. В конце концов, мир не без добрых людей, поэтому надеюсь, что тут мне помогут. :)

Re: Программирование STM8

Чт окт 26, 2023 21:59:59

IAR - это правильный выбор.

Re: Программирование STM8

Пт окт 27, 2023 08:06:00

Меня за выбор IAR для STM32 материли на этом форуме :))
Говорили - оставь iar профессионалам, а сам иди в кубики играть.

Re: Программирование STM8

Вт ноя 21, 2023 00:44:59

Перестал работать компорт на электронной нагрузке EBC-A20 фирмы ZKE TECH. Реализован на STM8S 105K4T6C выводы 46 , 47 UART.
Эти выводы выведены наружу через резисторы 100 Ом вместе с общим проводом (минус питания). Далее эти три провода подключены через PROLIFIC-PL2303 (USB to Serial Bridge Controller) на USB для соединения с компютером.
ЦЕЛЬ-ВОССТАНОВИТЬ соединение.
АЛГОРИТМ-надеюсь что существует, подскажите!! Я=ЧАЙНИК.
Предположения : вышел из строя внутренний UART микросхемы. Надо ПЕРЕНЕСТИ код в исправную пустую микросхему. Такое ВОЗМОЖНО? Если ДА, то скажите что для этого надо. Чем считать и как записать? Не защищена ли микросхема от копирования? И если защищена , то можно ли взять у производителя прошивку ( обновление) и записать его в новую микруху?

Re: Программирование STM8

Ср ноя 22, 2023 20:17:31

Перестал работать компорт на электронной нагрузке EBC-A20 фирмы ZKE TECH. Реализован на STM8S 105K4T6C выводы 46 , 47 UART.
Эти выводы выведены наружу через резисторы 100 Ом вместе с общим проводом (минус питания). Далее эти три провода подключены через PROLIFIC-PL2303 (USB to Serial Bridge Controller) на USB для соединения с компютером.
ЦЕЛЬ-ВОССТАНОВИТЬ соединение.
Что значит "перестал работать"? Как это определяете?
Выкинуть PL2303, заменить на другую. Лучше - на что-то из FT232xx или CP21xx. Так как PL2303 - гумно.

Re: Программирование STM8

Ср ноя 22, 2023 20:20:07

PL2303 не гумно, но давно снято с производства, существующие сегодня в продаже - китайская подделка. Из китайцев проще взять WCH340 - больше шансов на оригинал, FT232xx или CP21xx могут оказаться левыми.

Re: Программирование STM8

Ср ноя 22, 2023 20:38:36

Из китайцев проще взять WCH340 - больше шансов на оригинал.
Они вроде максимум 115200?
Конечно у автора STM8S и поэтому - маловероятно, что выше 115200, но вдруг?...

PS: Не люблю CH340. В мой 3D-принтер китайцы впендюрили CH340G (видимо с целью удешевления). Теперь отладочный лог из него на нормальной скорости не выплюнешь. :(

Re: Программирование STM8

Ср ноя 22, 2023 20:50:37

не помню про скорость... а я как раз CH340G купил :) что-то не рискнул безкварцевые брать

Re: Программирование STM8

Чт ноя 23, 2023 03:17:25

Такое ВОЗМОЖНО? Если ДА, то скажите что для этого надо. Чем считать и как записать? Не защищена ли микросхема от копирования? И если защищена , то можно ли взять у производителя прошивку ( обновление) и записать его в новую микруху?

Думаю, скачать прошивку с МК у вас не получиться, но можете попробовать. Для этого нужно установить программу ST Visual Programmer и купить программатор. Скачать программу можно на сайте производителя МК.
Вот тут можете посмотреть описание.
Если все же у вас не получиться скачать прошивку с МК, то просите прошивку у производителя устройства. Может быть он вам ее даст.

Re: Программирование STM8

Ср дек 20, 2023 19:36:16

Всем привет.
Хотел завести на STM8S103 SPI в режиме opendrain. Пока SPI выключен порт на котором MOSI так себя и ведет. Как только отправляю один байт по SPI, сразу переключается в пушпул и в нем остается пока SPI не выключу. Даже пробовал притянуть к нулю резистором, на 14мА четкая лог1.

У меня нечто подобное было на клоне STM32, он честно назывался CS32, только на USARTe. Я вот думаю, что у меня STM8 тоже клон. Две одинаковые платки одинаково себя ведут. Еще где то были чипы, можно попробовать перепаять.
Может у кого подобное было? Или может я чего не то делаю?

Re: Программирование STM8

Ср дек 20, 2023 21:51:09

а разве SPI должен работать с открытым коллектором? Не путаете с I2C? SPI не сможет обеспечить высокую скорость без пуш-пулл

Re: Программирование STM8

Ср дек 20, 2023 22:10:46

С I2C не путаю. Скорость мне не нужна. Воткнул пока транзистор, видимо останется.
Из RM016
11.8 Output mode details
11.8.1 Alternate function output
Alternate function outputs provide a direct path from a peripheral to an output or to an I/O
pad, taking precedence over the port bit in the data output latch register (Px_ODR) and
forcing the Px_DDR corresponding bit to 1.
An alternate function output can be push-pull or pseudo-open drain depending on the
peripheral and Control register 1 (Px_CR1) and slope can be controlled depending on the
Control register 2 (Px_CR2) values.
Examples:
SPI output pins must be set-up as push-pull, fast slope for optimal operation.

Я перевел это так, переферия может работать в любом режиме, SPI должен быть настроен в пушпул для оптимальной работы. Но не написано что работает только в нем. Может я неправильно понял.
В Errata вроде как тоже ничего нет.
Ответить