Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » vt » CH55x (CH551-CH554)


CH55x (CH551-CH554)

Сообщений 1 страница 30 из 138

1

CH554 is a compatible MCS51 enhanced E8051 core microcontroller, 79% of the instruction is a single byte single cycle instruction, built-in 24MHz clock source, built-in 1K + 256B RAM, 16KB iFlash-ROM. CH554 provides a wealth of interface resources, including ADC analog-to-digital conversion, 3 sets of timer and signal capture and PWM, dual asynchronous serial port, SPI and so on.
CH554 provides 6-channel capacitive detection module, mutual capacitance mode supports up to 15 touch buttons.
CH554 embedded full-speed USB controller, support USB HOST mode and USB DEVICE mode.

http://s9.uploads.ru/Jca2i.jpg
http://s8.uploads.ru/wzBhi.jpg
http://sa.uploads.ru/Bo8F1.jpg

Похоже новые, судя по дате самой первой версии даташита - 2016

2

Даташит вновь непереводимый?

3

Да, только китайский
Но usb периферия похоже та же что в их ch37x чипах, а на них есть какие-никакие даташиты на английском
Зато на все есть прямо фирменные примеры кода
А вообще компания та же что делает ch34x - http://wch-ic.com/
Плохо, что на алиэкспрессе их нет, только в lcsc.com, но я ещё никогда ничего не покупал там

Похоже isp по usb - http://www.wch.cn/bbs/thread-65645-1.html
Wow! )

Отредактировано vt340 (2017-10-19 14:57:41)

4

vt340 написал(а):

Да, только китайский


Текст снова невменяемого копируется из пдф?

5

Нет, этот нормально

Отбракованные варианты тоже продают
ch553 - не получилось 16K флэша, только 12, не 1К xram, а только 512, не два uart, а один
сh552 - не получился usb-host, только device
ch551 - ничего не получилось ) только device, 12K флеша, 512 xram, один uart и нет ацп

Ну и минус 2К флэша на загрузчик у всех

Отредактировано vt (2018-03-31 23:16:49)

6

Заказал, через месяц-другой продолжу тему, может быть
http://s7.uploads.ru/ls5ZJ.jpg

Кстати, вот так выглядит предложение мк на lcsc.com
http://s8.uploads.ru/D507g.png

7

А как их программируют вообще? Гугол только китайские иероглифы на запрос "CH554G linux" выдает!

8

Как я понял, у них только встроенный bootloader по uart и по usb (через serial usb на хосте)
В даташите вроде ещё и по spi, но программаторов похоже нет в природе
В режим программирования переходят по ресету на usb и-фейсе (на демо-платке кнопка download просто замыкает dp (p3.6) на землю)
если в момент включения питания мк на dp (p3.6) будет высокий уровень

http://s0.uploads.ru/D16hp.jpg

Протоколов конечно нет, есть только софтина, и конечно под виндовс
Это пока всё что знаю, приедут посмотрим, с isp-протоколами я в любом случае буду разбираться если буду разбираться с мк

Отредактировано vt340 (2017-12-10 17:06:18)

9

Приехали CH554 и CH551

http://s6.uploads.ru/QHit7.jpg

10

Devkit
http://s0.uploads.ru/cBAaf.jpg

Devtool [чуть подправленная для CH551]
http://s8.uploads.ru/absRk.jpg

11

На гитхабе появились примеры для CH554, кстати там же и даташит на английском:
https://github.com/Blinkinlabs/ch554_sdcc
https://github.com/HonghongLu/CH554
Для CH551: https://github.com/princeofdream/mcu_ch551

Отредактировано Ozelot (2017-12-11 10:53:46)

12

vt340 написал(а):

Приехали CH554 и CH551


Делись ссылкой на продавана!

13

14

Кто-нибудь может привести мне пример использования встроенного хоста для этого микроконтроллера? По моему кроме как мост для более мощного микроконтроллера нет. Иначе слишком мало памяти.

15

Ozelot
Cпасибо за ссылку на перевод даташита
Про хост, ну первое, что приходит в голову - hid boot protocol - сильно упрощённый hid, который используется в bios до загрузки os [клавиатура, мышь и т.п.]

