Jump to content

    
nanorobot

А может быть Holtek?

Recommended Posts

24 минуты назад, haker_fox сказал:

Я к кортексам привык. Мне приятны их возможности.

Там тоже кортексов хватает в линейках от бывшего Atmel.

Share this post


Link to post
Share on other sites
44 minutes ago, Vasily_ said:

Но и новые времена не наступили, клоны выходят какие-то кривоватые, такими и останутся.

Оригинальные GD вполне нормальные, а вот подделки - лотерея.

Сегодня еще одна левота с маркировкой ST - некоторая периферии вообще дохлая, а ID вообще заимствован от GD.

Share this post


Link to post
Share on other sites
3 часа назад, haker_fox сказал:

Не подскажете, где брать оригинальные (может быть китайцы друг друга подделывают) GD-микроконтроллеры?

Понятия не имею. Ту партию снабженцы где-то добыли. 

Share this post


Link to post
Share on other sites
2 hours ago, Forger said:

Сегодня была норм партия, а завтра те же барыги привезли шлак (

Если производство - брать нормоупаковками. Так вероятность получить шлак значительно ниже.

Share this post


Link to post
Share on other sites
24 minutes ago, aaarrr said:

 брать нормоупаковками

А сколько в ней за раз?

Вообще сейчас в условиях люто задранных цен так сильно затариваться - для некоторых мелких шараг это могут быть значительные риски (

 

Share this post


Link to post
Share on other sites
49 минут назад, Forger сказал:

Знаю конторы, где и за 100 шт скорее удавятся, чем купят разом :)

Ну так пусть тогда не ноют, когда не смогут купить, что тут скажешь...

Share this post


Link to post
Share on other sites
1 hour ago, Forger said:

Знаю конторы, где и за 100 шт скорее удавятся, чем купят разом :)

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

Share this post


Link to post
Share on other sites

Есть еще и административный вопрос , если контора большая. Есть заказ на 100 изделий и подпишут тебе счета на оплату на 100 комплектаций, ну может еще на пяток, если ЗИП обоснуешь. Ну просто люди не поймут что какую-то позицию надо взять с десятикратным запасом. 

Share this post


Link to post
Share on other sites
6 минут назад, Михась сказал:

Ну просто люди не поймут что какую-то позицию надо взять с десятикратным запасом. 

Ну наверно те, от которых зависит все изделие. Ясно дело, что резисторы и конденсаторы можно купить где угодно, а вот МК другим не заменишь...

ИМХО если снабженец не знает, что и в каких кол-вах покупать, то может он не на своем месте работает?

Edited by mantech

Share this post


Link to post
Share on other sites
On 10/7/2021 at 12:37 PM, KnightIgor said:

Актуализация.

Тут мы напаяли GD32F103VET вместо STM32F103VET и тупо залили бинарник, сделаный для STM32 (по UART и STLoaderDemonstrator через встроенный bootloader, который оказался полностью совместим с STM32).

3. Некоторая непонятка с ADC. Вроде работает: каналы, которые цифровывают на плате 4 сигнала и VREF (=VDDA), показывают правильные значения, однако температура (после пересчета, конечно) есть минус 400 с чем-то градусов. Совершенно случайно я понизил напряжение питания до 3.2V, и температура стала реалистичной, а как только питание восстанавливается до 3.3V, температура снова  минус 400 с копейками, хотя VREF (=VDDA) показывает правильно в обоих случаях.

4. Совершенно не работает I2C. Если кто помнит, в STM32F1xx ужасно кривой I2C. Об этом писано-переписано тут на форумах, в том числе и мной. Так вот, согласно доку на GD32F1xx, они не стали повторять тот кошмар и сделали I2C проще, похожим на I2C в STM32F0xx (я тоже с ними работаю).

Я продолжаю копать под GD32F103 и буду делиться "находками" здесь.

Прежде всего, хочу извиниться перед коллегами за ввод в заблуждение по поводу построения I2C в китайце: он таки аналогичен STM32F1xx, со всеми этими особыми случаями при чтении трех и менее байтов. Тем не менее мой код, которому уже лет 10 и более, работающий по прерываниям на STM32F103, не работает на китайце. Я еще не раскопал точно, в чем проблема, но ловлю композиции битов из SR1 и SR2 (в терминах ST, или STAT0 и STAT1 в терминах GD32F103), которые не возникали под ST, в результате я вылетаю по switch case в ветвь default, которая ловит неожиданности и генерирует ошибку.

 

Раскопки показали также, что одна errata из ST была устранена. По крайней мере, нет необходимости обрабатывать случай, описаный как:

Quote

ERRATA: Doc ID 14732 Rev 8, Page 21:

    "In case of a noisy environment in which unwanted bus errors can occur,
    it is recommended to implement a timeout to ensure that after the START
    control bit is set, the SB (start bit) flag is set. In case the timeout
    has elapsed, the peripheral must be reset by setting the SWRST bit in
    the I2C_CR2 control register. It should also be reset in the same way
    if a BERR is detected while the START bit is set in I2C_CR2."

 

Отлаживать I2C сложно, потому как всякие остановки растягивают надолго SCL, что, похоже, вводит в заблуждение как саму машину I2C, так и периферию. Кстати, об отладке. Я тут спрашивал:

Quote

А теперь вопрос.

STM32CubeIDE и STLink не хотят работать с GD32F - вываливается:

Это, конечно, ожидаемо, но у меня вкрадчивый вопрос: никто не убедил ещё STM32CubeIDE на подвиги?

 

Покопался в безграничном интернете и нашел решение. Цитата из одного форума:

Quote

Yes, hate the blue pill with clone MCU on it. In my case I have a CKS32F103… instead of STM32F103…

However, if you do end up with one, there is a way to get it working with OpenOCD. >>

1.   Use OpenOCD as your debugger (GDB will not work)

2.   Find the config file : stm32f1x.cfg

Location is similar to this : >>

C:\ST\STM32CubeIDE_1.3.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.debug.openocd_1.3.0.202002181050\resources\openocd\st_scripts\target

3.   Add the following near the top of stm32f1x.cfg (before the first If – statement):

set CPUTAPID 0

The zero tells OpenOCD to ignore id numbers, which means all clones or genuine MCUs will work.

4.     Save the changes. Now your flash and debug should work. 

 

Note: If you change to OpenOCD without changing “stm32f1x.cfg”, you will get the following Error: “UNEXPECTED idcode: 0x2ba01477…. Expected: 0x1ba01477”, and you will again be stuck.

Information Source: http://openocd.org/doc/html/TAP-Declaration.html#TAP-Declaration-Command

 
  •  

Это завелось, потому я могу теперь отлаживать GD32F103VET под STMCubeIDE. Рекомендую. А, еще надо в настройках debug для OpenOCD выбрать Software System Reset для режима сброса. Так в некоторых форумах стояло, и работает.

 

По ADC: при питании до 3.2V (VREF+ = VDDA) температура измеряется реалистично; при питании в 3.3V значение ADC всегда тупо 4095, потому показывает минусовое значение после пересчета. В моем проекте не очень критично (просто для информации измеряется), придется забить на это.

 

Продолжаю бороться с I2C.

Edited by KnightIgor

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.