|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 12 10, 22:30. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » eeprom 24c32
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 04, 23:17 |
|
|
|
gintaras_bar rašo: |
dmb-220 rašo: |
Girtaras bar pvz butu tinkamas jei dirbciau su HAL library. as darau su Standard Peripheral Library
|
Už lango jau dvidešimtieji XXI amžiaus metai eina, o tu vis dar su SPL dirbi... Negi turi polinkį į mazochizmą?
CubeMX sugeneruoja kuo puikiausią kodą ir su HAL, ir su LL (kur reikia). Ir viskas System Workbench kuo puikiausiai debugin'asi. Taigi mesk tas prieštvanines bibliotekas į šoną ir pradėk šiuolaikinėmis technologijomis naudotis. Išloši ir laiko, ir nervų, ir dar be jokio vargo galėsi "šokinėti" per skirtingus mikrovaldiklius, nė neužmesdamas akies į jų Data Sheet'us. |
Tikrai, kad 21 amzius, tik vienam LED pamirkseti sugeneruoja keleta MB nelabai jau aiskiai skaitomo kodo, o po kompiliacijos dar kelis kb binarinio
ir uz visa tai dar praso tukstancius doleriu |
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 00:20 |
|
|
|
Ir dar viskas kartais stringa, ir niekas nezino del ko. |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 09:57 |
|
|
|
AlgisL rašo: |
Tikrai, kad 21 amzius, tik vienam LED pamirkseti sugeneruoja keleta MB nelabai jau aiskiai skaitomo kodo, o po kompiliacijos dar kelis kb binarinio ir uz visa tai dar praso tukstancius doleriu |
LED pamirksėjimui ir 8 bitų mikrovaldiklio per akis, 32 bitų ARM reikia rimtesnėms užduotims naudoti
ARM iš principo kitaip sukonstruotas, todėl išvado būsenos keitimui net ir mašininis kodas bet kokiu atveju bus gerokai ilgesnis. Ten kur didelių "mandrybių" nereikia (pvz. GPIO valdymui) galima naudoti LL biblioteką, kuri labai kompaktišką kodą generuoja.
Ir beje, tiek System Workbench, tiek Atollic TrueStudio, darbui su STM32, yra visiškai nemokami, jau nekalbant apie plain GCC.
bachurelis rašo: |
Ir dar viskas kartais stringa, ir niekas nezino del ko. |
Blogam šokėjui ir... pats žinai kas trukdo Su HAL ir LL jau esu padaręs keliolika projektų su skirtingų šeimų, nuo F0 iki F4, mikrovaldikliais. Visi strigimai buvo tik dėl mano paties žioplumo. Kad kažkas neveiktų dėl bibliotekų kaltės, dar neteko susidurti. Ai, vieną klaidą radau - SPI DMA siuntimas į periferiją veikia tik 8 bitų režime, nors pagal aprašymą turėtų veikti ir "riebesni kąsniai" su duomenimis. Bet gal būt naujausiose versijose jau ir tai sutvarkyta. |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 11:35 |
|
|
|
Kad ta nemokama iki 4kB (na max 32kB, bet jei perki konkretu gamintojo launchboarda, kuris irgi kainuoja).
Tie "tukstanciai doleriu" cia labiau apie MikroElektronika produkcija, nors KEIL IAR ir t.t. irgi apetitu nesiskundzia.
Kas liecia GPIO, tai ARM-as pakeicia busena max dviem komandomis, kaip ir AVR. Daugiau kodo reikia, kai nori perkonfiguruoti kitai paskirciai.
HAL bibliotekos nera blogai del standartizacijos ir kodo pernesamumo, bet tenka moketi papildoma kaina, ypac jei susiduriama su kazkokiu bugu ir tada lieka klausimas, ar cia bugas gelezyje, ar "pernesamojoje" bibliotekoje, o tai issilieja i n+m failu vartyma ir kliauzos paieska.
Dar juokinga buna argumentas, kad studentine licencija pigesne, arba gali nusipirkti licencija vienam menesiui, ir cia irankiui, kuri kuriant 99.99% resursu buvo isnaudota tik tam, kad butu generuojama minimum 4x daugiau nereikalingu komandu ir veiktu minimum 6x leciau... |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 15:47 |
|
|
|
|
_________________ Skype: dmb-220 |
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 16:45 |
|
|
|
O koks programatorius? Pigus kiniškas klonas iš AliExpress, kažkas panašaus į tokį?
Aš programavimui naudoju programatoriaus dalį nuo Nucleo Board. Bet sėkmingai galima naudoti ir nuo Discovery. Niekda nekilo jokių problemų. Vėliau pabandymui nusipirkau ir tą pigieną iš AliExpress. Bet dirba neprognozuojamai - tai veikia, tai ne. Kartais pakanka tik maitinimą išjungti/įjungti, o kartais ir visą kompą perkrauti. Tai net nežinau ką ir patarti, jei dirbi su kinišku ST-Link klonu.
Bandyk rusiškuose (jei supranti) forumuose pasiskaityti, gal rasi kokį patarimą. Ten lyg tai kažkokia nesąmonė su Reset signalu padaryta. Reikia ardyti ir papildomą sujungimą laideliu sulituoti. |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 17:14 |
|
|
|
gintaras_bar rašo: |
O koks programatorius? Pigus kiniškas klonas iš AliExpress, kažkas panašaus į tokį?
Aš programavimui naudoju programatoriaus dalį nuo Nucleo Board. Bet sėkmingai galima naudoti ir nuo Discovery. Niekda nekilo jokių problemų. Vėliau pabandymui nusipirkau ir tą pigieną iš AliExpress. Bet dirba neprognozuojamai - tai veikia, tai ne. Kartais pakanka tik maitinimą išjungti/įjungti, o kartais ir visą kompą perkrauti. Tai net nežinau ką ir patarti, jei dirbi su kinišku ST-Link klonu.
Bandyk rusiškuose (jei supranti) forumuose pasiskaityti, gal rasi kokį patarimą. Ten lyg tai kažkokia nesąmonė su Reset signalu padaryta. Reikia ardyti ir papildomą sujungimą laideliu sulituoti. |
taip naudoju kiniska klona, ir problemu nebudavo iki siandien ryto, kai sugalvojau su hal library isbandyti, ikelus koda, mikrovaldiklis nebematomas, net bandziau per UART koda ikelti, nemato.
turiu toki board, kai pasakei kad reik su organalu pabandyti prisijungti, mikrovaldiklis nematomas. ir taip jau 5 uzlenkiau, ikeldamas led blink koda su hal. kol supratau kas kaltas. turiu dar stm32f030 ten ikeliau ta pati koda valdiklis neuzsilenke, nes registrai neatitinka. o stm32f103 uzlenkiau. pabandyk jei toki mcu turi isikelti mano koda, armano teorija teisi? |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 17:57 |
|
|
|
dmb-220 rašo: |
turiu toki board, kai pasakei kad reik su organalu pabandyti prisijungti, mikrovaldiklis nematomas. ir taip jau 5 uzlenkiau, ikeldamas led blink koda su hal. kol supratau kas kaltas. turiu dar stm32f030 ten ikeliau ta pati koda valdiklis neuzsilenke, nes registrai neatitinka. o stm32f103 uzlenkiau. pabandyk jei toki mcu turi isikelti mano koda, armano teorija teisi? |
Šiuo metu neturiu galimybės ką nors su STM32 bandyti. Bet po kokių dviejų savaičių naują projektą pradėsiu, tai gal tada pavyks. Bet panašu, kad šiuo atveju ne programatorius kaltas, bet CubeMX nustatymai. Gal kartais pamiršai įjungti Serial Wire Debug?
https://drive.google.com/open?id=1NXNnerVaihR9IrdeRDk_kK0orxw6fzJ6
Tokiu atveju reikia bandyti per UART su bootloaderiu kodą pakeisti. Tik prieš tai, žinoma, CubeMX nustatymus pakeisk ir naują kodą sugeneruok. |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 05, 18:21 |
|
|
|
gintaras_bar rašo: |
dmb-220 rašo: |
turiu toki board, kai pasakei kad reik su organalu pabandyti prisijungti, mikrovaldiklis nematomas. ir taip jau 5 uzlenkiau, ikeldamas led blink koda su hal. kol supratau kas kaltas. turiu dar stm32f030 ten ikeliau ta pati koda valdiklis neuzsilenke, nes registrai neatitinka. o stm32f103 uzlenkiau. pabandyk jei toki mcu turi isikelti mano koda, armano teorija teisi? |
Šiuo metu neturiu galimybės ką nors su STM32 bandyti. Bet po kokių dviejų savaičių naują projektą pradėsiu, tai gal tada pavyks. Bet panašu, kad šiuo atveju ne programatorius kaltas, bet CubeMX nustatymai. Gal kartais pamiršai įjungti Serial Wire Debug?
https://drive.google.com/open?id=1NXNnerVaihR9IrdeRDk_kK0orxw6fzJ6
Tokiu atveju reikia bandyti per UART su bootloaderiu kodą pakeisti. Tik prieš tai, žinoma, CubeMX nustatymus pakeisk ir naują kodą sugeneruok. |
aisku kad neijungiau, nes nezinojau kad reikia kazka papildomai ijungti. Aciu, bandysiu per uart kaip nors ikelti |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 06, 10:25 |
|
|
|
Vis gi Serial Wire Debug čia ne prie ko. Jei jis būtų neįjungtas, tai tik debug'inimas neveiktų, programavimui įtakos nedaro. Prisiminiau, kad pats esu daugybę kartų pamiršęs jį įjungti, tačiau dėl to mikrovaldikliai neužsiblokuodavo.
Tai mažai tikėtina, jog CubeMX nustatymai dėl to kalti. STM32 sukonstruotas daug protingiau, nei Atmel AVR. Net ir sujaukus generatoriaus nustatymus, jis startuoja, nes tikrina ar veikia išorinis generatorius. Jei ne, įjungia vidinį.
O su kokia programa įrašinėji kodą - tiesiai iš System Workbench ar per ST-Link utility? Ir ką rodo ST-Link utility, kai paspaudi Target>Connect? |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 06, 17:16 |
|
|
|
gintaras_bar rašo: |
Vis gi Serial Wire Debug čia ne prie ko. Jei jis būtų neįjungtas, tai tik debug'inimas neveiktų, programavimui įtakos nedaro. Prisiminiau, kad pats esu daugybę kartų pamiršęs jį įjungti, tačiau dėl to mikrovaldikliai neužsiblokuodavo.
Tai mažai tikėtina, jog CubeMX nustatymai dėl to kalti. STM32 sukonstruotas daug protingiau, nei Atmel AVR. Net ir sujaukus generatoriaus nustatymus, jis startuoja, nes tikrina ar veikia išorinis generatorius. Jei ne, įjungia vidinį.
O su kokia programa įrašinėji kodą - tiesiai iš System Workbench ar per ST-Link utility? Ir ką rodo ST-Link utility, kai paspaudi Target>Connect? |
viskas gerai, SWO pin, PA13 pasidariau kaip OUTPUT. o jis DIO, SWO pinas.
su uart irasiau arduino koda, ir poto kuo puikiausiai jau prisijunge programatorius. nuo zioplumo vaistu nera.
turiu kita beda, ir kur mazdaug ieskoti problemos, dirbant su SPL library , LCD ST7735 veike greitai, susiradau su HAL LCD library. bet veikia labai letai. bajndziau senaja library pritaikyti HAL, bet lcd nieko nerodo.
HAL siuntimas i SPI.
Kodas: |
static void ST7735_WriteCommand(uint8_t cmd) {
HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_RESET);
HAL_SPI_Transmit(&ST7735_SPI_PORT, &cmd, sizeof(cmd), HAL_MAX_DELAY);
}
static void ST7735_WriteData(uint8_t* buff, size_t buff_size) {
HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_SET);
HAL_SPI_Transmit(&ST7735_SPI_PORT, buff, buff_size, HAL_MAX_DELAY); |
Cia senasis kodas kuris siusdavo i SPI
Kodas: |
void ST7735_write(uint8_t data)
{
while (SPI_I2S_GetFlagStatus(SPI_PORT,SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI_PORT,data);
}
void ST7735_cmd(uint8_t cmd)
{
A0_L();
ST7735_write(cmd);
}
void ST7735_data(uint8_t data)
{
A0_H();
ST7735_write(data);
} |
// as perrasiau i:
Kodas: |
void ST7735_write(uint8_t cmd){
HAL_SPI_Transmit(&SPI_PORT, &cmd, sizeof(cmd), HAL_MAX_DELAY);
}
void ST7735_cmd(uint8_t cmd){
A0_L();
ST7735_write(cmd);
}
void ST7735_data(uint8_t data){
A0_H();
}
|
cia pagrindas kur nusiuncia i SPI. lcd paleidimo nekeiciau, turetu pasileisti, turbut cia duomenu neissiuncia i SPI kad nieko nerodo. gal reik kazka papildomai SPI paleisti.
norai butu visa siuntima ant SPI DMA perkelti, bet sito isvis nezinau kaip suvaldyti |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 06, 17:28 |
|
|
|
As stipriai abejoju, kad sitas kodas siuncia per SPI
Kodas: |
while (SPI_I2S_GetFlagStatus(SPI_PORT,SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI_PORT,data);
|
Buna, kad pavargus nuo begales privelto kodo ir nebepastebi... |
|
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 06, 17:37 |
|
|
|
AlgisL rašo: |
As stipriai abejoju, kad sitas kodas siuncia per SPI
Kodas: |
while (SPI_I2S_GetFlagStatus(SPI_PORT,SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI_PORT,data);
|
Buna, kad pavargus nuo begales privelto kodo ir nebepastebi... |
radau klaida, patasiau, ta SPL librariui pritaikyta koda, pataisiau i HAL, rodo LCD. BEt veikia labai letai, labai letai vyksta LCD isvalimas, ant senojo kodo be HAL veike labai greitai. vos pastebedavai kad info keiciasi visas lcd isvalomas
sita funkcija isvalo lcd jei visa info keiciasi, pries tai ji greitai isvalydavo, o dabar labai letai
Kodas: |
void ST7735_Clear(uint16_t color){
uint16_t i;
uint8_t CH,CL;
CH = color >> 8;
CL = (uint8_t)color;
CS_L();
ST7735_AddrSet(0,0,scr_width - 1,scr_height - 1);
A0_H();
for (i = 0; i < scr_width * scr_height; i++)
{
ST7735_write(CH);
ST7735_write(CL);
}
CS_H();
} |
cia jau busiu kazka eilini karta blogai nustates cubemx spi nustatymuose. nes visas kodas identiskas.
pakeista sita eilute
Kodas: |
while (SPI_I2S_GetFlagStatus(SPI_PORT,SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI_PORT,data); |
i sita nauja eilute
Kodas: |
HAL_SPI_Transmit(&SPI_PORT, &cmd, sizeof(cmd), HAL_MAX_DELAY); |
Senieji SPI paleidimo nustatymai
Kodas: |
// SPI2
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
// Configure and enable SPI
SPI_InitTypeDef SPI;
SPI.SPI_Mode = SPI_Mode_Master;
SPI.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
SPI.SPI_Direction = SPI_Direction_1Line_Tx;
SPI.SPI_CPOL = SPI_CPOL_Low;
SPI.SPI_CPHA = SPI_CPHA_1Edge;
SPI.SPI_CRCPolynomial = 7;
SPI.SPI_DataSize = SPI_DataSize_8b;
SPI.SPI_FirstBit = SPI_FirstBit_MSB;
SPI.SPI_NSS = SPI_NSS_Soft;
SPI_Init(SPI_PORT,&SPI);
// NSS must be set to '1' due to NSS_Soft settings (otherwise it will be Multimaster mode).
SPI_NSSInternalSoftwareConfig(SPI_PORT,SPI_NSSInternalSoft_Set);
SPI_Cmd(SPI_PORT,ENABLE);
GPIO_InitTypeDef PORT;
PORT.GPIO_Mode = GPIO_Mode_Out_PP;
PORT.GPIO_Speed = GPIO_Speed_50MHz;
// Configure SPI pins
PORT.GPIO_Pin = SPI_SCK_PIN | SPI_MOSI_PIN;
PORT.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(SPI_GPIO_PORT,&PORT);
PORT.GPIO_Mode = GPIO_Mode_Out_PP;
RCC_APB2PeriphClockCmd(ST7735_A0_PORT_CLK | ST7735_RST_PORT_CLK | ST7735_CS_PORT_CLK , ENABLE);
PORT.GPIO_Pin = ST7735_CS_PIN;
GPIO_Init(ST7735_CS_PORT,&PORT);
PORT.GPIO_Pin = ST7735_RST_PIN;
GPIO_Init(ST7735_RST_PORT,&PORT);
PORT.GPIO_Pin = ST7735_A0_PIN;
GPIO_Init(ST7735_A0_PORT,&PORT); |
Nauji paleidimo nustatymai
Kodas: |
/* SPI2 init function */
static void MX_SPI2_Init(void)
{
/* SPI2 parameter configuration*/
hspi2.Instance = SPI2;
hspi2.Init.Mode = SPI_MODE_MASTER;
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi2.Init.NSS = SPI_NSS_SOFT;
hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi2.Init.CRCPolynomial = 10;
if (HAL_SPI_Init(&hspi2) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
} |
[/code] |
|
_________________ Skype: dmb-220 |
|
|
|
|
|
eeprom 24c32 |
Parašytas: 2019 01 06, 18:50 |
|
|
|
LCD valyti nebutina, tik tada tenka paaukoti RAM video bufferiui, o sinchronizuoti galima kai per paskutines kazkiek ms buvo pastebimu pakeitimu (dar galima organizuoti pakeistu plotu sarasus). |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
|
|