dosikus
Покупал на LCSC, ссылку уже Ozelot дал
Приехали упакованные как смерть Кащея - пеналы в антистатических пакетах, эти пакеты в пупырчатом пакете, этот пакет в коробке, коробка в запаянном пластиковом почтовом пакете
Но сразу предупреждаю, с isp-софтиной не всё гладко, все выходные я с ней помаялся )

16

vt340 написал(а):

Ozelot
Но сразу предупреждаю, с isp-софтиной не всё гладко, все выходные я с ней помаялся )


Можно подробнее? (Т.к. тоже планирую испытать, но еще не покупал)

17

WCHISPTool при установке устанавливает вот такой драйвер

http://s0.uploads.ru/ensvL.jpg

Я надеялся, что будет какой-то usb-serial, к которому можно будет как-то сбоку подойти, но это vendor specific class, и что с ним делать знает только сама wchisptool, и только сама может найти этот и-фейс для программирования [или не найти ) ]
Везде для скачивания wchisptool только версии 2.30 [хотя на скринах на китайских форумах мелькают и 2.31, и 2.34], но в ней нет чипов ch551-553, только ch554, а при выборе ch554 для реального ch551 программа не находит usb и-фейс

Я поразбирался можно ли как-то из 554 сделать 551, в установочном каталоге нашёлся текстовый конфиг чипов ChipType\typeall.wcfg
Из параметров 554

Код:
[CH554]
McuType=1
MaxFlashSize=14336
MaxEepromSize=128
IsNetworkDown=0
IsUsbDown=1
IsSerialDown=1
chipid=84
eepromStartAddr=49152
Introduction = ""

методом проб и ошибок сделал

Код:
[CH551]
McuType=1
MaxFlashSize=10240
MaxEepromSize=128
IsNetworkDown=0
IsUsbDown=1
IsSerialDown=1
chipid=81
eepromStartAddr=49152
Introduction = ""


С таким конфигом программа находит и-фейс, шьёт, но нестабильно, не с первой попытки [пишет сообщения о сбоях], но после этого можно продолжать и в конце концов сеанс успешно заканчивается

Хотя сбои могут быть и из-за халтурности "девкита", в общем первый блин )

18

vt340
Спасибо. Теперь можно заказать эти чипы :)

19

vt340 написал(а):

Хотя сбои могут быть и из-за халтурности "девкита"

10 мкФ по питанию убрали все сбои

20

Нашлась версия 2.31 - http://www.wch.cn/bbs/thread-65676-1.html

http://sh.uploads.ru/MJadp.jpg

21

vt340 написал(а):

Нашлась версия 2.31 - http://www.wch.cn/bbs/thread-65676-1.html

Спасибо.

22

Скелет работы с usb device [выжимка прямо из фирменных исходников]

Инициализация

Код:
void InitUSB_Device( void ) {
    IE_USB = 0;
    USB_CTRL = 0;

    UEP4_1_MOD = bUEP1_TX_EN;
    UEP2_3_MOD = bUEP2_RX_EN | bUEP2_TX_EN;
    UEP0_DMA = Ep0Buffer;
    UEP1_DMA = Ep1Buffer;
    UEP2_DMA = Ep2Buffer;
    UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK;
    UEP1_CTRL = bUEP_AUTO_TOG | UEP_R_RES_ACK;
    UEP2_CTRL = bUEP_AUTO_TOG | UEP_R_RES_ACK | UEP_T_RES_NAK;

    USB_DEV_AD = 0;
    UDEV_CTRL = bUD_PD_DIS;
    USB_CTRL = bUC_DEV_PU_EN | bUC_INT_BUSY | bUC_DMA_EN;
    UDEV_CTRL |= bUD_PORT_EN;
    USB_INT_FG = 0xFF;
    USB_INT_EN = bUIE_SUSPEND | bUIE_TRANSFER | bUIE_BUS_RST;
    IE_USB = 1;
}


Прерывание

