IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> HC32, "убийца" STM ;)
Harbinger
сообщение 11.3.2019, 16:03
Сообщение #1


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Однако. Микрософтовский переводчик тоже неплох. В смысле правдоподобности. Но кушает за раз только 10000 символов (гуголь - 5000). Бесит.
В течение получаса-часа получается какая-то вот такая фигня (ещё не вычитано, в процессе).

(Злобный оффтоп вдогонку). HC32F003 - один в один по распиновке с STM8S003, и стоит те же 25 центов. Но - Cortex-M0+.

В продолжение оффтопа. HC32L130 благополучно прошился и... свалился в HardFault. Ура, что ли. laughter2.gif Пора курить матчасть, User Manual перевести бы... там 820 страничек всего-то.

Цитата(Harbinger @ 9.3.2019, 19:52) *
В продолжение оффтопа. HC32L130 благополучно прошился и... свалился в HardFault.

Вытащил. Забыл, что у него флэш с нуля начинается, а не как у STM32 - послал по несуществующему адресу (просто для справки: оттуда читаются сплошные 0xAA). Таблица параметров записалась. Порты, UART и SPI как бы проинициализировались, на очереди таймеры... блд. Влетает по прерыванию в дефолтный обработчик (бесконечный цикл). Утро вечера мудренее...
Прикрепленные файлы
Прикрепленный файл  HC32L130_HC32L136_HC32F030_clock_control_module.pdf ( 368,28 килобайт ) Кол-во скачиваний: 15
 
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 12.3.2019, 9:09
Сообщение #2


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Сюда перенесу весь оффтоп по теме из др. мест.
Перейти в начало страницы
 
+Цитировать сообщение
ViKo
сообщение 12.3.2019, 12:26
Сообщение #3


апазiцыянер
***

Группа: Пользователи
Сообщений: 9230
Регистрация: 19.4.2011
Из: Мiнск
Пользователь №: 345



Ссылку на datasheet не на кітайскай мове - сюды!

Наконт "забойцы STM" не згодны. Што гэтыя цэнты лічыць, калі яго ўклад у канчатковую цану выраба дае лічаныя працэнты.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 15.3.2019, 7:09
Сообщение #4


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



<Записки лаборанта> wink.gif
Завёл-таки HC32L130 в связке с RFM69, 4 дня ушло (чистых).
Некоторые впечатления.
Ввиду того, что юзер-мануал пока не переведён, понадеялся на авось, т.е. на библиотеки. Из последней версии SDK.
GPIO: вопросов нет. Всё практически как у STM32L.
SPI: Spi_SendData и Spi_ReceiveData из библиотеки ведут себя, опустив подробности, странновато. Пришлось левой ногой написать
Код
uint8_t Spi_MasterTransfer(en_spi_channel_t enCh, uint8_t data)
{
    uint8_t retval;
    ASSERT(IS_VALID_CH(enCh));
    if(Spi0 == enCh)
    {
        while(TRUE != M0P_SPI0->STAT_f.TXE);
        M0P_SPI0->DATA = data;
        while(TRUE != M0P_SPI0->STAT_f.RXNE);
        retval = M0P_SPI0->DATA;
        
    }
    else
    {
        while(TRUE != M0P_SPI1->STAT_f.TXE);
        M0P_SPI1->DATA = data;
        while(TRUE != M0P_SPI1->STAT_f.RXNE);
        retval = M0P_SPI1->DATA;    
    }
    
    return retval;
    
}

Да, тайм-ауты надо вернуть, не помешают.
UART. С библиотечными функциями тоже не сложилось. В примерах DDL они местами обходятся, без особых объяснений.
Пока что работоспособный вариант (на прерываниях) выглядит так (в устройстве полудуплекс, потому прерывание RX можно запрещать на время передачи и наоборот).
Код
void USART_SendBlock(uint8_t bl)
{

    TxPointer = 0;
        TxCount = bl;
    Uart_ClrStatus(UARTCH0,UartTC);
    M0P_UART0->SBUF = TXbuffer[0];
    Uart_DisableIrq(UARTCH0,UartRxIrq);
    Uart_EnableIrq(UARTCH0,UartTxIrq);

}

