- Скажите, есть ли где описание ассемблера для CH32V003 / CH32X035
(QingKeV2/V4)? Гуглится что-то типа
"QingKeV4_Processor_Manual.PDF", но на сайте WCH даёт или китайские
иероглифы, или 404. - vpv.vpv(14.02.2025 10:27, ARM, полностью)
- нормально скачивается через хром+VPN - DVV(27.02.2025 20:11)
- Кстати, никто ещё IAR EW RISC-V 3.30.1 не пробовал? там заявлена
поддержка устройств V003 и V203 vpv.vpv(140 знак., 26.02.2025 11:50, ссылка)
- Сегодня коллега исследовал chatGPT на предмет написания
программулины для RISC-V CH32V. Результат не тестировался, но
выглядел достаточно достоверно :) - VLLV(25.02.2025 17:15)
- Вот основные доки для этих процов LightElf(62 знак., 24.02.2025 20:24, ссылка, ссылка)
- Не видел у WCH документов по ассемблеру для CH32V. А в
"QingKeV4_Processor_Manual", RM и DS о нем точно ничего нет. Это же
стандартный ассемблер для RISC-V + немного от себя: petrd(847 знак., 14.02.2025 11:29)
- Понятно. Нашёл какой-то "Risc-V card", в принципе, почти то, что
хотел. Мне бы только к мнемонике привыкнуть, чтоб листинги
осмысленно смотреть .)) - vpv.vpv(14.02.2025 12:04)
- в Upload выложил черновик инструкций RISC-V RV32/64 IEMC Zikon(671 знак., 24.02.2025 19:52, ссылка)
- Спасибо! Тоже выложил какую-то шпаргалку и более-менее развёрнутое
руководство по RISC-V (какое нашёл). Может кому будет интересно.
Так-то примерно всё понятно. Условные переходы обозвали как
бренчи... Но общий пазл пока не сложился. )) - vpv.vpv(25.02.2025 07:23)
- Подумаваю в будущем заменить Атмеги/Аттини AVR на мелкие CH32V
(которые 5В/20мА I/O). Главное - встретил упоминание о "Command
Line Tools". т.е. врозможность программировать их тыщами. Скачал
MRS, получил с Али демо-платку и Link-E, поиграюсь на досуге. :)) - vpv.vpv(25.02.2025 07:33)
- мелких надо v002, v004 ... посмотреть Zikon(314 знак., 25.02.2025 10:56)
- А USB dev/otg как у стм32F103/F105? - Andreas(03.03.2025 11:54)
- V203G8 то же самое: два USB вывели, а вот ноги кварцев забыли. А
еще с интерфейсом программирования накосячили: не через UART1, как
у всех, а через UART2. Ну хоть boot0 на месте. - COKPOWEHEU(03.03.2025 11:41,
)
- Да, для мелких 003, видимо, посчитали, что интерфейсов I2C и UART
на ногах будет достаточно. )) По питанию, я так понял, vpv.vpv(356 знак., 25.02.2025 12:18)
- CH32x035 - наконец-то понял почему буква X в этой серии ! Zikon(454 знак., 13.03.2025 08:10, ARM, полностью)
- CH32V003. Смотрел на работу внутренностей, хотел посмотреть как
работает предсказатель переходов и наткнулся на сопутствующее
непонятное (для меня) поведение. petrd(1878 знак., 07.03.2025 08:42, ARM, картинка, картинка, полностью)
- А почему код такой большой и стек используется Zikon(1382 знак., 07.03.2025 12:38)
- выравнивание команд на куда переход идет - 2 и 4 байта играет роль
- скорее всего ! Zikon(134 знак., 07.03.2025 11:32)
- Вот интересная статья, но только с ch32x035 может чем-то поможет ! Zikon(1 знак., 07.03.2025 09:19, ссылка)
- Предположу, что выравнивание инструкций во флеш меняется, отсюда и
время доступа к ним, wait state. - Nikolay_Po(07.03.2025 09:06)
- Мужик пишет письмо на спичечную фабрику: "Я на протяжении 10 лет
покупаю спички Вашей фабрики и считаю количество спичек в коробке.
Вы их кладёте то 59, то 60 штук, иногда 61, а вчера положили 56. Вы
что там, совсем ебанутые?" - POV(07.03.2025 08:55)
- 8-D - Vit(07.03.2025 08:58)
- А как там флеш, задержки при чтении, предвыборка кода? Погрешность
измерения слишком велика, чтобы достоверно намерить 2 такта, КМК. - SciFi(07.03.2025 08:47)
- Ребят, а как можно по средствам LWIP вытащить широковещательный
пакет изернет и посмотреть его до кишек с Хеадерами итд итп, а так
же отправить пакет.. Возможно тут lwip вообще не причем? Eth
lan8720.. Грубо говоря на канальном уровне - Balda(05.03.2025 15:05, ARM, полностью)
- Господа, а что такое субприоритет в прерываниях STM32? Приоритет
понятно, а субприоритет? Это что приоритет в приоритете чтоль? Чет
никак ни всосу. - Balda(28.02.2025 21:45, ARM, полностью)
- Незатейливый вопрос - нужно в цикле делать переменную сначала 0
потом 1. Кто как делает? Mty1(38 знак., 27.01.2025 13:12, ARM, полностью)
- ну ды нк ЯВУ домножением на -1, если "int 1" или инверсия если
"логическая переменная" , а на ассемблерах XOR. Если ЯВУ, то какой
смысл "ловить блох" на такой редкой операции и оптимизировать по
скорости?? ну как-то так. - Adept(28.02.2025 15:24)
- Тык VladislavS.(1 знак., 27.02.2025 23:32, картинка)
- XOR наше всё! - Yft(27.02.2025 14:53)
- пришло время освежить ветку... POV(5 знак., 27.02.2025 14:04, картинка, картинка)
- (i++) & 0x1 - 0x1(26.02.2025 15:22,
)
- btg PORTA,5,0 - Бapбoc(29.01.2025 18:33)
- int before = x, after; do { after = rand() & 1; } while (before ==
after); x = after; - SciFi(29.01.2025 13:04)
- x = 1 - x - acex2(29.01.2025 12:59)
- if((Делаете для себя)&&(тип bool)){можно xor 1;} else{
только х=!х; } - CтpaycTpyп(28.01.2025 14:51,
)
- обсудили тут в своем коллективе. Пришел(я не знаю как они) к выводу
если переменная bool то правильно x=!x, если uint то можно и x ^=
1; abivan(361 знак., 28.01.2025 12:17, картинка)
- bcpl adr, #bit - argus98(28.01.2025 11:53)
- x ^= 1; - Cкpипaч(27.01.2025 19:24)
- не хрен ! if (x == 0) x = 1; else x = 0; - De_user(27.01.2025 17:24)
- булевы операции экономичней в плане ресурсов. Поэтому - второе - bodis(27.01.2025 16:37)
- бережоного бох бережёт, сказала монашка =AlexD=(55 знак., 27.01.2025 15:55)
- А вот у меня с "начальной школы" в памяти отложилось, что результат
логических операций либо ноль, либо ненулевое значение. А люди
тыкают в Госты, а там 0 и 1! Откуда у меня это заблуждение? Из
Бейсика? Фортрана? Кернигана-Ричи? - IBAH(27.01.2025 15:31)
- в смысле? Nikolaev_Aleksey(23 знак., 27.01.2025 15:00)
- AND ? Tyмблep(18 знак., 27.01.2025 13:20)
- В смысле? mse homjak(12 знак., 27.01.2025 13:15)
- Сборник граблей STM32, по наводке с Хабарки. Toчкa oпopы(1 знак., 23.02.2025 11:15, ARM, ссылка, полностью)
- Подскажите, где и как у всяческих CH32 посмотреть "lot number"?
Вчитался в referece manual и понял, что китайцы наплодили заметно
отличающихся ревизий кристаллов. - AlexG(12.02.2025 09:00, ARM, полностью)
- UPD. Программное определение лота возможно LightElf(1270 знак., 13.02.2025 14:55 - 14.02.2025 15:15, картинка)
- В главе 33 пишут, что регистр R32_EXTEN_CTR2 (0x40023808)
существует только у более кошерных лотов. Можно попробовать его
почитать-пошевелить. LightElf(188 знак., 12.02.2025 19:57)
- А где в мануале такое, что есть разница? Семейства у них есть,
всякие там D6, D8, D8C, D8W - но они жестко к моделям прибиты и
описаны в табличке: LightElf(84 знак., 12.02.2025 15:10)
- Кокойты нутряной регистр. - mse homjak(12.02.2025 13:03)
- Кто-нибудь пробовал в МК похожих на CH32F207 переключать туда-сюда
HCLK на лету? Что-то у меня после такого передача пакетов Ethernet
ломается, хотя прием продолжает работать. AlexG(34 знак., 25.01.2025 14:21, ARM, полностью)
- UPD2: Дело похоже в поле CR регистра ETH->MACMIIAR, в которое
при HCLK 144 МГц нужно записать не описанное в китайской
документации значение 1 - AlexG(03.02.2025 13:56)
- UPD: эффект похоже связан со встроенным PHY, т.к. возникает когда
MAC еще не инициализирован и устраняется передергиванием сетевого
кабеля. Если кабель не был подключен - не возникает. - AlexG(27.01.2025 10:45)
- В мануале на CH32V207 (c 479) наблюдаю "When using an Ethernet
transceiver, the clock of the HB bus cannot be lower than 50MHz".
Проверьте значение - Vit(25.01.2025 17:45)
- в каком плане похожих, и куда и когда тактовую переключаем? может у
вас таймауты какие с константами, рассчитанными для фиксированной
частоты, на ходу разлетаются, а вы на кремний смотрите с
ethernet-передачей - Vit(25.01.2025 14:55)
- Похожие это, как минимум, STM32F207 и CH32V307. В принципе, всё
STM-образное с ethernet'ом. Возпрос возник из-за того, что у
CH32F207 есть ограничение по допустимой тактовой при записи во
flash. Я пробую тактовую на время снизить, поработать с flash,
затем вернуть тактовую как было. После возвращения получаю
отсутствие ethernet-пакетов от устройства. Из таймеров кажется,
только systick и используется, плюс используется CAN, у которого
часть пакетов в процессе бьется. Вообще AlexG(88 знак., 25.01.2025 16:45)
- а межу тем китайцы сделали ch32v317. по сравнению с 307 eth phy
теперь может на 100М работать, есть микросхема в QFN36 и QFN68. на
аглицкой версии сайта не упомянут. klen(72 знак., 20.08.2024 01:45, ARM, ссылка, полностью)
- Поделитесь опытом, кто как делает обработку ошибок в устройстве.
Есть система с ADC UART EEPROM, короче разной периферией. Хочу
сделать обработку нештатных ситуаций, и хранение статусов ошибок
каждого периферийного модуля. Думаю по каждому модулю сделать
структуру. Mty1(479 знак., 27.01.2025 15:11, ARM, полностью)
- Очень странный вопрос. Можно для STM32 (да и вообще в любом МК)
сделать для UARTа так, чтобы при передаче у него было 2 стоповых, а
на приеме он мог принимать посылку с 1 стоповым битом? Такие
извраты у меня от того, что большой парк у меня колонок и там самые
разные чудеса. :-) - Лaгyнoв(30.12.2024 05:59, ARM, полностью)
- Вчера проверяли STM32G491 настроеный на 2 стоп бита с устройством с
одним стоп битом. Работало как швейцарские часы. Возможно
взводилась ошибка фрейма (FE), но лень было проверять. - BlackMorda(21.01.2025 23:18)
- А, что: в Вашем МК только один UART? При двух задача решается
легко: один - на приëм, другой - на передачу! - Пaлыч(31.12.2024 20:24)
- Это не извраты, а нормальное поведение UART. И именно так оно
реализовано в STM32 - il-2(31.12.2024 11:34)
- У меня с EWARM-8509 другой интересный прикол. Одна и та же версия
(с одной флешки) стоит на работе и дома. Дома, при отладке своей
программы, я открываю окошко регистров и пытаюсь посмотреть работу
ADC, GPIOA ... а их нет! А вот счетчики, USART, I2C... есть!
Приблизительно половина переферии как регистры не видны. Если
смотреть в окне памяти, то видно биты и байты изменяются как надо.
Но, конечно в окне регистры, где видны имена байтов и битов конечно
удобнее работать. Я Sl(78 знак., 30.12.2024 16:52)
- Если память позволяет, то подготовить буфер с состояниями TxD на 2
стопа и пулять их в порт через ДМА. На приём, обычным УАРТом с 1
стопом. - mse homjak(30.12.2024 13:19)
- режим переключать или 2 UARTa использовать. есть старая проблемка в
блоках UARTов - "укороченный стоп-бит" и практически тименно так и
лечится. даже где-то в Modbus over Serial рекомендуют, не вникая в
подробности. Vit(1 знак., 30.12.2024 12:46, ссылка)
- ха-ха... В древности, когда у меня не было в МК аппаратного UART и
был софтовый, я ж так и делал. :-) Сейчас порылся и нашел. При
передаче у меня было 2 стоповых, а на приеме 1 и я сразу переходил
к ожиданию старта след. байта. - Лaгyнoв(30.12.2024 11:50)
- Стоповые биты нужны для того, чтобы приёмное устройство
гарантированно успело обработать принятый байт. Если передаются не
очень много данных, и не используется dma, можно их передавать
пореже. Например по таймеру, чтобы в конце было не менее двух
стоповых бит. А настраивать с одним стоповым битом - Andrey190(30.12.2024 08:05)
- Это не очень-то и изврат. Такое встрачается и называется 1,5
стоповых. Я делал когда-то, но не на STM. Если обмен
полудуплексный, то можно просто менять настройки USARTа туда сюда. - AlexG(30.12.2024 07:22)
- я всё голову ломал - что и зачем 1,5 стоповых. :-) У меня в
8-битнике было 1 или 2. - Лaгyнoв(30.12.2024 08:15)
- По стандарту 1.5 стоповых бита применимо только к 5-битным байтам.
Для 7,8,9-битных - только 1 и 2 стопа. Не знаю про специфику G0, но
обычно количество стоповых бит влияет только на передачу, на приём
пофигу. - LightElf(31.12.2024 14:46)
- При несовпадении количества stop-bit на приеме формируется framing error, но данные при этом принимаются. reZident(1 знак., 31.12.2024 15:32, картинка)
- На следующей же странице оного RM0454 (гляжу в ревизию 5) доходчиво
сказано: LightElf(1 знак., 02.01.2025 01:04, картинка)
- это я тоже увидал. Ошибки FE не будет. Но почему не пишут о
достоверности данных, когда пойдет старт следующего байта в момент
второго стопового? Вот ведь в чем засада. Сейчас нет под рукой 070,
но точно помню, что была сдвижка на 1 бит. Через неделю смогу
проверить - Лaгyнoв(02.01.2025 06:56)
- Да не должна сдвижка происходить. Приём байта синхронизируется от
стартового бита, потом забираются биты данных, потом ожидается один
стоповый. Сколько длится "1" между первым стоповым и последующим
стартовым "0" - влиять ни на что не должно. У вас или помеха
какая-то пролетает, или скорости UART разбегаются сильно. Может
подтяжку входа RX к "1" забыли поставить/включить? - LightElf(02.01.2025 14:24)
- Дык он хочет находится в режиме с двумя сторонами - чтобы при
передаче два стоповых было. - Nikolay_Po(02.01.2025 14:27)
- Два стоповых нужны если скорость высокая, а приёмник без fifo или
совсем софтверный и наступает overflow. ТС не там проблему ищет. - LightElf(02.01.2025 15:04)
- ТС не глупее нас. Всё он там ищет. У него окружение такое, что есть
устройства (которые не будут обновляться), которым нужно два стопа,
чтобы корректно принимать. И, в то же время, есть устройства,
которые ведут передачу без второго, лишь с одним стоп-битом. И если
я правильно понял ТС, в таком случае, когда UART настроен на два
стопа, а поток идёт с одним стопом, есть проблемы с приёмом. Пока
не разобрались до конца в каком случае происходит сбой, но приём
идёт с ошибками. - Nikolay_Po(02.01.2025 16:01)
- То есть, ошибки при приёме прошедшего кадра не будет, но вот приём
первого байта следующего кадра может быть нарушен, если возврат на
уровень mark произошел не в пределах второго стоп-бита? - Nikolay_Po(02.01.2025 14:18)
- Я не знаю, как в STM, но другие контроллеры отродясь при приёме
стопы не считали. Приёмнику стоп нужен только чтобы старт
обнаружить... - Idler(30.12.2024 06:19)
- Я решил все глюки арма (или ИАРа) собрать! Перестал работать
проект. Вылетает в хардфалаут. в самых первых строках main(), после
включения тактирования RCC_APB2ENR_SYSCFGEN, а точнее IBAH(949 знак., 23.01.2025 23:51, ARM, полностью)
- Кортекс М0, или лыжи не едут, или я того! Разное время выполнения
кода в зависимости от настроек ЖПИО. IBAH(970 знак., 20.01.2025 22:56, ARM, полностью)
- Кто-нибудь работал с микроконтроллерами 1921ВК035? Наблюдаем
некоторые нехорошие чудеса с PLL в этих МК - AlexG(17.01.2025 12:07, ARM, полностью)