From 492fe9ea6a43984b89da39bd3f13b45f883759cf Mon Sep 17 00:00:00 2001 From: "Christian L. V. Madsen" Date: Fri, 1 Nov 2024 20:44:46 +0100 Subject: [PATCH] commit.. almost working i2c driver.. --- storno_cqp6xx_digital_xtal/Debug/Makefile | 1 - .../Debug/avr_i2c_driver/avr_i2c.d | 3 + .../Debug/avr_i2c_driver/avr_i2c.o | Bin 1956 -> 9644 bytes storno_cqp6xx_digital_xtal/Debug/cqm6xx_app.o | Bin 1188 -> 2376 bytes storno_cqp6xx_digital_xtal/Debug/main.d | 28 ++- storno_cqp6xx_digital_xtal/Debug/main.o | Bin 2688 -> 5808 bytes .../Debug/storno_cqp6xx_digital_xtal.elf | Bin 15012 -> 20820 bytes .../Debug/storno_cqp6xx_digital_xtal.hex | 15 +- .../Debug/storno_cqp6xx_digital_xtal.lss | 229 ++++++++++++++++-- .../Debug/storno_cqp6xx_digital_xtal.map | 104 +++++--- .../Debug/storno_cqp6xx_digital_xtal.srec | 15 +- .../avr_global_config.h | 3 +- storno_cqp6xx_digital_xtal/avr_i2c_driver | 2 +- storno_cqp6xx_digital_xtal/avr_uart_driver | 2 +- storno_cqp6xx_digital_xtal/cqm6xx_app.c | 6 + storno_cqp6xx_digital_xtal/cqm6xx_app.h | 18 +- storno_cqp6xx_digital_xtal/main.c | 40 ++- storno_cqp6xx_digital_xtal/si5351_driver | 2 +- .../storno_cqp6xx_digital_xtal.cproj | 113 +++++---- 19 files changed, 464 insertions(+), 117 deletions(-) diff --git a/storno_cqp6xx_digital_xtal/Debug/Makefile b/storno_cqp6xx_digital_xtal/Debug/Makefile index 7162ea7..891279e 100644 --- a/storno_cqp6xx_digital_xtal/Debug/Makefile +++ b/storno_cqp6xx_digital_xtal/Debug/Makefile @@ -35,7 +35,6 @@ LINKER_SCRIPT_DEP:= SUBDIRS := \ ../avr_i2c_driver/ \ ../avr_uart_driver/ \ -../avr_uart_driver/include \ ../si5351_driver/ \ ../si5351_driver/include/ diff --git a/storno_cqp6xx_digital_xtal/Debug/avr_i2c_driver/avr_i2c.d b/storno_cqp6xx_digital_xtal/Debug/avr_i2c_driver/avr_i2c.d index 6f48c99..981b157 100644 --- a/storno_cqp6xx_digital_xtal/Debug/avr_i2c_driver/avr_i2c.d +++ b/storno_cqp6xx_digital_xtal/Debug/avr_i2c_driver/avr_i2c.d @@ -1,5 +1,6 @@ avr_i2c_driver/avr_i2c.d avr_i2c_driver/avr_i2c.o: \ ../avr_i2c_driver/avr_i2c.c ../avr_i2c_driver/avr_i2c.h \ + ../avr_i2c_driver/../avr_global_config.h \ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ @@ -18,6 +19,8 @@ avr_i2c_driver/avr_i2c.d avr_i2c_driver/avr_i2c.o: \ ../avr_i2c_driver/avr_i2c.h: +../avr_i2c_driver/../avr_global_config.h: + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: diff --git a/storno_cqp6xx_digital_xtal/Debug/avr_i2c_driver/avr_i2c.o b/storno_cqp6xx_digital_xtal/Debug/avr_i2c_driver/avr_i2c.o index 1df3bc6346b9d865fc23a1e495a961dee5d2855e..419eb9c34d658a05097c55cf6f288d6b639edc5b 100644 GIT binary patch literal 9644 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 delta 840 zcmY*XO=}ZT6uobzv5iS4Gsc!^E1gKDwFQevyQ!@d6bsgZ?i8XSPKR`AGYK=P5Es^; zV7(g`6%gW^rgfL=bdxse!TbYymxDFi_hJaTN$EXL^KZ& zU7#Z6=^m7k`a?=6pK84r>VzmmjR=|CQ!{nL7#4?=qdcpWGp%vUMwU^fT<$7d z*8Enz6Sublznj!rp&z&X&9K8$_WI;;rKBGT7L(phs#0mtH}jkcfILG+=!Y%LUS9z z!<}Y*JB)(9PP#G8`R!IKzy$WPv;5b6RzPiP@?h?>Qz`L&#lBb_BHG6n2}7ok%P#}z z8v={%0aH>ndK+pm@*aL!BFk$~(qjb>`v^yRNpG3E#Kf-ygB`xYKPw#;AL+;?u-I?l xU?5eb;IZa@-b;hORL6MUvonX-WjDQE&9e)Kc&|1p7m zx^g+tOOL%2331|p#GzL%+!6c({1tG`4T(ee-t3M&wnE`a&+q%*d-G=I?aau}*6-dH zLXZ|g+caeG9wzz&=Bi4#NT+Cqj(&RstfD*taisz$_JqZcSHfD^oY7>S9K$O@8+wmwg*rPNj>Kd_YIQvdTZtzvA!OBw=&B z2H`lD9U|{>wAk-Ux7&5RVxNap@zcj(gjiqM@gmtxlZU>SXFE~grHRb)UMon3-Yiej zIFa7tE|+QrogjBZ*~ib$YeFCS&0dE#?me&?%gfd^=c;qXvZL5;hi$J%vqwSK zMjlw?^;X>{X+QEi?gDtWo20qzxnY=Dc4ywQ?;|VATdSS8hk|yy7iU2y_FJ~M>!v1e z26;R1!xqN1k>%w<65AOz2+O{fo4Y3Oy51vHPJ3RCXfdxJ_o9r-?IoGV9h5;F7m)NxYG)Y1%EQsZTv*^srx$D=LE){K{6Zk&+5J8n^v(r}P zM|?2zL=~SONrtF%Rq_ei+c!c~9X-L|qZO*~)G*-YV9?(FY2a0ZTfnyrehIj^1MJ+} zpBuyq&SQsb8eh-ENOqMDjqxL6{OA~;9OGtpsNBskrK&n=^5gVLNx2gc$-(#SGs8t}uvwT?OkQ$4jEfkFg$OTsw6mADj7~ zau#`fzPZ;d!@E#$j zav$`(UjyqgfbmrW-mFf7<#}0tf-+u%vYf&C zIFI+s{oxp|vkui~3XtAM-meTw(Q~oIR0DYhvI!@@8LV87>+(Mrv)*4IU&5zF*ZT*Y CA}Q|x delta 322 zcmX>hw1jhlg0KiP1H*F$1_l!#W?;}@;9_8(oX5CdOHWTSD>b>KI3_nUxhOw5BeP(#5~J_rU?#)KOl(4v3)na&A7DDh$Ts;qv-e~h zR^7?xSml8-YLf-nSSD+*H83(vHe{2pw*Xqk2*d^;TY&&%y(vfl3P4N{c81b0b(ugx zL#P@M1yd&oWCMKy2gjHg7<}M7h&m7#q#h_W`9BAz!yF*z0g%rL#C$-^0>lDPKC)Rg OKn-3%aToxZ0RjNvK`N2} diff --git a/storno_cqp6xx_digital_xtal/Debug/main.d b/storno_cqp6xx_digital_xtal/Debug/main.d index bf66685..230545a 100644 --- a/storno_cqp6xx_digital_xtal/Debug/main.d +++ b/storno_cqp6xx_digital_xtal/Debug/main.d @@ -11,8 +11,14 @@ main.d main.o: .././main.c .././avr_global_config.h \ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\xmega.h \ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - .././avr_uart_driver/include/avr_uart.h \ - .././avr_uart_driver/include/../../avr_global_config.h + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ + .././avr_uart_driver/avr_uart.h \ + .././avr_uart_driver/../avr_global_config.h \ + .././avr_i2c_driver/avr_i2c.h .././avr_i2c_driver/../avr_global_config.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h .././avr_global_config.h: @@ -40,6 +46,20 @@ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: -.././avr_uart_driver/include/avr_uart.h: +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: -.././avr_uart_driver/include/../../avr_global_config.h: +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: + +.././avr_uart_driver/avr_uart.h: + +.././avr_uart_driver/../avr_global_config.h: + +.././avr_i2c_driver/avr_i2c.h: + +.././avr_i2c_driver/../avr_global_config.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: diff --git a/storno_cqp6xx_digital_xtal/Debug/main.o b/storno_cqp6xx_digital_xtal/Debug/main.o index 8d4d9900e04b0112d290c8a1a71af73e823ed78c..7904650d42bd16912289828803afa3a3a781a797 100644 GIT binary patch literal 5808 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 V3^J>&yIOA0KZkdNIcvTp^gl~d7l!}< delta 1657 zcmZ9MU1$_n6vxlKyR);&Znv{pMNI-7H&IJ!HwM3ITC=fDMAyyk23ksNu*fDP+nP;G zB1NI>7Fwmy2lYPq&=g7)QN#zkEiJypCm$qI3q@$@R|=)jzI25?^lQHEZdGD9+9QCd^ zy|EouNsr@1K{xO)bFD`%$17FW^{WM!7zz_bZ<<6)xOCZvGE#(g!!Jd+2akX>O67Ty z(p*HW3>sDwKg_#KVI#s6Hos<)W*Q5E;t1{{CiWw-;0BK13Is3PQe1tnJ-)4zB9XpG zfJ0N1js{}Ak(VPoqDK=KL^Lj1M1S*@SEIH5T?d4@7b_(_r>Z?0T2n+*Crjm2(cKC% zB&QC}b zoGi_#Zx0Q%ohi?iCd%Vuc5(9LEX|e9jnAK*8F#Cx(|wDHQ`6-M+r9BlxD%=6T${26 z!)nXmtqLEFCqb$^n2h>70~n`42Q_Ymp4PYn`W}s6Sk+mnJMKoV+Um~0s?Nt;HywT# zGNc|HZmqlpm2pMt&J+|c-o{>@_3?)s*ciYMW27c$2WAYV8K_q0lWw%`hagJC~3)M7hQg=F&F#`tnbJZ_6NQAx)YOY4RXGA zu=n;?T42};gPvd~n9@}@15f-Kb3<%!&KE!8<1voc8u-ZPzqG~`;t4*3!P`Ra@RpCi z0XvN^fE!o@uQiBqdE(WE@zTMs5A+Y1e=01tl=MBg>JmOBp73uiz(T;kdIGh4H1S3_ zus-DmAKTz&H|0vk{a~bag)8KI@hg9eg-lxgk$JOr?AUpse#?%jXtudFGBhdFQf`;} zKNpvulZxfLWR_HKKFM?=41c> diff --git a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.hex b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.hex index 4acb229..1ad6d5e 100644 --- a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.hex +++ b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.hex @@ -2,5 +2,18 @@ :1000100019C018C017C016C015C014C013C012C034 :1000200011C010C00FC00EC00DC00CC00BC00AC064 :1000300009C008C011241FBECFEFCDBFDFE3DEBF74 -:0C00400002D002C0DDCFFFCFF894FFCF4C +:1000400045D06AC0DDCF809317088091150886FFE0 +:10005000FCCF8091150884FF06C083E080931408CC +:1000600081E090E0089583E08093140880E090E0C0 +:100070000895E0E1F8E08BE0868381E08383858367 +:10008000E0E0F4E088E0828B838B80E090E00895EC +:10009000EF92FF920F931F93CF938C017B01C42F9C +:1000A000842F880FD0DF009749F4F801E082F182B5 +:1000B0004C2F50E0440F551F428302C08EEF9FEF3C +:1000C000CF911F910F91FF90EF900895CF93DF9301 +:1000D00000D01F92CDB7DEB7E0E0F4E080818B7FE7 +:1000E00080838081877F808380E090E0C2DF25E18C +:1000F00086E195E0215080409040E1F740E660E0E5 +:1001000070E0CE010196C4DF25E186E195E0215043 +:0C01100080409040E1F7EBCFF894FFCF67 :00000001FF diff --git a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.lss b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.lss index 3185320..7e92a24 100644 --- a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.lss +++ b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.lss @@ -3,27 +3,29 @@ storno_cqp6xx_digital_xtal.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 00000000 00803f00 00803f00 000000a0 2**0 + 0 .data 00000000 00803f00 00803f00 00000170 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 0000004c 00000000 00000000 00000054 2**1 + 1 .text 0000011c 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .comment 00000030 00000000 00000000 000000a0 2**0 + 2 .comment 00000030 00000000 00000000 00000170 2**0 CONTENTS, READONLY - 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000000d0 2**2 + 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000001a0 2**2 CONTENTS, READONLY - 4 .debug_aranges 00000020 00000000 00000000 0000010c 2**0 + 4 .debug_aranges 00000060 00000000 00000000 000001dc 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_info 0000125a 00000000 00000000 0000012c 2**0 + 5 .debug_info 00001a3c 00000000 00000000 0000023c 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_abbrev 00001127 00000000 00000000 00001386 2**0 + 6 .debug_abbrev 000013cb 00000000 00000000 00001c78 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_line 0000016f 00000000 00000000 000024ad 2**0 + 7 .debug_line 0000054d 00000000 00000000 00003043 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_frame 00000024 00000000 00000000 0000261c 2**2 + 8 .debug_frame 000000b4 00000000 00000000 00003590 2**2 CONTENTS, READONLY, DEBUGGING - 9 .debug_str 00000919 00000000 00000000 00002640 2**0 + 9 .debug_str 00000c28 00000000 00000000 00003644 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_ranges 00000010 00000000 00000000 00002f59 2**0 + 10 .debug_loc 00000257 00000000 00000000 0000426c 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_ranges 00000040 00000000 00000000 000044c3 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -63,23 +65,210 @@ Disassembly of section .text: 3a: cd bf out 0x3d, r28 ; 61 3c: df e3 ldi r29, 0x3F ; 63 3e: de bf out 0x3e, r29 ; 62 - 40: 02 d0 rcall .+4 ; 0x46
- 42: 02 c0 rjmp .+4 ; 0x48 <_exit> + 40: 45 d0 rcall .+138 ; 0xcc
+ 42: 6a c0 rjmp .+212 ; 0x118 <_exit> 00000044 <__bad_interrupt>: 44: dd cf rjmp .-70 ; 0x0 <__vectors> -00000046
: -//#include "avr_i2c_driver/avr_i2c.h" +00000046 : + return 0; // Success +} + +int i2c_IsDeviceReady(uint8_t dev_addr){ + + TWI0.MADDR = dev_addr | 0; + 46: 80 93 17 08 sts 0x0817, r24 ; 0x800817 <__RODATA_PM_OFFSET__+0x7f8817> + + // Wait for acknowledgment + while (!(TWI0.MSTATUS & TWI_WIF_bm)); + 4a: 80 91 15 08 lds r24, 0x0815 ; 0x800815 <__RODATA_PM_OFFSET__+0x7f8815> + 4e: 86 ff sbrs r24, 6 + 50: fc cf rjmp .-8 ; 0x4a + + if (TWI0.MSTATUS & TWI_RXACK_bm) { + 52: 80 91 15 08 lds r24, 0x0815 ; 0x800815 <__RODATA_PM_OFFSET__+0x7f8815> + 56: 84 ff sbrs r24, 4 + 58: 06 c0 rjmp .+12 ; 0x66 + // NACK received + TWI0.MCTRLB = TWI_MCMD_STOP_gc; // Send stop condition + 5a: 83 e0 ldi r24, 0x03 ; 3 + 5c: 80 93 14 08 sts 0x0814, r24 ; 0x800814 <__RODATA_PM_OFFSET__+0x7f8814> + return 1; // Error: NACK received + 60: 81 e0 ldi r24, 0x01 ; 1 + 62: 90 e0 ldi r25, 0x00 ; 0 + 64: 08 95 ret + } + + // Send stop condition + TWI0.MCTRLB = TWI_MCMD_STOP_gc; + 66: 83 e0 ldi r24, 0x03 ; 3 + 68: 80 93 14 08 sts 0x0814, r24 ; 0x800814 <__RODATA_PM_OFFSET__+0x7f8814> + return CM_I2C_OK; // Success + 6c: 80 e0 ldi r24, 0x00 ; 0 + 6e: 90 e0 ldi r25, 0x00 ; 0 + +} + 70: 08 95 ret + +00000072 : + + +int cm_i2c_init(void *i2c_inst){ + + // Set the baud rate for 100kHz with a typical rise time of 300 ns + TWI0.MBAUD = 11; + 72: e0 e1 ldi r30, 0x10 ; 16 + 74: f8 e0 ldi r31, 0x08 ; 8 + 76: 8b e0 ldi r24, 0x0B ; 11 + 78: 86 83 std Z+6, r24 ; 0x06 + + // Enable the TWI master and set it to enable operation + TWI0.MCTRLA = TWI_ENABLE_bm; + 7a: 81 e0 ldi r24, 0x01 ; 1 + 7c: 83 83 std Z+3, r24 ; 0x03 + + /* Set bus state idle */ + TWI0.MSTATUS = TWI_BUSSTATE_IDLE_gc; + 7e: 85 83 std Z+5, r24 ; 0x05 + + // Enable the internal pull-ups for PA2 (SDA) and PA3 (SCL) + PORTA.PIN2CTRL = PORT_PULLUPEN_bm; + 80: e0 e0 ldi r30, 0x00 ; 0 + 82: f4 e0 ldi r31, 0x04 ; 4 + 84: 88 e0 ldi r24, 0x08 ; 8 + 86: 82 8b std Z+18, r24 ; 0x12 + PORTA.PIN3CTRL = PORT_PULLUPEN_bm; + 88: 83 8b std Z+19, r24 ; 0x13 + return CM_I2C_OK; +} + 8a: 80 e0 ldi r24, 0x00 ; 0 + 8c: 90 e0 ldi r25, 0x00 ; 0 + 8e: 08 95 ret + +00000090 : + + + +int cm_i2c_addDev(cm_i2c_device_t *inst, void *i2c_inst, uint8_t dev_addr){ + 90: ef 92 push r14 + 92: ff 92 push r15 + 94: 0f 93 push r16 + 96: 1f 93 push r17 + 98: cf 93 push r28 + 9a: 8c 01 movw r16, r24 + 9c: 7b 01 movw r14, r22 + 9e: c4 2f mov r28, r20 + + //if(i2c_inst == NULL) return CM_I2C_NOK; + + // Check if device responds! + if(i2c_IsDeviceReady((dev_addr << 1)) != CM_I2C_OK)return CM_I2C_NO_DEVICE; + a0: 84 2f mov r24, r20 + a2: 88 0f add r24, r24 + a4: d0 df rcall .-96 ; 0x46 + a6: 00 97 sbiw r24, 0x00 ; 0 + a8: 49 f4 brne .+18 ; 0xbc + + // add device info if device responds! + inst->i2c_transfer_inst = i2c_inst; + aa: f8 01 movw r30, r16 + ac: e0 82 st Z, r14 + ae: f1 82 std Z+1, r15 ; 0x01 + inst->dev_addr = (dev_addr << 1) & 0b11111110; + b0: 4c 2f mov r20, r28 + b2: 50 e0 ldi r21, 0x00 ; 0 + b4: 44 0f add r20, r20 + b6: 55 1f adc r21, r21 + b8: 42 83 std Z+2, r20 ; 0x02 + + return CM_I2C_OK; + ba: 02 c0 rjmp .+4 ; 0xc0 +int cm_i2c_addDev(cm_i2c_device_t *inst, void *i2c_inst, uint8_t dev_addr){ + + //if(i2c_inst == NULL) return CM_I2C_NOK; + + // Check if device responds! + if(i2c_IsDeviceReady((dev_addr << 1)) != CM_I2C_OK)return CM_I2C_NO_DEVICE; + bc: 8e ef ldi r24, 0xFE ; 254 + be: 9f ef ldi r25, 0xFF ; 255 + // add device info if device responds! + inst->i2c_transfer_inst = i2c_inst; + inst->dev_addr = (dev_addr << 1) & 0b11111110; + + return CM_I2C_OK; +} + c0: cf 91 pop r28 + c2: 1f 91 pop r17 + c4: 0f 91 pop r16 + c6: ff 90 pop r15 + c8: ef 90 pop r14 + ca: 08 95 ret + +000000cc
: +#include "avr_i2c_driver/avr_i2c.h" //#include "storno_frq_lst.h" int main(void) { - 46: ff cf rjmp .-2 ; 0x46
+ cc: cf 93 push r28 + ce: df 93 push r29 + d0: 00 d0 rcall .+0 ; 0xd2 + d2: 1f 92 push r1 + d4: cd b7 in r28, 0x3d ; 61 + d6: de b7 in r29, 0x3e ; 62 + /* Replace with your application code */ + PORTA.DIR &= ~(1 << 2); // Clear bit 2 (PA2) + d8: e0 e0 ldi r30, 0x00 ; 0 + da: f4 e0 ldi r31, 0x04 ; 4 + dc: 80 81 ld r24, Z + de: 8b 7f andi r24, 0xFB ; 251 + e0: 80 83 st Z, r24 + PORTA.DIR &= ~(1 << 3); // Clear bit 3 (PA3) + e2: 80 81 ld r24, Z + e4: 87 7f andi r24, 0xF7 ; 247 + e6: 80 83 st Z, r24 + cm_i2c_init(NULL); + e8: 80 e0 ldi r24, 0x00 ; 0 + ea: 90 e0 ldi r25, 0x00 ; 0 + ec: c2 df rcall .-124 ; 0x72 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif -00000048 <_exit>: - 48: f8 94 cli + __builtin_avr_delay_cycles(__ticks_dc); + ee: 25 e1 ldi r18, 0x15 ; 21 + f0: 86 e1 ldi r24, 0x16 ; 22 + f2: 95 e0 ldi r25, 0x05 ; 5 + f4: 21 50 subi r18, 0x01 ; 1 + f6: 80 40 sbci r24, 0x00 ; 0 + f8: 90 40 sbci r25, 0x00 ; 0 + fa: e1 f7 brne .-8 ; 0xf4 + + + while (1) + { + _delay_ms(500); + cm_i2c_addDev(&si5351_dev,NULL,0x60); + fc: 40 e6 ldi r20, 0x60 ; 96 + fe: 60 e0 ldi r22, 0x00 ; 0 + 100: 70 e0 ldi r23, 0x00 ; 0 + 102: ce 01 movw r24, r28 + 104: 01 96 adiw r24, 0x01 ; 1 + 106: c4 df rcall .-120 ; 0x90 + 108: 25 e1 ldi r18, 0x15 ; 21 + 10a: 86 e1 ldi r24, 0x16 ; 22 + 10c: 95 e0 ldi r25, 0x05 ; 5 + 10e: 21 50 subi r18, 0x01 ; 1 + 110: 80 40 sbci r24, 0x00 ; 0 + 112: 90 40 sbci r25, 0x00 ; 0 + 114: e1 f7 brne .-8 ; 0x10e <__DATA_REGION_LENGTH__+0xe> + 116: eb cf rjmp .-42 ; 0xee -0000004a <__stop_program>: - 4a: ff cf rjmp .-2 ; 0x4a <__stop_program> +00000118 <_exit>: + 118: f8 94 cli + +0000011a <__stop_program>: + 11a: ff cf rjmp .-2 ; 0x11a <__stop_program> diff --git a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.map b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.map index 7d62ab2..874a1ed 100644 --- a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.map +++ b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.map @@ -42,13 +42,10 @@ Discarded input sections .text 0x00000000 0x0 avr_i2c_driver/avr_i2c.o .data 0x00000000 0x0 avr_i2c_driver/avr_i2c.o .bss 0x00000000 0x0 avr_i2c_driver/avr_i2c.o - .debug_info 0x00000000 0x5d avr_i2c_driver/avr_i2c.o - .debug_abbrev 0x00000000 0x26 avr_i2c_driver/avr_i2c.o - .debug_aranges - 0x00000000 0x18 avr_i2c_driver/avr_i2c.o - .debug_line 0x00000000 0x1a avr_i2c_driver/avr_i2c.o - .debug_str 0x00000000 0x1af avr_i2c_driver/avr_i2c.o - .comment 0x00000000 0x31 avr_i2c_driver/avr_i2c.o + .text.i2c_byte_write + 0x00000000 0x48 avr_i2c_driver/avr_i2c.o + .text.i2c_byte_read + 0x00000000 0x34 avr_i2c_driver/avr_i2c.o .text 0x00000000 0x0 avr_uart_driver/avr_uart.o .data 0x00000000 0x0 avr_uart_driver/avr_uart.o .bss 0x00000000 0x0 avr_uart_driver/avr_uart.o @@ -60,15 +57,23 @@ Discarded input sections 0x00000000 0x20 avr_uart_driver/avr_uart.o .debug_ranges 0x00000000 0x10 avr_uart_driver/avr_uart.o .debug_line 0x00000000 0x114 avr_uart_driver/avr_uart.o - .debug_str 0x00000000 0x276 avr_uart_driver/avr_uart.o + .debug_str 0x00000000 0x272 avr_uart_driver/avr_uart.o .comment 0x00000000 0x31 avr_uart_driver/avr_uart.o .debug_frame 0x00000000 0x24 avr_uart_driver/avr_uart.o .text 0x00000000 0x0 cqm6xx_app.o .data 0x00000000 0x0 cqm6xx_app.o .bss 0x00000000 0x0 cqm6xx_app.o - .debug_line 0x00000000 0x0 cqm6xx_app.o - .debug_str 0x00000000 0x135 cqm6xx_app.o + .text.storno_osc_app_init + 0x00000000 0x2 cqm6xx_app.o + .debug_info 0x00000000 0x3f cqm6xx_app.o + .debug_abbrev 0x00000000 0x2c cqm6xx_app.o + .debug_aranges + 0x00000000 0x20 cqm6xx_app.o + .debug_ranges 0x00000000 0x10 cqm6xx_app.o + .debug_line 0x00000000 0x3d cqm6xx_app.o + .debug_str 0x00000000 0x145 cqm6xx_app.o .comment 0x00000000 0x31 cqm6xx_app.o + .debug_frame 0x00000000 0x24 cqm6xx_app.o .text 0x00000000 0x0 main.o .data 0x00000000 0x0 main.o .bss 0x00000000 0x0 main.o @@ -337,7 +342,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0x4c +.text 0x00000000 0x11c *(.vectors) .vectors 0x00000000 0x34 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.10.348/gcc/dev/attiny402/avrxmega3/short-calls/crtattiny402.o 0x00000000 __vector_default @@ -420,13 +425,22 @@ END GROUP 0x00000044 __vector_20 0x00000046 . = ALIGN (0x2) *(.text.*) - .text.main 0x00000046 0x2 main.o - 0x00000046 main - 0x00000048 . = ALIGN (0x2) + .text.i2c_IsDeviceReady + 0x00000046 0x2c avr_i2c_driver/avr_i2c.o + 0x00000046 i2c_IsDeviceReady + .text.cm_i2c_init + 0x00000072 0x1e avr_i2c_driver/avr_i2c.o + 0x00000072 cm_i2c_init + .text.cm_i2c_addDev + 0x00000090 0x3c avr_i2c_driver/avr_i2c.o + 0x00000090 cm_i2c_addDev + .text.main 0x000000cc 0x4c main.o + 0x000000cc main + 0x00000118 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000048 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o) - 0x00000048 _exit - 0x00000048 exit + .fini9 0x00000118 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o) + 0x00000118 _exit + 0x00000118 exit *(.fini9) *(.fini8) *(.fini8) @@ -445,16 +459,16 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000048 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o) + .fini0 0x00000118 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3/short-calls\libgcc.a(_exit.o) *(.fini0) - 0x0000004c _etext = . + 0x0000011c _etext = . .rodata *(.rodata) *(.rodata*) *(.gnu.linkonce.r*) -.data 0x00803f00 0x0 load address 0x0000004c +.data 0x00803f00 0x0 load address 0x0000011c [!provide] PROVIDE (__data_start, .) *(.data) *(.data*) @@ -469,8 +483,8 @@ END GROUP *(.bss*) *(COMMON) [!provide] PROVIDE (__bss_end, .) - 0x0000004c __data_load_start = LOADADDR (.data) - 0x0000004c __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x0000011c __data_load_start = LOADADDR (.data) + 0x0000011c __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00803f00 0x0 [!provide] PROVIDE (__noinit_start, .) @@ -518,8 +532,9 @@ END GROUP .comment 0x00000000 0x30 *(.comment) - .comment 0x00000000 0x30 main.o + .comment 0x00000000 0x30 avr_i2c_driver/avr_i2c.o 0x31 (size before relaxing) + .comment 0x00000030 0x31 main.o .note.gnu.avr.deviceinfo 0x00000000 0x3c @@ -541,41 +556,51 @@ END GROUP .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0x20 +.debug_aranges 0x00000000 0x60 *(.debug_aranges) .debug_aranges - 0x00000000 0x20 main.o + 0x00000000 0x40 avr_i2c_driver/avr_i2c.o + .debug_aranges + 0x00000040 0x20 main.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x125a +.debug_info 0x00000000 0x1a3c *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x00000000 0x11d6 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.10.348/gcc/dev/attiny402/avrxmega3/short-calls/crtattiny402.o - .debug_info 0x000011d6 0x84 main.o + .debug_info 0x000011d6 0x4fd avr_i2c_driver/avr_i2c.o + .debug_info 0x000016d3 0x369 main.o -.debug_abbrev 0x00000000 0x1127 +.debug_abbrev 0x00000000 0x13cb *(.debug_abbrev) .debug_abbrev 0x00000000 0x10de C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.10.348/gcc/dev/attiny402/avrxmega3/short-calls/crtattiny402.o - .debug_abbrev 0x000010de 0x49 main.o + .debug_abbrev 0x000010de 0x157 avr_i2c_driver/avr_i2c.o + .debug_abbrev 0x00001235 0x196 main.o -.debug_line 0x00000000 0x16f +.debug_line 0x00000000 0x54d *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x00000000 0x136 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.10.348/gcc/dev/attiny402/avrxmega3/short-calls/crtattiny402.o - .debug_line 0x00000136 0x39 main.o + .debug_line 0x00000136 0x25b avr_i2c_driver/avr_i2c.o + .debug_line 0x00000391 0x1bc main.o -.debug_frame 0x00000000 0x24 +.debug_frame 0x00000000 0xb4 *(.debug_frame) - .debug_frame 0x00000000 0x24 main.o + .debug_frame 0x00000000 0x80 avr_i2c_driver/avr_i2c.o + .debug_frame 0x00000080 0x34 main.o -.debug_str 0x00000000 0x919 +.debug_str 0x00000000 0xc28 *(.debug_str) .debug_str 0x00000000 0x7a9 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.10.348/gcc/dev/attiny402/avrxmega3/short-calls/crtattiny402.o - .debug_str 0x000007a9 0x170 main.o - 0x1a4 (size before relaxing) + .debug_str 0x000007a9 0x418 avr_i2c_driver/avr_i2c.o + 0x457 (size before relaxing) + .debug_str 0x00000bc1 0x67 main.o + 0x2f3 (size before relaxing) -.debug_loc +.debug_loc 0x00000000 0x257 *(.debug_loc) + .debug_loc 0x00000000 0x1c7 avr_i2c_driver/avr_i2c.o + .debug_loc 0x000001c7 0x90 main.o .debug_macinfo *(.debug_macinfo) @@ -595,9 +620,10 @@ END GROUP .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0x10 +.debug_ranges 0x00000000 0x40 *(.debug_ranges) - .debug_ranges 0x00000000 0x10 main.o + .debug_ranges 0x00000000 0x30 avr_i2c_driver/avr_i2c.o + .debug_ranges 0x00000030 0x10 main.o .debug_macro *(.debug_macro) diff --git a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.srec b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.srec index 9cb4356..af1f750 100644 --- a/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.srec +++ b/storno_cqp6xx_digital_xtal/Debug/storno_cqp6xx_digital_xtal.srec @@ -3,5 +3,18 @@ S113000019C020C01FC01EC01DC01CC01BC01AC008 S113001019C018C017C016C015C014C013C012C030 S113002011C010C00FC00EC00DC00CC00BC00AC060 S113003009C008C011241FBECFEFCDBFDFE3DEBF70 -S10F004002D002C0DDCFFFCFF894FFCF48 +S113004045D06AC0DDCF809317088091150886FFDC +S1130050FCCF8091150884FF06C083E080931408C8 +S113006081E090E0089583E08093140880E090E0BC +S11300700895E0E1F8E08BE0868381E08383858363 +S1130080E0E0F4E088E0828B838B80E090E00895E8 +S1130090EF92FF920F931F93CF938C017B01C42F98 +S11300A0842F880FD0DF009749F4F801E082F182B1 +S11300B04C2F50E0440F551F428302C08EEF9FEF38 +S11300C0CF911F910F91FF90EF900895CF93DF93FD +S11300D000D01F92CDB7DEB7E0E0F4E080818B7FE3 +S11300E080838081877F808380E090E0C2DF25E188 +S11300F086E195E0215080409040E1F740E660E0E1 +S113010070E0CE010196C4DF25E186E195E021503F +S10F011080409040E1F7EBCFF894FFCF63 S9030000FC diff --git a/storno_cqp6xx_digital_xtal/avr_global_config.h b/storno_cqp6xx_digital_xtal/avr_global_config.h index 603de4b..c522274 100644 --- a/storno_cqp6xx_digital_xtal/avr_global_config.h +++ b/storno_cqp6xx_digital_xtal/avr_global_config.h @@ -11,7 +11,8 @@ #define AVR_ATTINY_402 -#define F_CPU 8000000 // Internal CPU Clock +#define F_CPU 3333333 // Internal 3.333MHz CPU Clock (20MHz divided by 6) +// More info here: https://arduino.stackexchange.com/questions/79157/delay-ms-is-much-slower-than-expected-by-a-factor-of-6-on-tinyavr-0-1-atti diff --git a/storno_cqp6xx_digital_xtal/avr_i2c_driver b/storno_cqp6xx_digital_xtal/avr_i2c_driver index 5ea69c9..3c0e419 160000 --- a/storno_cqp6xx_digital_xtal/avr_i2c_driver +++ b/storno_cqp6xx_digital_xtal/avr_i2c_driver @@ -1 +1 @@ -Subproject commit 5ea69c9c5b83d8e3b973e682ca32d96bcc9c1273 +Subproject commit 3c0e4199f72176c9aee668999926f2bf9907e7ae diff --git a/storno_cqp6xx_digital_xtal/avr_uart_driver b/storno_cqp6xx_digital_xtal/avr_uart_driver index 3c304e8..dd29263 160000 --- a/storno_cqp6xx_digital_xtal/avr_uart_driver +++ b/storno_cqp6xx_digital_xtal/avr_uart_driver @@ -1 +1 @@ -Subproject commit 3c304e80ce359aee1ae1f697c9ca1b4ac87eadf8 +Subproject commit dd292635af66018a517a29e67e926f72ee695a4c diff --git a/storno_cqp6xx_digital_xtal/cqm6xx_app.c b/storno_cqp6xx_digital_xtal/cqm6xx_app.c index de7fcbd..9196e51 100644 --- a/storno_cqp6xx_digital_xtal/cqm6xx_app.c +++ b/storno_cqp6xx_digital_xtal/cqm6xx_app.c @@ -4,3 +4,9 @@ * Created: 21-08-2024 21:12:36 * Author: Chris */ + + +void storno_osc_app_init(){ + + +} \ No newline at end of file diff --git a/storno_cqp6xx_digital_xtal/cqm6xx_app.h b/storno_cqp6xx_digital_xtal/cqm6xx_app.h index 81aaf20..32ac06e 100644 --- a/storno_cqp6xx_digital_xtal/cqm6xx_app.h +++ b/storno_cqp6xx_digital_xtal/cqm6xx_app.h @@ -10,10 +10,24 @@ #define CQM6XX_APP_H_ +typedef enum { + + STORNO_APP_INIT = 0, + STORNO_APP_START = 1, + STORNO_APP_PROGRAM_OSC = 2, + STORNO_APP_RX_MODE = 3, + STORNO_APP_TX_MODE = 4, + STORNO_APP_PROGRAM_MODE = 5, + STORNO_APP_RST_TO_BOOTLOADER = 6, + + }storno_app_states; + typedef struct { - - uint32_t *frq_lst; + storno_app_states state_now; + storno_app_states state_next; + + }storno_xtal_app; diff --git a/storno_cqp6xx_digital_xtal/main.c b/storno_cqp6xx_digital_xtal/main.c index 265e9a7..daf7349 100644 --- a/storno_cqp6xx_digital_xtal/main.c +++ b/storno_cqp6xx_digital_xtal/main.c @@ -6,16 +6,52 @@ */ #include "avr_global_config.h" #include -#include "avr_uart_driver/include/avr_uart.h" -//#include "avr_i2c_driver/avr_i2c.h" +#include +#include "avr_uart_driver/avr_uart.h" +#include "avr_i2c_driver/avr_i2c.h" //#include "storno_frq_lst.h" int main(void) { /* Replace with your application code */ + PORTA.DIR &= ~(1 << 2); // Clear bit 2 (PA2) + PORTA.DIR &= ~(1 << 3); // Clear bit 3 (PA3) + cm_i2c_init(NULL); + cm_i2c_device_t si5351_dev; + + + + while (1) { + _delay_ms(500); + cm_i2c_addDev(&si5351_dev,NULL,0x60); + _delay_ms(500); } } +/* + +int main(void) { + TWI_init(); + + uint8_t slave_address = 0x28; // Replace with your actual slave address + uint8_t write_data = 0x55; // Example data to write + uint8_t read_data = 0; + + // Write data to the slave + if (TWI_write(slave_address, write_data) == 0) { + // Data successfully written + } + + // Read data from the slave + if (TWI_read(slave_address, &read_data) == 0) { + // Data successfully read + } + + while (1) { + // Main loop + } +}*/ + diff --git a/storno_cqp6xx_digital_xtal/si5351_driver b/storno_cqp6xx_digital_xtal/si5351_driver index 1d1a65c..84fe546 160000 --- a/storno_cqp6xx_digital_xtal/si5351_driver +++ b/storno_cqp6xx_digital_xtal/si5351_driver @@ -1 +1 @@ -Subproject commit 1d1a65c4756deeb3959937ea407ca8fc4f0a7302 +Subproject commit 84fe546359c62b25d07226abf4d62773d11a9af7 diff --git a/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj b/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj index 71786c8..a4f4389 100644 --- a/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj +++ b/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj @@ -28,6 +28,34 @@ 0 0 + + + + + + + + + + + + + com.atmel.avrdbg.tool.pickit4 + BUR223673285 + 0x1E9227 + UPDI + + + + 750000 + + UPDI + + com.atmel.avrdbg.tool.pickit4 + BUR223673285 + MPLABĀ® PICkit 4 + + 750000 @@ -75,47 +103,47 @@ - -mmcu=attiny402 -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.10.348\gcc\dev\attiny402" - True - True - True - True - False - True - True - - - DEBUG - - - - - %24(PackRepoDir)\atmel\ATtiny_DFP\1.10.348\include\ - - - Optimize debugging experience (-Og) - True - True - Default (-g2) - True - - - libm - - - - - D:\cm_projects\microchip_studio_projects\storno_cqp6xx_digital_xtal\storno_cqp6xx_digital_xtal\si5351_driver\include - ../avr_uart_driver - - - - - %24(PackRepoDir)\atmel\ATtiny_DFP\1.10.348\include\ - - - Default (-Wa,-g) - + -mmcu=attiny402 -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.10.348\gcc\dev\attiny402" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATtiny_DFP\1.10.348\include\ + + + Optimize debugging experience (-Og) + True + True + Default (-g2) + True + + + libm + + + + + D:\cm_projects\microchip_studio_projects\storno_cqp6xx_digital_xtal\storno_cqp6xx_digital_xtal\si5351_driver\include + ../avr_uart_driver + + + + + %24(PackRepoDir)\atmel\ATtiny_DFP\1.10.348\include\ + + + Default (-Wa,-g) + @@ -131,7 +159,7 @@ compile - + compile @@ -159,7 +187,6 @@ -