Код
void UART0_IRQHandler(void)
{
        uint8_t tmp;
    //TX
    if(Uart_GetStatus(UARTCH0, UartTC) == TRUE)
        {
        Uart_ClrStatus(UARTCH0, UartTC);
        if (TxPointer < TxCount)      // it's end?
            {
                TxPointer++;            // next byte
                M0P_UART0->SBUF = TXbuffer[TxPointer];

            }
        else
        {
            Uart_DisableIrq(UARTCH0,UartTxIrq);
            Uart_EnableIrq(UARTCH0,UartRxIrq);
            TxCount=0;
            TxPointer=0;
        }
        }
        
        else
        {            //RX
            

            if(Uart_GetStatus(UARTCH0, UartRC) == TRUE)
            {    
            tmp = M0P_UART0->SBUF;
                Uart_ClrStatus(UARTCH0, UartRC);
                        //then store tmp in RX buffer etc.
            }
            else Uart_ClrIsr(UARTCH0); //other flags
        }
            
}

Всё бы ничего, если бы скорость была правильная. При использовании RCH (22,12 МГц, и 24 МГц тоже) в качестве источника тактирования это оказалось не так. При установке 115200 бит/с реальная скорость оказалась 113500. Вылечилось "грязным хаком" в sysctrl.c: задефайнена экспериментально подобранная константа
Код
#define RCH_CR_TRIM_USER22M_VAL         1860

и применена вместо RCH_CR_TRIM_22_12M_VAL в функции Sysctrl_SetRCHTrim:
Код
en_result_t Sysctrl_SetRCHTrim(en_sysctrl_rch_freq_t enRCHFreq)
{
    en_result_t enRet = Ok;

    //Load RCH Trim value
    switch (enRCHFreq)
    {
        case SysctrlRchFreq4MHz:
            M0P_SYSCTRL->RCH_CR_f.TRIM = RCH_CR_TRIM_4M_VAL;
            break;
        case SysctrlRchFreq8MHz:
            M0P_SYSCTRL->RCH_CR_f.TRIM = RCH_CR_TRIM_8M_VAL;
            break;
        case SysctrlRchFreq16MHz:
            M0P_SYSCTRL->RCH_CR_f.TRIM = RCH_CR_TRIM_16M_VAL;
            break;
        case SysctrlRchFreq22_12MHz:
            //M0P_SYSCTRL->RCH_CR_f.TRIM = RCH_CR_TRIM_22_12M_VAL;
        M0P_SYSCTRL->RCH_CR_f.TRIM = RCH_CR_TRIM_USER22M_VAL;
            break;
        case SysctrlRchFreq24MHz:
            M0P_SYSCTRL->RCH_CR_f.TRIM = RCH_CR_TRIM_24M_VAL;
            break;
        default:
            enRet = ErrorInvalidParameter;
            break;
    }
    
    return enRet;
}

Константа заводской калибровки, вычитанная по адресу 0x00100C02, в конкретном контроллере равнялась 1845. С другим чипом фокус не сработал, тоже пришлось подбирать. Естественно, так делать не надо. Возможно, мне попались МК из первых партий, с кривыми калибровками, и в дальнейшем исправили. Но лучше всё-таки кварц поставить и забыть о проблеме. А вот это пока не получилось - пока не разобрался, всё переключается, но то ли срывается генерация, то ли что-то ещё - через некоторое время, порядка 100 мс, происходит сброс. diablo.gif
Ещё момент - перепутанная таблица векторов прерываний, из-за чего библиотечные функции с указателями на обработчики вовсе не обязательно будут работать (в моём случае это был BT - basic timer, конкретно - нулевой). Лечится заменой стартап-файла из кейловского software pack на таковой из примеров DDL, выбрасыванием из проекта "interrupts_hc32l136.c", обнулением указателей на коллбэки в структурах инициализации и прописыванием обработчиков самостоятельно. Хотя идея с указателями вроде как интересная.
В общем-то в необходимости перевода документации, юзер-мануала (того, что у ST референс) прежде всего, и дальнейшего вдумчивого "курения", с самого начала сомнений не было, ну вот оно вживую и подтвердилось.

