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

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

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


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


CH55x (CH551-CH554)

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

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

И как такими МК пользоваться, если ни даташитов нормальных, ни RM, ни errata, ни протоколов прошивки?
А вообще, странно: почему китайцы мастдайку используют? Они же вроде как давным-давно должны были это неюзабельное говно выбросить нафиг! Хотя, с другой стороны, как посмотришь на быдлокод, который они генерят, так становится понятно, что им даже мастдайка — сложная штука...

Эдак скоро нам придется кЕтайский учить...

Отредактировано Eddy_Em (2017-10-25 12:22:23)

10

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

Эдак скоро нам придется кЕтайский учить...

Без вариантов. Ты только сейчас это понял? )

Отредактировано vt340 (2017-10-25 12:40:42)

11

Не в тему, но просто до кучи - очередное произведение от winchiphead (wch) из серии usb-serial

http://s6.uploads.ru/Gnpqc.jpg
Гуглоперевод:
* Simulation standard serial port, used to upgrade the original serial peripheral devices, or through the USB to add additional serial port.
* The serial port application on the computer-side Windows operating system is fully compatible and does not need to be modified.
* Hardware full-duplex serial port, built-in independent transceiver buffer, support communication baud rate 100bps ~ 2Mbps.
* Supports 7 or 8 data bits to support odd parity / even parity / flag verification / blank check.
* through the external level conversion device, providing RS232, RS485 and other interfaces.
* Supports 5V supply voltage and 3.3V supply voltage.

$0.3

Вот за что я люблю EA-SEA-электронику, так это за оптимизацию )

12

Приехали CH554 и CH551

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

13

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

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

14

На гитхабе появились примеры для 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)

15

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

Приехали CH554 и CH551


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

16

17

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

18

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

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

19

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

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


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

20

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 = ""


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

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

21

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

22

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

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

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

23

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

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

24

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

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

Спасибо.

25

Скелет работы с 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
[Но как же меня достала масса этих сишных дефайнов констант да ещё и в верхнем регистре]

26

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

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

27

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

28

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

29

спасибо

30

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


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