- 2 AlexG (по постам вижу, что вы им тут занимаетесь): Отладочная
платка WCH CH32F207. Примеры из EVT для Keil, встроенный 10 Мбит
PHY. Не поднимается ethernet link. Пробовал отключать
autonegatiation и дуплекс, тыкал разные патчкорды в разные свитчи,
но лыжи так и не едут... На что еще обратить внимание? Гyдвин(5 знак., 20.06.2023 16:37, ARM, полностью)
- Щупаю CH32V203F8P6. Это вааще недоразумение кокойты... Или пока мы
или китайцы? не умеем их готовить? Подключаюсь WCH-LinkUtility.
Утилитой залить программу в чип через отладочный интерфейс можно.
Но в студии отладчик не работает. Программа заливается и все
виснет. Причем потом и WCH-LinkUtility кристалл не видит пока не
передернешь питание. И даже после передергивания c WCH-LinkUtility
работает криво - отладочный интерфейс отваливается. Навскидку - в
чипе неотключаемый Гyдвин(286 знак., 20.06.2023 14:39, ARM)
- GD32F107RC странности со стартом.. Balda(848 знак., 24.05.2023 16:47, ARM, полностью)
- Через 2 весны таки разобрался почему глючил старт... Balda(113 знак., 19.06.2023 20:01)
- Сейчас последняя мысль.. Balda(98 знак., 25.05.2023 07:48)
- ADD Balda(94 знак., 24.05.2023 17:31)
- У GD, так-же как у STM уровень Power on reset (POR) = 1.8V. Однако,
в отличии от STM, рабочее напряжение у него - от 2.6V. После POR
идет задержка сброса Trsttemp = 1...2мс. Если за это время
напряжение питания не успеет добраться до 2.6V, то никаких гарантий
нормальной работы нет. Если у вас скорость нарастания питания
низкая, и вообще - идет работа с внешней или внутренней Flash, то
для GD просто необходим внешний супервизор на ноге RESET. Это
касается всех GD, кроме 405, il-2(372 знак., 24.05.2023 17:02)
- entry в линкере какой указан? - lloyd(24.05.2023 16:47)
- Имею вопрос: Сегодня пришла платка с CH32F207VС - EVT. Отладчик
(J-Link) не хочет подключаться в Keil. Ругается "Insufficient RAM
for Flash Algorithms !". Pack Keil.WCH32F2xx_DFP.1.0.2 установлен.
Алгоритмы программироания добавлены. Кто-нибудь боролся? - Гyдвин(19.06.2023 18:11, ARM, полностью)
- Изучаю пристально CH32V203F8P6. И нихрена не понимаю. il-2(582 знак., 15.06.2023 11:01, ARM, полностью)
- Народ, а где вы заголовочные файлы и сишный стартап для этих камней
берете? Eddy_Em(489 знак., 19.06.2023 17:38)
- Да брось ты, дружище, всё "как впервые" воспринимать :) Это же...
другие! Даже вид в профиль отличаются как Джобс и Дали. - Нисколько
не ёрничая. Необходимости во внешнем резонаторе на 128, 7-й
гармоники, или осциллятора в котором всё сделано... Оёёй!. Тем
более, что залитый в корпусирование кварц почти невозможен
(существуют на самом деле). :) bnb62(49 знак., 15.06.2023 17:50, ссылка)
- С наводки POV, встречайте - AT32F425F8. Авто-триммирование с
точностью до 0.25% макс, все как положено. Т.е. в режиме Device
даже кварц не нужен. Есть в продаже по 65руб. il-2(1 знак., 15.06.2023 14:28, картинка)
- Дык у него вроде и ног для USB порта не наблюдается... - Гyдвин(15.06.2023 14:10)
- Вобщем после рытья даташитов резюмирую следующее: il-2(465 знак., 15.06.2023 12:41)
- Смотрите на DS внимательно. Там в корпусе F8 есть вариант с
USBD(QFN) и USBHD(TSOP)(порнограф 2.1). Кстате, кварц можэт быть
интегрирован у TSOP в корпус. - mse homjak(15.06.2023 12:20)
- ноги кварца вроде расшарены с каким-то портом, смотри мануал на
семейство - General(15.06.2023 12:00)
- Может Эльф уже разобрался? -> il-2(1 знак., 15.06.2023 11:07, ссылка)
- А зачем хосту кварц, если он сам SOF'ы посылает? - Eddy_Em(15.06.2023 11:03)
- Объясните темному. STM. Будет ли работать регистр GPIO->IDR
если порт в альтернативной функции? IBAH(274 знак., 17.06.2023 16:24, ARM, полностью)
- Будет. - SciFi(17.06.2023 16:27)
- NUC970, непонятное с прерываниями. Хочу прерывания по falling edge
от нескольких ножек, всё работает. Теоретический максимум
срабатываний 30кГц/2кГц = 15 раз. А у меня очень редко бывает
сильно больше. Причём непонятно почему, ведь при попадании в
прерывания источник от соответствующего разряда должен отключаться.
Может что-нибудь надо AIC Advanced Interrupt Controller объяснить в регистрах? (Меня смущает в примерах от производителя
обращение к Dingo(2251 знак., 17.06.2023 08:04, ARM, ссылка)
- Норот, кто имеет хоть какой пояс по CH32V00x? Интересует СПИ, чтобы
работал аппаратный NSS. Делаю всё по СТМовскому букварю, смотрю
настройки порта в отладчике, записано то, что надо для выхода
альтернативной функции. Т.е. должно быть в 1 с 0-выми просечками,
но имею 0. У СТМа, думаю, всё будет стрелять, а вот китайцкое
поделие... - mse homjak(09.06.2023 21:44, ARM, полностью)
- Попробывал ДМА. Хорошо работает. Для упоротых, типа меня, есть
вариант сделать олдскульный СПИ на ДМА. Правда, сожрёт ОЗУ и
скорость СЦК получается в
1020 раз меньше тактовой. - mse homjak(15.06.2023 12:49)
- А под них нет набора сниппетов - как у ST под STM32F0? Eddy_Em(440 знак., 14.06.2023 20:17)
- У них в примерах есть "FullDuplex_HardNSS". Не пробовал? Я только
утром сегодня платки получил. Пытаюсь вникнуть :) - Гyдвин(14.06.2023 19:55)
- 8051 не актуально, удалил. - Costic(12.06.2023 23:04)
- Позанудствую, ибо формулировку неверную вижу я... POV(533 знак., 12.06.2023 23:07)
- Не обязательно инициализация информационного обмена (когда вначале
передается команда и/или адрес), но обязательно сигнал
квитирования. Даже если по SPI гнать одни только данные (без команд
управления), то всегда будет ненулевая вероятность нарушения
синхронности передачи (звон или помеха в цепи CLK и ... опа!).
Сигнал квитирования укажет явно о начале очередного фрейма и
обязывает сбросить счетчик тактовых сигналов в начале приема. - reZident(12.06.2023 23:55)
- ХЗ, обо что у вас разговор, но обычно, по фронту SS, у слэйва
информаццыя переносится из сдвигового регистра в цэлевой. - mse homjak(13.06.2023 00:16)
- Это "обычно" имеет отношение к оставшимся 0,01% применения. Что-то
типа сдвиговых регистров. - POV(13.06.2023 07:54)
- Танунах...Все ЦАПы, АЦПы, синтезаторы и всё прочее работают имана
так: фронт CS фиксирует состояние сдвигового регистра во внутренний
рабочий. - mse homjak(13.06.2023 10:33)
- Не согласен. У многих АЦП за одну транзакцию по SPI можно
установить произвольное количество регистров от 1 до максимума,
который позволяет внутренний счетчик. Или взять те же SerialFlash в
которых буфер под килобайт. Это скольки же разрядный там регистр
по-твоему, если значение его устанавливается одним чохом по фронту
CS? О.о - reZident(13.06.2023 10:41)
- И что? Фронт CS фиксирует содержимое сдвигового регистра во
внутренние. Просто этот регистр "под килобайт". Или таких устройств
может стоять вязанка, но всё равно, логика работы именно такая:
сколько бы бит не прошло через сдвиговый регистр, всё равно, по
фронту CS, текущее состояние сдвигового, перепишется во внутренний.
И, жэлательно, чтобы всё это делалось автоматом. А логика этого
автомата, забота разрабоччика. - mse homjak(13.06.2023 10:59)
- Это твое личное представление разработчика, который проектировал
SPI в FPGA. Было ведь такое, а? ;-) А по факту - нет, в самом общем случае CS это всего лишь сигнал квитирования, который определяет
начало (и конец) транзакции. - reZident(13.06.2023 11:16)
- Ну? А что делает конец транзакции? Прально, фиксирует состояние
сдвигового регистра. Кстате, то АЦП, что вы проедложили в качестве
примера, не совсем катит, т.к. оно работает не по командам проца, а
формирует запрос по DRDY. И то, если оно одно в системе, бо если
кого-то в цепи надо прописать, то АЦП можэт потечь крышей. Когда
устройств много, извольте дёргать CS. И такое устройство нельзя
цеплять в цепь каскадом. В общем, пропиретарщина. Для контраста
можэте глянуть mse homjak(35 знак., 13.06.2023 12:00)
- Чё вы в сдвиговый регистр уперлись? В SerialFalsh и/или EEPROM
буферное ОЗУ это по-вашему тоже сдвиговый регистр чоли? Оно ведь
заполняется по кольцу (кольцевому счетчику адресов) во время
транзакции записи. Нехилый в SF (где буфер 256 байт) 2048-разрядный
регистр забубенили! А потом ведь из этого "регистра" идет запись во
Flash, которая по всему выходит тоже 2048 разрядов имеет? Или как? - reZident(13.06.2023 12:20)
- Если оно задвигается по последовательному каналу, то да, сдвиговый
регистр. Какая разница, скока там разрядов, если вы двигаете его по
одному битику? ЖЫТАГ вообще можэт десятки килобайт жопка к жопке
сдвигать. mse homjak(697 знак., 13.06.2023 12:58)
- Та я ведь и непротив, если вы согласитесь, что CS это сигнал
квитирования (флаг, семафор, назовите его как хотите), а не еще
один тактовый сигнал. - reZident(13.06.2023 13:07)
- Ну да, пусть семафор. Тока по этому семафору сдвиговый регистр
должэн переписаться в регистр рабочий. По банальной причине: когда
у вас начнёца следующая транзакцыя, эти данные будут испорчены и
устройство перейдёт в режим суетолога. До тех пор, пока данные
снова не устаканяца. - mse homjak(13.06.2023 13:25)
- Да нету прямой связи между фронтом CS и (пере)записью каких-либо
унутренних регистров! Внутренняя логика устройства может работать
совсем от другого тактового сигнала и начать обрабатывать
(пере-записывать принятые или подкидывать в последовательный канал
выходные данные) еще до завершения транзакции. CS это лишь признак
начала/окончания транзакции и усё! Он управляет логикой интерфейса
связи, а не логикой работы самого устройства. - reZident(13.06.2023 13:46)
- Да, можэт. От тот техасский АЦП из этой серии. Воткнуть его в
цэпочку устройств, нельзя. Для работы его нужно выделить в
отдельный загончик. По входу он должэн ловить только то, что нужно
только ему. Т.е. это голимая пропиретарщина. Я вам это ужэ пол-дня
объясняю. Причом нет никакой причины, чтобы нельзя было сделать по
уму. Обычное рукожопие. - mse homjak(13.06.2023 14:04)
- А я вам объясняю, что нету прямой связи между CS и внутренней
логикой работы устройства. Взять тот же STM32. У него сдвиговый
регистр максимум 16-разрядный, а передавать через SPI можно ажно
килобайты без "отмашки" каждых 2 байт CS-ом, не так ли? Потому, что
унутренний конвейер позволяет подтаскивать данные в сдвиговый
регистр SPI и производить перезапись в/из него согласно своей
унутренней логике работы модуля SPI. Фронт CS, то бишь NSS лишь
запрещает тактировать reZident(133 знак., 13.06.2023 14:33)
- Можно. Но в регистрах управления есть биты, отвечающие за это. Т.е.
можно (было бы) отмахивать CS каждое слово, а можно не обмахивать.
Можно было бы пользовать устройства типа ЕЕПРОМ, с последовательной
многобайтной записью и можно было бы пользовать устройства с
фиксированной длиной слова. Причом, используя ДМА. А так, налицо
какая-то херня, когда имеем, вроде бы, полный набор для скоростной
работы с узлом без участия процэссора, но вынуждены сидеть в цыкле
и mse homjak(24 знак., 13.06.2023 14:48)
- Будто бы флеш не знает, что у неё записано на момент фронта CS. В
ней и так зафиксировано. Речь об устройствах ввода, типа АЦП или
регистров - действительно удобно фиксировать состояние именно по CS
- по началу транзакции. - Nikolay_Po(13.06.2023 10:49)
- именно - POV(13.06.2023 00:03)
- Кстате, смотрю, у них есть ещо 20-ношки. Топовый вариант 144МНz, но
то % с ним. Но 128к флеши и 32к ОЗУ... Это зачем? Тем более, что
плывучка есть. - mse homjak(12.06.2023 22:57)
- SPI SCLK заводишь на таймер. Как только появляется SCLK таймер
отмахивает тебе нужную длительность NSS. - RxTx(12.06.2023 00:12)
- Кароч... СПИ курильщика во всей красе... CS сбрасывал перед записью
в регистр данных. Попутно выяснил, что прерывание по RXNEIE
выставляется сильно до конца транзакцыи в 16 бит. Видимо, после
приёма 8 бит. О цэ дило, как говорят небратья. Пришлось колхозить
последовательность инструкцый в прерывании. Что-жэ оно мне
напринимает из АЦП, хотелось бы узнать? mse homjak(1 знак., 11.06.2023 13:14, картинка)
- Они в этом полностью повторили поведение STM32. Всё правильно у
тебя работает, как и должно по задумке ST (но не по нашей). В
режиме мастера у STM32 NSS не работает как строб (вопреки
ожиданию). При SPI_CR2.SSOE=1 на NSS будет просто 0, пока активен
SPI периферал. +Полезно знать что после передачи посылки SPI
периферал отрубается (внутри HAL или сам не помню) и выходы
переходят в Z-state (floating), втч NSS, если выставить внутренний
пуллап, поднимаются относительно медленно. RxTx(170 знак., 11.06.2023 00:58, картинка)
- у меня 003 закуплено, жду однопроводный WlinkE отладчик с алика -
имеется WLink - он умеет только двухпроводный. как приедут поробую
отпишусь про spi если еще будет актуально. - klen(10.06.2023 09:49)
- Если есть возможность посмотреть на каком STM32F1**, как SPI
работает с аппаратным NSS, гляньте, пожалуйста. У ST во всех
примерах нашёл только soft_nss. Такое впечатление, что там зарыта
нехилая собака, если дажэ производитель намекает, что "туда нэ
хады". Тут ужэ и китайцам пенять нечего. Хотя, чо там такого, ХЗ. - mse homjak(10.06.2023 11:43)
- ды это вроде в f1xx нет аппаратного nss, посколько нет регистра
указывающего сколько битов посылка - а без этого никто не можежет
знать когда закрыть аппаратно cs. в старших микросхемах есть это -
можно указать размер слова и количество слов в транзакции, тут есть
аппаратный cs. f1 - унылое гомно мамонта, разве не так? - klen(10.06.2023 18:28)
- Смутно вспоминается, что у F10x аппаратный nSS только для слейва
имеется. Но я его давно ковырял, могу ошибаться. Что до унылости -
я полностью согласен, но тут норот его почему-то любит. - LightElf(10.06.2023 19:54)
- Именно. "....NSS – вывод предназначен для выбора подчинённого
устройства в режиме Slave, при подаче на его вход логического ноля,
также с помощью этого вывода можно переключать режимы SPI
(Master/Slave), в мультимастерной шине....Итак, вывод NSS работает
не совсем так, как привычный CS у AVR, и в режиме Master для выбора
ведомого необходимо использовать GPIO." petrd(1 знак., 11.06.2023 09:16, ссылка)
- Не... Это ужэ отмазки типа "не баг, а фича". В базе, логика работы
СПИ обязана поддерживаться. Тем более, что эта логика простейшая.
Да и просто логика пользования: вы даёте ДМА, СПИ на частоте Фцлк/2
и(внезапно!) нужно следить за Бизи и махать лапкой вручную,
соревнуясь в скорости с ДМА и Фцлк/2. "Нахуя? И, главное,
зачем?"(С). Ясен%, что для ЦПУ за 20р, это простительно. И для
ЦПУза 200р, это простительно, потому, что у него полный фарш на
борту, как у иного, за 1000. Но mse homjak(41 знак., 11.06.2023 11:12)
- Норот любит СН32V003. 20 ног, 48МГц, R-V. Цэна, 20р на Али. Лихая
замена Мега*8. Но цэна имеет свою цэну. - mse homjak(10.06.2023 19:59)
- Каг это нету? 8-16 бит. STM32F101/103, выписка из регистра SPI_CR1: mse homjak(1 знак., 10.06.2023 19:54, картинка)
- Мне кажется, что в STM с "мультимастер" там что-то сильно
намуд(р)или и забажили, а китайцы лишь добросовестно все баги
воспроизвели. - reZident(10.06.2023 13:26)
- А не надо по СТМовскому, различий полно CH32 не пробовали, но с
GD32 секса поимели. - Visitor(09.06.2023 22:20)
- Нужно по быстрому сделать вывод с stm32f103 на TFT индикатор типа
ILI9341. По быстрому - имею в в иду использовать готовую
библиотеку, не заморачиваясь с написанием с нуля. У меня одна идея
- перешить stm32 в arduino и использовать arduino библиотеки.
Покритикуйте/посоветуйте способ лучше? - Mty1(13.06.2023 01:00, ARM, полностью)
- Ну, уверен что всё просто, это вопрос грамотности и аккуратности.
Но может как-то сводно это есть по какой-либо статейке? Чтобы
наконец осмыслить [речь про невыровненный доступ?][UPD]... POV(1324 знак., 08.06.2023 22:16 - 23:27, ARM, полностью)
- Есть в первоисточниках BlackMorda(598 знак., 09.06.2023 19:49, ссылка, ссылка)
- В Keil пользую для LPC17 что то типа "__align(4) struct TS{
.....}". Для кортекс M0 особо актуально. Ну и для DMA... - Гyдвин(09.06.2023 14:45)
- В прошлый раз у тебя с банками регистров косяк был. На этот раз
пусть будет переполнение стека. Или где-нибудь у адресной
арифметики крышу снесло, и оно подсирает в разных местах. А ещё
бывает еррата проца, нельзя включать ускоритель, например. И на
днях у меня были странные хардфолты, а это был всплеск питания
около 0,5В. Короче, выбирай вариант, который тебе нравится. - SciFi(09.06.2023 14:44)
- Имхо, проверять выравнивание IBAH(885 знак., 09.06.2023 14:38)
- В скрипте линкера проверь выравнивание по 4 байтам для данных
каждого программного модуля, и 8 байт для "кучи". VVB(380 знак., 09.06.2023 14:27)
- А что говорят sizeof(int), sizeof(long)? Платформа какая? - Dingo(09.06.2023 05:43)
- Скорее всего что-то совсем кривое, всё таки. Код в студию!
Приведение 32х бит к 16ти не должно приводить к такому отказу.
Попробуйте поменять формат в sprintf на long int, вроде, %ld для
знакового. Nikolay_Po(288 знак., 08.06.2023 23:07)
- Почему вы решили, что 0-й элемент обязательно выровнен? Если ни
чего не делать, то у массива упакованных структуры элементы ни как
не выровнены, 0-й в том числе, как и переменные такого типа. - AlexBi(08.06.2023 22:24)
- Демо-проекты от ST не содержат в окне проекта Keil ни одного *.h
файла заголовков. На диске файлы есть, проекты рабочие,
компилируются и запускаются. Компилятор заголовки находит я так
понимаю исключительно по Include путям. Про Project -> Manage
-> Project Items в курсе, там *.h не добавлены. Вопрос, WTF? С
какой целью или умыслом так сделано что проект состоит якобы из
одних *.c ? И как тогда предлагается редактировать *.h файлы? - RxTx(30.05.2023 03:04, ARM, полностью)
- Вопрос про Си. (Кейл5 С99) Как правильно выделить место во флеше в
размере одной страницы (0x400) для эмуляции EEPROM и задать одно
первое значение, оставив остальной массив непрошитым (0xFFFFFFFF). - my504(25.05.2023 09:27, ARM, полностью)
- Могу ld-скриптом поделиться: выделяет 2кБ для хранения настроек и
весь оставшийся свободный флеш на логи. Eddy_Em(86 знак., 26.05.2023 16:53)
- (вопрос в конце топика) Просветите пожалуйста неуча: какой смысл в
эмуляции EEPROM в сей сущности и так "конденсаторной памяти"? Но
огорчённой секторальной архитектурой прямого доступа? Тупо
пользуюсь флэш памятью по прямому назначению. Храня "иниты"
где-нибудь у потолка. И для того, чтобы перезаписать один байт
стираю нах весь сектор и восстанавливаю уже с нужным байтом - иначе
никак. А есть и ARMы с аппаратной быстрой EEPROM для специальных
нужд быстрой перезаписи. bnb62(249 знак., 25.05.2023 13:14 - 18:34)
- 1. Возьмите библиотеку а-ля uwlkv lloyd(401 знак., 25.05.2023 15:03)
- Я бы ва скаттер-файле эту страницу исключил из общей памяти,
доступной линкеру, и работал с ней по указателю (адресу). - VladislavS.(25.05.2023 12:20)
- Ну например так IBAH(2960 знак., 25.05.2023 10:17)
- В этом случае каждое обновление прошивки будет стирать всю
информацию в квази-еепром. Это неправильно. SciFi правильно
говорит: в квази-еепром должна писать прошивка, а не программатор и
не загрузчик. - Ale3000(25.05.2023 09:54)
- По хорошему нужно минимум две страницы, чтобы была устойчивость к
сбою питания во время стирания. У себя предпочитаю прописывать
начальное значение в пустую память на лету: проверяем, если пустая,
пишем начальное значение. Соответственно, размечаем память так,
чтобы программатор не трогал область EEPROM. - SciFi(25.05.2023 09:50)
- Заполнить остальной массив значениями 0xFFFFFFFF не подходит? - AlexBi(25.05.2023 09:28)
- Новый китайский RISC-V процессор Codavr(1 знак., 28.05.2023 13:34, ARM, ссылка)
- А как бы так быстренько спрайтовый буфер экрана текстом заполнять? Eddy_Em(2102 знак., 13.05.2023 11:20, ARM, ссылка, полностью)
- Буфер не спрайтовый, спрайты это иное Подобный буфер называется
пиксельный и это так называемый BackBuffer. Посмотрел код, очень
тяжелый. ARM вывозит его только потому что реально быстр. Быстро
это пишется так: RxTx(1373 знак., 13.05.2023 22:50)
- Когда надоесть изобретать велосипед - взять TouchGFX или библиотеки
от ардуинщиков. Чип в экране, возможно, SPFD5408A. Costic(8 знак., 13.05.2023 13:56, youtube)
- Ага: заинлайнил вывод пикселя, уже в 2 раза ускорилась работа. А
еще нашел косяк в блокирующей работе с I2C: в функции записи я
зачем-то жду, пока уйдет флаг BSY в течение аж 100мс! Этот косяк
выкинул (вообще BSY не жду). Наверное, стоит еще и данные с BME280
считывать по I2C через DMA - несколько миллисекнуд сэкономлю (или
I2C со 100кГц до мегагерца поднять?). - Eddy_Em(13.05.2023 12:28)
- Заказал сегодня на ALI вот этот комплект для ликбеза и быстрого
старта. Потому что в его составе имеется LinkE, пара платок и
десяток расходников до-кучи. Распиновка 48-лапого чип похоже
совпадает с STM32F103C8T6. И blue pill могла сгодиться. А вот с
20-лапыми CH32V003F4P6, CH32V305FBP6, CH32V203F8P6 смотрю полная
чехарда. Хрен наэкономишь, прикупив в Чип-Дипе 2 последних для
опытов :) С 20-лапыми STM32 и STM8 (имеюься у меня платки для них)
тоже ни одного совпадения. Гyдвин(79 знак., 27.05.2023 21:27, ARM, ссылка, полностью)