Код:
void USB_DeviceInterrupt( void ) interrupt INT_NO_USB using 1 {
    if ( UIF_TRANSFER ) {
        if ( U_IS_NAK ) { //...
        } else {
            switch ( USB_INT_ST & ( MASK_UIS_TOKEN | MASK_UIS_ENDP ) ) {
                case UIS_TOKEN_OUT | 2: ...
                case UIS_TOKEN_IN | 2: ...
                case UIS_TOKEN_IN | 1: ...
                case UIS_TOKEN_SETUP | 0: ...;
                    len = USB_RX_LEN;
                    if ( len == sizeof( USB_SETUP_REQ ) ) { ...;
                        SetupReqCode = UsbSetupBuf->bRequest;               
                        if ( ( UsbSetupBuf->bRequestType & USB_REQ_TYP_MASK ) != USB_REQ_TYP_STANDARD ) {
                            len = 0xFF;                 
                        } else {
                            switch( SetupReqCode ) {
                                case USB_GET_DESCRIPTOR: ...
                                case USB_SET_ADDRESS: ...
                                case USB_GET_CONFIGURATION: ...
                                case USB_SET_CONFIGURATION: ...
                                case USB_CLEAR_FEATURE: ...
                                case USB_GET_INTERFACE: ...
                                case USB_GET_STATUS: ...
                                default: len = 0xFF; break;
                            }
                        }
                    } else {
                        len = 0xFF;
                    }
                    if ( len == 0xFF ) { ... }; break;
                case UIS_TOKEN_IN | 0: ...
                case UIS_TOKEN_OUT | 0: ...
                default: break;
            }
        }
        UIF_TRANSFER = 0;
    } else if ( UIF_BUS_RST ) {                                     
        UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK;                
        UEP1_CTRL = bUEP_AUTO_TOG | UEP_R_RES_ACK;                
        UEP2_CTRL = bUEP_AUTO_TOG | UEP_R_RES_ACK | UEP_T_RES_NAK;
        USB_DEV_AD = 0x00;                                        
        UIF_SUSPEND = 0;                                          
        UIF_TRANSFER = 0;                                         
        UIF_BUS_RST = 0;                                          
    } else if ( UIF_SUSPEND ) {
        ...
    } else {
        USB_INT_FG = 0xFF;
    }
}


Контроллер usb device в ch55x проще, чем в stm32
[Но как же меня достала масса этих сишных дефайнов констант да ещё и в верхнем регистре]

23

В переводе даташита не хватает двух важных табличек, я добавил [ https://yadi.sk/d/naqKh4e03EDEJU/CH554 ]

http://se.uploads.ru/9qkXl.png

24

На яндекс диск лучше не выкладывать (в Украине он заблокирован)

25

Добавил в форумский файловый архив - forumfiles.ru/files/0018/26/8f/30484.zip
[ссылка без http:// специально, чтоб автоматически не тянулось в офлайновую копию форума]

26

спасибо

27

Да не за что )
Может ещё кто присоединится [мк то, имхо, очень интересный со всех сторон]
А когда [и если] ситуация дозреет можно будет и страничку сделать либо здесь, либо на google sites

28

На следующей неделе получу ch552t и ch554g. Испытаю - отпишусь. Есть пара идей своих проектов, для компиляции использую SDCC

29

WCHISPTool v2.34
Файлы из архива нужно просто скопировать в папку с ранее установленным WCHISPTool v2.31 (ссылка была в предыдущих постах).
Старая версия не настраивала режим работы вывода RST после программирования.
Начал проверять ch552t. Чип не плох - шустрый, потребляет мало энергии. Но есть неприятный момент (сразу не обратил внимание): программирование памяти программ возможно только при подаче на вывод vcc питания 5В.
Кроме того доступно всего 200 циклов перезаписи? Или я неправильно понимаю фразу:

The ROM is an iFlash ™ process that can be programmed about 200 times with a 5V supply for a
finished blank ROM package.

30

Забрал архив, спасибо, так постепенно по зёрнышку и соберём
Про iflash похоже действительно 200 циклов, а я просмотрел, вот засада, разочарование дня
Я ch55x обнаружил на дваче [ https://2ch.hk/ra/res/258237.html ] посмотрел китайский даташит, но на старший ch559, там 100К циклов, а на ch554 потом не проверил


Вы здесь » Микроконтроллеры » vt » CH55x (CH551-CH554)