Цитата(ViKo @ 12.3.2019, 12:26) *
Ссылку на datasheet не на кітайскай мове - сюды!
В процесі. Поки грошей за це не дають, справа просувається повільно - час від часу перекладаю фрагменти, котрі цікаві в даний момент. Поки що зробив близько 1013 сторінок з 70 з чимось72. А ще ж user manual (820 сторінок) і аппнотів десь на півтисячі.
Перекладом ще займається злий кіт dosikus з казуса, він, мабуть, далі просунувся.
Перейти в начало страницы
 
+Цитировать сообщение
ViKo
сообщение 15.3.2019, 9:10
Сообщение #5


апазiцыянер
***

Группа: Пользователи
Сообщений: 9230
Регистрация: 19.4.2011
Из: Мiнск
Пользователь №: 345



Ці варта было мудохацца за 20 цэнтаў?
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 15.3.2019, 9:22
Сообщение #6


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Десять бабусьок - уже рупель. smile.gif
В даному разі інтерес скоріше спортивний. Як колись до TMP87 тошибівських.
Зараз пошукаю, як там RSTSRC називається, та й вичитаю, якого фіга воно ресетиться.
Ага: M0P_RESET->RESET_FLAG. Чогось на кшталт "clock failure reset" там нема. Але є "System abnormal reset", може, це воно.
Код
typedef struct
{
    uint8_t     u8Por5V     :1;         ///< 5V Start reset
    uint8_t     u8Por1_5V   :1;         ///< 1.5V Start reset
    uint8_t     u8Lvd       :1;         ///< Low voltage detection reset
    uint8_t     u8Wdt       :1;         ///< Watchdog reset
    uint8_t     u8Pca       :1;         ///< PCA reset
    uint8_t     u8Lockup    :1;         ///< System abnormal reset
    uint8_t     u8Sysreq    :1;         ///< Software reset
    uint8_t     u8RSTB      :1;         ///< RESET pin reset
}stc_reset_cause_t;
Перейти в начало страницы
 
+Цитировать сообщение
ViKo
сообщение 15.3.2019, 9:52
Сообщение #7


апазiцыянер
***

Группа: Пользователи
Сообщений: 9230
Регистрация: 19.4.2011
Из: Мiнск
Пользователь №: 345



Даю на водку:
https://www.nuvoton.com/hq/?__locale=en
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 15.3.2019, 12:33
Сообщение #8


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



То я знаю. І "еволюшен борд" їхній є (на NUC140), подарували колись. Та ж сама фішка - живлення від 1,8 до 5 В. Ціни десь такі, як у STM32, але з режимами енергозбереження - повний швах.
Щодо N76LE - так, вони дешевші навіть за STM8S003F3P6 майже вдвічі (10 грн. прямо тут). Ядро 51, котре я непогано знаю. І на цьому все.

Пля. laughter2.gif Промив плату спиртом. Кварц фуричить.
Прикрепленные файлы
Прикрепленный файл  HC32L130_HC32L136_HC32F030_clock_control_module_translated.pdf ( 568,29 килобайт ) Кол-во скачиваний: 18
 
Перейти в начало страницы
 
+Цитировать сообщение
ViKo
сообщение 15.3.2019, 14:17
Сообщение #9


апазiцыянер
***

Группа: Пользователи
Сообщений: 9230
Регистрация: 19.4.2011
Из: Мiнск
Пользователь №: 345



Яшчэ такія Гіга-дывайсы есць:
http://www.gigadevice.com/products/microco.../arm-cortex-m3/
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 15.3.2019, 20:01
Сообщение #10


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Короче... baud rate generator там такой же, как у многих 51, банальный 16-битный таймер. Тем самым при низких тактовых получить сносную точность скорости UART не получится. Нужна частота или кратная 1,8432 МГц, или где-то от 16 МГц.
...И нахрена я PLL включал? Где-то нахомутал и окирпичил три чипа. Попытаюсь внешнюю тактовую подать, чтобы оживить.
Про гигадевайсы я тут постил года где-то два назад. Ещё SN32 есть такие себе. И т.д. и т.п., их там в Китае уже много всяких. HC32 использует в своей продукции китайский, если можно так выразиться, партнёр. Так получилось...
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 20.3.2019, 20:10
Сообщение #11


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Уря, товагищи. С помощью кнопки сброса и нецензурных заклинаний над ж-линком один чип раскирпичил. Обошлось без внешней тактовой. В принципе та же фигня, что с EFR32 год назад - штатный "connect under reset" до срлампочки. Что там за хрень с PLL, вопрос остался открытым, но решится, куда денется. Пока что поработает с кварцем 11,0592 или 7,3728 - какой в хозяйстве найдётся.
(upd) Остальные тоже ожили.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 21.3.2019, 19:46
Сообщение #12


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



RTFM, едрить. Всё там нормально и с UART, и с калибровкой RCH. Кварц на 11,0592 нашёлся, но выпаял взад, за ненадобностью.
Одну циферку не приметил. UART Mode 3 вместо 1. 3 - это 9 бит. fool.gif
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 24.3.2019, 11:55
Сообщение #13


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Осталось два чудика. Один не коннектился с j-link изначально (то, что в него было прошито - как-то работает), второй через раз и обнаружилось КЗ на землю с одного из портов. Фен-паста-тестер... тоска. pardon.gif
Перейти в начало страницы
 
+Цитировать сообщение
ViKo
сообщение 24.3.2019, 12:36
Сообщение #14


апазiцыянер
***

Группа: Пользователи
Сообщений: 9230
Регистрация: 19.4.2011
Из: Мiнск
Пользователь №: 345



Нагу асобна падняць, провадам эмалірованым працягнуць.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 8.4.2019, 19:21
Сообщение #15


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Відразу не помітив... там корпус QFN, підняти можна тільки весь. pardon.gif Поки що не брався, роботи дофіга... в двох інших платах на землі сидять кілька інших портів, підозрюю, що з метою мінімізації енергоспоживання. Або ж "просто так вийшло".
Перейти в начало страницы
 
+Цитировать сообщение
YIG
сообщение 23.5.2019, 20:29
Сообщение #16


Активный участник
***

Группа: Пользователи
Сообщений: 7559
Регистрация: 18.8.2010
Из: Kursk
Пользователь №: 199



Цитата(Harbinger @ 8.4.2019, 20:21) *
Відразу не помітив... там корпус QFN, підняти можна тільки весь. pardon.gif Поки що не брався, роботи дофіга... в двох інших платах на землі сидять кілька інших портів, підозрюю, що з метою мінімізації енергоспоживання. Або ж "просто так вийшло".

Корпус QFN хорош тем, что его можно отпаять даже простым паяльником, прогрев термал пад со дна.
Я уж молчу про фен, газовый паяльник и ИК-паяльник russian_ru.gif
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 24.6.2019, 8:26
Сообщение #17


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Пошла какая-то движуха. В английской версии сайта возник раздел "Download". Естественно, пустой. girl_crazy.gif
Перейти в начало страницы
 
+Цитировать сообщение
Mr.Yuran
сообщение 24.6.2019, 11:49
Сообщение #18


Активный участник
***

Группа: Пользователи
Сообщений: 5862
Регистрация: 28.2.2015
Пользователь №: 1190



Опять нет повода не выпить
drinks.gif
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 8.8.2019, 12:16
Сообщение #19


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 18170
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Сотворили FTP и всё туды выгрузили.
ftp://180.168.214.142
login: HdscCustomer
pass: HdscGuest2019!
Перейти в начало страницы
 
+Цитировать сообщение
Mr.Yuran
сообщение 9.8.2019, 5:56
Сообщение #20


Активный участник
***

Группа: Пользователи
Сообщений: 5862
Регистрация: 28.2.2015
Пользователь №: 1190



Касательно корпусов.
АД выпустили мсх 5940 исключительно в бга (биджиэй, кому не понятно).
Будущее неумолимо наступает, как ни крути. Бабушкам с паяльниками пора на пенсию.
Перейти в начало страницы
 
+Цитировать сообщение

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6.4.2020, 6:57